Dominion Strategy Forum

Please login or register.

Login with username, password and session length

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - h1402686

Filter to certain boards:

Pages: [1]
1
Simulation / Chapel/Festival/Smithy engine
« on: July 27, 2016, 09:49:18 pm »
Kingdom: Chapel, Village, Bureaucrat, Gardens, Smithy, Throne Room, Festival, Library, Market, Adventurer
I believe I need gokosalvager.com to post a visual Kingdom, and they seem to be down right now, but I've attached a screenshot from the online game showing the Kingdom.

Sages of all walks of life know that simulators don't play engines well, but, emboldened by Geronimoo's first game engine post and dissatisfied with the Chapel+Village+Festival+Smithy engine I had built in a Base set only game against the computer, I decided to try anyway. After a lot of messing around I got something that narrowly beats the built-in Smithy bot on 4/3 starts, 51% to 46% (it's easy to build an engine on a 5/2 start that crushes Smithy by opening Festival/Chapel). I thought it what I came up with was interesting enough to be worth posting, in part because the scenario is so fundamental. Here's the buy list from Geronimoo's simulator:
  • Buy Province if you have $22 in your deck or there are no more than 2 Provinces left
  • Buy Duchy if there are no more than 3 Provinces left
  • Buy Estate if there are no more than 2 Provinces left
  • Buy Festival if you have at least $9 to spend and at least 2 buys
  • Buy Gold unless you already have 2 Gold
  • Buy Festival if count_t(Village) < count_t(Terminal) + 1
  • Buy Silver unless you already have a Silver or a Festival
  • Buy a single Chapel (play strategy standard)
  • Buy Smithy if count_t(Village) > count_t(Terminal) - 2
  • Buy Village

This bot waits until it has $22 in the deck (7 Festivals) to green and often buys as few as 3 Smithies. Its peak average $ generated per turn is $15 at turn 14. It sometimes buys no vanilla Villages but their availability is critical to the engine working, statistically.

I've been unsure whether to post this here or on the game reports forum (since I don't exactly have a game report), but my questions are:
  • Is this an engine board on a 4/3 opening? If so, is this the right way to build an engine, with 7 Festivals if you could get them?
  • Would you (a strong human player) buy any Throne Rooms?

2
Game Reports / Worth buying King's Court?
« on: April 26, 2015, 03:49:40 pm »
Earlier today I played a game with Colonies and this Kingdom:



Code: [Select]
Herbalist, Lookout, Caravan, Silk Road, Bazaar, Embassy, Festival, Rogue, Tactician, King's Court
After words I spent a while running sims to see if it's worth buying King's Court or just pursuing more or less a money strategy. Since I invested a decent chunk of time in it I thought people might be interested in the results: the King's Court bot wins, but only at 54%. Here are some lessons from the bot:

  • A single Rogue is helpful against the money bot, despite the concerns that a) cards costing $3 to $6 are less important in Colony games and b) you may end up stealing stuff you don't want, such as Silvers that gum up the engine
  • Lookout is harmful (though the simulator doubtless plays it imperfectly)
  • Buy a couple Festivals (for +Buy) and then go for Bazaars (for hand size)
  • You want a fair bit of money ($40). Maybe this isn't even really an "engine" in a strict sense
  • Despite the presence of Colonies, which means you may end up buying both Colonies and Provinces before the game ends, you can't assume the Silk Roads are going to be at least as valuable as Duchies

Here's the simple (no King) bot:
Code: [Select]
{
  name: 'Embassy'
  requires: ['Embassy', 'Herbalist', 'Silk Road']
  gainPriority: (state, my) -> [
    "Colony" if my.countInDeck("Platinum") > 0
    "Province" if state.countInSupply("Colony") <= 6 \
               or state.countInSupply("Province") <= 6

    "Duchy" if 0 < state.gainsToEndGame() <= 5
    "Silk Road" if 0 < state.gainsToEndGame() <= 5
    "Estate" if 0 < state.gainsToEndGame() <= 2
    "Platinum"
    "Gold"
    "Embassy" if my.countInDeck("Embassy") < 2 \
             and my.numCardsInDeck() >= 14
    "Embassy" if my.countInDeck("Embassy") < 1
    "Festival"
    "Bazaar"
    "Caravan"
    "Silver"
    "Copper" if state.gainsToEndGame() <= 3
  ]
}

And here's the King bot:
Code: [Select]
{
  name: 'KingEngine'
  requires: ['Herbalist', "King's Court", 'Bazaar', 'Caravan', 'Lookout', 'Rogue', "Festival", "Embassy"]
  gainPriority: (state, my) -> [
    "Colony" if my.countInDeck("Platinum") > 0
    "Colony" if my.getTotalMoney() >= 40
    "Colony" if state.countInSupply("Colony") <= 6 \
             or state.countInSupply("Province") <= 6

    "Province" if state.countInSupply("Colony") <= 6 \
               or state.countInSupply("Province") <= 6
   
    "Silk Road" if 0 < state.gainsToEndGame() <= 5 and my.getVP("Silk Road") >= 3
    "Duchy" if 0 < state.gainsToEndGame() <= 5
    "Silk Road" if 0 < state.gainsToEndGame() <= 5
    "Duchy" if 0 < state.gainsToEndGame() <= 5
    "Estate" if 0 < state.gainsToEndGame() <= 2
    "Platinum" if my.getTotalMoney() < 40
    "King's Court" if my.countCardTypeInDeck("Action") >= 7
    "Gold" if my.getTotalMoney() < 40
    "Rogue" in my.countInDeck("Rogue") == 0
    "Embassy" if my.countInDeck("Embassy") + my .countInDeck("Rogue") < \
            my.countInDeck("Bazaar") + my.countInDeck("Festival") + 2
    "Bazaar" if my.countInDeck("Festival") >= 2
    "Festival"
    "Bazaar"
    "Caravan"
    # "Lookout" if my.countInDeck("Lookout") == 0 # Hurts, even after bug fix: http://forum.dominionstrategy.com/index.php?topic=619.msg486204#msg486204
    "Silver" if my.getTotalMoney() < 40 or state.gainsToEndGame() <= 3
    "Copper" if state.gainsToEndGame() <= 3
    "Herbalist" if my.countInDeck("Herbalist") < 0 and my.countInDeck("Gold") + my.countInDeck("Platinum") > 0
  ]
}

3
I have a specific Kingdom that I'd like to play with Shelters. When I start a new game on Goko and the "Select a Kingdom" dialog box comes up, I can put my ten Kingdom cards in, but the tool doesn't recognize "Shelter" nor the names of the individual Shelters. Sticking "99*Dark Ages" at the end of my list also doesn't do the trick. I don't see an answer in the help at http://dom.retrobox.eu/kingdomgenerator.html. Is there a way I can force Shelters to show up in the game?

4
Game Reports / IGG strategy defeated by a surprising pair of cards
« on: April 13, 2015, 11:31:22 pm »


Code: [Select]
Squire, Stonemason, Great Hall, Lookout, Woodcutter, Bureaucrat, Ironworks, Ill-Gotten Gains, Mystic, Outpost
I looked at this Kingdom and barely saw past the IGG stack. My plan was to buy Ironworks to pump out Great Halls and a single Woodcutter as my terminal action to give me +Buys so I could tack coppers onto my IGGs. The bot I was playing against came up with the perfect response, but perhaps should have waited a little longer to let me dig myself in deeper. The response was a Bureaucrat on turn 2, a card that I had basically ignored when looking at the board. So much for that game plan. I checked with a simulator and the built-in Bureaucrat strategy works wonders against my Ironworks/Great Hall idea.

In fact, 9 of the 10 supply cards got bought in the course of the game: only Lookout was left out. I love it when Kingdoms play like that. And the key card on the board ended up being not IGG but Stonemason, with largely but not entirely for its overpay ability.

I still don't know what the best strategy is with this Kingdom, but the computer got a lot closer than I did.

Here's the log: http://www.gokosalvager.com/static/logprettifier.html?20150411/log.516cccebe4b082c74d79df9b.1428796850902.txt

5
Help! / Can Ironworks+Caravan+Conspirator+Treasury beat Council Room?
« on: April 10, 2015, 08:54:35 pm »
Code: [Select]
Courtyard, Moat, Advisor, Caravan, Conspirator, Feast, Ironworks, Council Room, Journeyman, Treasury
http://www.gokosalvager.com/static/logprettifier.html?/20150410/log.516cccebe4b082c74d79df9b.1428709884985.txt
* Also: how do I get my kingdom to show up graphically in my post?

I played a game against a Goko bot in which I tried to build an engine and the bot beat me with no Kingdom cards besides a single Council Room.

The ability to gain Caravans and Conspirator with Ironworks, and to perhaps have a Treasury hanging around to help me buy yet more pieces, seemed like it would be pretty powerful against BM+terminal draw. But it wasn't. I couldn't beat Council Room in Geronimoo's simulator. "Well, Council Room makes for very short games," I thought. So I tried my simulator bot against Smithy. No better.

If I let my bot buy Woodcutter (so it can get +Buy for $3 instead of from a Council Room for $5) I can get it to win, but not by that much. Warehouse or Cellar is a little better still. But is the engine really so weak that with the given board that it can't win?

Two other notes:
  • I realize that Advisor is also an option on the board. I didn't pursue it during the game because I preferred Caravan. But perhaps that was a mistake. The simulator doesn't support Advisor.
  • Perhaps also I should have snagged a Courtyard. The simulator doesn't benefit from Courtyard and doesn't seem to play it that well. For example, I've seen it put a Caravan on top of its deck when just playing the Caravan seems like the obvious route.

Here's my simulator code:

<?xml version="1.0" encoding="UTF-8"?>
<playerCollection>
<player name="Ironworks/Caravan/Conspirator"
 author="Chadeos"
 description="">
 <type name="SingleCard"/>
 <type name="TwoPlayer"/>
 <type name="UserCreated"/>
 <type name="Bot"/>
 <type name="Province"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Conspirator"/>
         <operator type="greaterOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Treasury">
      <condition>
         <left type="countCardsInDeck" attribute="Treasury"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Ironworks">
      <condition>
         <left type="countCardsInDeck" attribute="Ironworks"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Conspirator">
      <condition>
         <left type="countCardsInDeck" attribute="Conspirator"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Conspirator"/>
         <operator type="smallerThan" />
         <right type="countCardsInDeck" attribute="Caravan"/>
         <extra_operation type="minus" attribute="2.0" />
      </condition>
   </buy>
   <buy name="Caravan"/>
   <buy name="Conspirator"/>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Treasury"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Ironworks"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
</player>

</playerCollection>

6
Game Reports / Can you play this board better than my sim?
« on: April 04, 2015, 11:01:00 pm »
I played a game against one of the Goko bots in which I ran a bunch of sims before I started playing. I thought people might enjoy looking at the board, thinking about what they would do, and then comparing their strategy to the best sim bot I built (and perhaps trying to beat it). If people like it I may post some more.

Here's the board:
Beggar, Masterpiece, Wishing Well, Baron, Island, Monument, Navigator, Pirate Ship, Contraband, King's Court, Copper, Silver, Gold, Estate, Duchy, Province, Curse

My game log is at http://dominionlogs.goko.com//20150403/log.516cccebe4b082c74d79df9b.1428125493922.txt.

The bot, in Geronimoo format, is attached. I tested it against the built-in Monument bot. For those comfortable reading XML I've also pasted in below as a spoiler.


<?xml version="1.0" encoding="UTF-8"?>
<playerCollection>
<player name="My bot"
 author="Chadeos"
 description="">
 <type name="Optimized"/>
 <type name="Bot"/>
 <type name="UserCreated"/>
 <type name="Province"/>
 <type name="TwoPlayer"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="King$s_Court"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="King$s_Court"/>
   <buy name="Gold">
      <condition>
         <left type="countCardsInDeck" attribute="King$s_Court"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Monument">
      <condition>
         <left type="countCardsInDeck" attribute="Monument"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="3.0"/>
         <extra_operation type="divideBy" attribute="1.0" />
      </condition>
   </buy>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Wishing_Well"/>
</player>

</playerCollection>



7
Dominion General Discussion / Dominion song parodies
« on: January 06, 2013, 08:25:28 pm »



8
Simulation / Mine can trash non-treasure cards under Geronimoo's simulator
« on: November 23, 2012, 04:25:00 am »
I found that when I was running sims Mine was sometimes trashing non-treasure cards. I've attached code for a bot that produces this issue pretty frequently in sample games; just let it play itself or against Smithy a few times and you should see a Mine used to trash another Mine. I suspect it's a bug in the simulator although the simulator does crash on me sometimes so perhaps it's just misbehaving on my machine. Could someone else give it a shot and see if they can produce the bug as well?

On a related note, is this the correct place to report potential bugs in Geronimoo's simulator?

9
Dominion Isotropic / Rate your kingdom
« on: August 05, 2012, 10:41:59 pm »
Here's an idea: at the end of each game, Isotropic could give each player the option to rate the kingdom used for the game, maybe on 0-10 scale. After a couple months all the rating would constitute a neat data set. I'm sure there are a number of people in the Dominion community who would enjoy crack the data set open.

Pages: [1]

Page created in 0.124 seconds with 17 queries.