Dominion Strategy Forum

Dominion => Variants and Fan Cards => Topic started by: Graystripe77 on August 22, 2011, 09:57:49 pm

Title: Best Strategy Simulating Challenge 1
Post by: Graystripe77 on August 22, 2011, 09:57:49 pm
The goal of this topic is to introduce new and interesting strategies (Using Geronimoo's simulator) to as many people as possible by seeing who can create the most intriguing strategy using a predetermined set of cards.

Here is a set of 5 cards:

Courtyard
Coppersmith
Venture
Trading Post
Worker's Village

Who can come up with the most interesting (and hopefully good) strategy?

(Maybe I should have put this in puzzles and challenges)
Title: Re: Best Strategy Simulating Challenge 1
Post by: michaeljb on August 23, 2011, 12:07:03 am
78-19 vs BMU w/ random starts, more dominant if it gets to start 5/2.
I just took the BMU bot and added Trading Post, Ventures and Courtyards, it usually gets 1 or 0 Courtyards. It was the first strategy I thought of, not terribly creative, and of course I won't know how well it actually does in this set of 5 till I get some bots for it to play against.  ;D

edit: I just realized I had been mistakenly matching this against the 3p/4p BMU, not the 2p one...against the 2p BMU it does about 67-30. I may rework this some more but I guess it can still be a starting point for this challenge.

Code: [Select]
<player name="michaeljb Gray'sChallenge1">
   <buy name="Province"/>
   <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="Trading_Post">
      <condition>
         <left type="countCardsInDeck" attribute="Trading_Post"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Venture"/>
   <buy name="Silver"/>
   <buy name="Courtyard"/>
</player>
Title: Re: Best Strategy Simulating Challenge 1
Post by: DStu on August 23, 2011, 01:47:13 am
I think that's already Challenge #5, but anyway:

When you ignore the TradingPost and let it get an early CY even with more than $2, you beat michaeljb's bot by 64:33
Code: [Select]
<player name="mine">
   <buy name="Province"/>
   <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="Gold"/>
   <buy name="Venture"/>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Courtyard"/>
</player>
Title: Re: Best Strategy Simulating Challenge 1
Post by: Thanar on August 23, 2011, 02:11:18 am
Here is my entry for the Challenge: Thanar Venture + Courtyard D4E2

It buys Ventures at 5, with no limit. It buys 1 Courtyard at higher priority than Silver, and it also buys more Courtyards when it can’t afford Silver. This leads to a Courtyard/Silver opening with 4/3, and Venture/Courtyard with 5/2. [Up to now this is functionally the same as the bot Dstu just posted.]

I also tweaked the Dutchy buy rule to start buying at 4 Provinces left (rather than 5 used by BMU) and found it worked a bit better.

Code: [Select]
<player name="Thanar Venture + Courtyard D4E2">
   <buy name="Province"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.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="Gold"/>
   <buy name="Venture"/>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Courtyard"/>
</player>
Results
80% to 14% vs. BM - Big Money Ultimate
64% to 32% vs. michaeljb Gray’sChallenge1
47% to 43% vs. Dstu (which buys Dutchies at 5 Provinces left)

Title: Re: Best Strategy Simulating Challenge 1
Post by: Geronimoo on August 23, 2011, 04:14:00 am
If you want to participate but find constructing a bot too hard, here (http://dominionsimulator.wordpress.com/editcreate-your-own-strategy/)'s a little walkthrough how to use the bot editor.
Title: Re: Best Strategy Simulating Challenge 1
Post by: WanderingWinder on August 23, 2011, 10:00:55 am
Here's what I've got:
Code: [Select]
<player name="SimStratChal1WW">
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.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="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Venture"/>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerOrEqualThan" />
         <right type="countAllCardsInDeck"/>
         <extra_operation type="divideBy" attribute="8.0" />
      </condition>
   </buy>
</player>
Beats Thanar's ~46/44. I don't think there's going to be much improvement over this. I tried stuff with trading post, but it's losing by a pretty good stretch, as it turns out. I doubt Coppersmith is really going to do anything here, and Worker's village might be nice, except that I don't think the game will last long enough to prefer it to silver.
Title: Re: Best Strategy Simulating Challenge 1
Post by: DG on August 23, 2011, 12:24:29 pm
There's no point playing the simulator with courtyard/trading post. It gets the priorities wrong when that should be a rock solid 5/2 opening. It plays the trading post with the courtyard also in hand. When playing the courtyard it doesn't put the trading post back onto the deck (if it draws it). Courtyards probably belong in the "do not simulate" list along with hamlets and havens.

Courtyard/venture is also an extremely powerful opener and the simulator will hopefully get that one right.

Title: Re: Best Strategy Simulating Challenge 1
Post by: Graystripe77 on August 24, 2011, 01:46:53 pm
OK, next challenge is in the challenges section. :)
Title: Re: Best Strategy Simulating Challenge 1
Post by: michaeljb on August 24, 2011, 11:33:19 pm
With Geronimoo's slightly updated simulator (he specifically mentioned improved Courtyard play), I added a rule to WW's bot after his second Duchy rule, so that it will buy Trading Post if and only if it gets the 5/2 opening draw. For random starts it has a very slim edge, but it has a significant advantage when it gets to start 5/2.

There are probably better/more general methods for restricting a 5-coster to the opening buy, but the rule I used was to buy a Trading Post if the number of cards in the deck is less than or equal to 11.

Moral of the story: WW built the best bot, but it should also open Trading Post when it can! I'm pleased that I found a good use for Trading Post. Now onto Gray's next challenge!

Code: [Select]
<player name="SimStratChal1WW ">
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.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="Gold"/>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Trading_Post">
      <condition>
         <left type="countAllCardsInDeck"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="11.0"/>
      </condition>
   </buy>
   <buy name="Venture"/>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Courtyard">
      <condition>
         <left type="countCardsInDeck" attribute="Courtyard"/>
         <operator type="smallerOrEqualThan" />
         <right type="countAllCardsInDeck"/>
         <extra_operation type="divideBy" attribute="8.0" />
      </condition>
   </buy>
</player>
Title: Re: Best Strategy Simulating Challenge 1
Post by: HiveMindEmulator on August 26, 2011, 05:34:32 am
^using total cards <= 11 could screw up if you play trading post on turn 3 and get $5. I think you need to additionally specify silver = 0.
Title: Re: Best Strategy Simulating Challenge 1
Post by: michaeljb on August 26, 2011, 05:50:00 pm
^using total cards <= 11 could screw up if you play trading post on turn 3 and get $5. I think you need to additionally specify silver = 0.
I guess if Council Room or Masquerade are in the kingdom this does matter, but for this particular puzzle that won't be a problem.