Dominion Strategy Forum

Please login or register.

Login with username, password and session length
Pages: [1]

Author Topic: Challenge: asymmetric p1/p2 equilibrium  (Read 970 times)

0 Members and 1 Guest are viewing this topic.

Empathy

  • Moneylender
  • ****
  • Offline Offline
  • Posts: 151
  • Respect: +40
    • View Profile
Challenge: asymmetric p1/p2 equilibrium
« on: May 05, 2012, 02:44:50 pm »
+3

I want to ask you simulators out there if there are striking examples of simulation bots where the optimal strategy for p1 and p2 differ notably. My intuition tells me that p1 should opt for a low variance strategy, while p2 should aim for a high variance one, and that the game is probably very short.

So far, my first quick attempt is the following:

Set the first players to open with Governor/duchess and goes through the standard Governoring, finishing the game on average within 15 turns:
Code: [Select]
<player name="Governor 5/2"
 author="Empathy"
 description="A very strong p1 opening.">
 <type name="TwoPlayer"/>
 <type name="Bot"/>
 <type name="SingleCard"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="UserCreated"/>
  <start_state>
    <hand contents="2 Copper, 3 Estate"/>
    <discard contents=""/>
    <drawdeck contents="5 Copper" shuffle="false"/>
  </start_state>
   <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="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Governor" strategy="GoldEarlyTrashMid"/>
   <buy name="Silver"/>
   <buy name="Duchess">
      <condition>
         <left type="countCardsInDeck" attribute="Duchess"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
</player>

Now if p2 tries to catch up using his own governor deck,
Code: [Select]


<player name="Governor"
 author="Empathy"
 description="A strategy traying to catch up to an early governor opening.">
 <type name="TwoPlayer"/>
 <type name="Bot"/>
 <type name="SingleCard"/>
 <type name="Province"/>
 <type name="UserCreated"/>
 <type name="BigMoney"/>
 <type name="Generated"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="18.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="6.0"/>
      </condition>
   </buy>
   <buy name="Governor" strategy="GoldEarlyTrashMid"/>
   <buy name="Silver"/>
</player>
He loses 58-37. Note that, in both cases, the optimal Governor policy is "GoldEarlyTrashMid". Also, buying governors over Gold is optimal for p1, but not p2 (which kinda makes sense). The average game takes 15 turns.

Now consider the following smuggler bot:
Code: [Select]
<player name="smugglers counter"
 author="Empathy"
 description="A smuggler-based counter to the strong p1 opening. Note that it plays the governors much more aggressively!">
 <type name="TwoPlayer"/>
 <type name="Bot"/>
 <type name="SingleCard"/>
 <type name="Province"/>
 <type name="BigMoney"/>
 <type name="UserCreated"/>
   <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="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Governor"/>
   <buy name="Smugglers">
      <condition>
         <left type="countCardsInDeck" attribute="Smugglers"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
It actually nearly ties with the insanely fast governor 5/2 opening: 49-45! Note that the optimal governing policy for this bot is "Standard", but the optimal policy for the first player is still "GoldEarlyTrashMid" (it actually loses otherwise). The average game lasts 14.5 turns

Did I make a blatant mistake in the p1 bot (a "garbage in, garbage out" type thing)? Can other such situations be simulated?

Logged
Pages: [1]
 

Page created in 0.065 seconds with 20 queries.