Dominion Strategy Forum

Please login or register.

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

Author Topic: Simulating challenge: beat Smithy  (Read 13993 times)

0 Members and 1 Guest are viewing this topic.

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1059
  • Respect: +868
    • View Profile
    • Geronimoo's Dominion Simulator
Simulating challenge: beat Smithy
« on: October 11, 2011, 09:59:13 am »
0

Find a strategy that beats this in a 3 player game using only cards from the base set:

Code: [Select]
<player name="Smithy" author="Geronimoo" description="This bot buys 1 Smithy and treasure. A dominating strategy in the base game.">
 <type name="ThreePlayer"/>
 <type name="Province"/>
 <type name="Competitive"/>
 <type name="UserCreated"/>
 <type name="SingleCard"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
   <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="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Smithy">
      <condition>
         <left type="countCardsInDeck" attribute="Smithy"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>

You are not allowed to use Chapel, Witch or Gardens.
Logged

DStu

  • Margrave
  • *****
  • Offline Offline
  • Posts: 2627
  • Respect: +1490
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #1 on: October 11, 2011, 11:52:56 am »
0

Not sure if this
Code: [Select]
<player name="Council Room" author="DStu" description="This bot buys 1 CR or Smithy and treasure. A dominating strategy in the base game.">
 <type name="SingleCard"/>
 <type name="UserCreated"/>
 <type name="ThreePlayer"/>
 <type name="Competitive"/>
 <type name="Province"/>
 <type name="Bot"/>
 <type name="BigMoney"/>
   <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="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Council_Room">
      <condition>
         <left type="countCardsInDeck" attribute="Council_Room"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Smithy"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Smithy">
      <condition>
         <left type="countCardsInDeck" attribute="Council_Room"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Smithy"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
is what you are looking for, but going for CR at 5/2 beats the Smithy.

 
Logged

chwhite

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1065
  • Respect: +442
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #2 on: October 11, 2011, 12:30:44 pm »
0

I don't know much about the simulator, but my first thought is that Moneylender leading to Festival/Library might do the trick.  Possibly add Cellar to the buy rules, too, and certainly aim for double-Province turns if you can.

Council Room/Village/Militia might be another possibility, but I'm not as confident.
« Last Edit: October 11, 2011, 12:35:48 pm by chwhite »
Logged
To discard or not to discard?  That is the question.

DStu

  • Margrave
  • *****
  • Offline Offline
  • Posts: 2627
  • Respect: +1490
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #3 on: October 11, 2011, 12:46:02 pm »
0

I don't know much about the simulator, but my first thought is that Moneylender leading to Festival/Library might do the trick.  Possibly add Cellar to the buy rules, too, and certainly aim for double-Province turns if you can.
Tried ML->Festival/Lib, and I don't get it over 5% winchance. Takes to long for the double Provinces.
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #4 on: October 11, 2011, 01:25:15 pm »
0

Someone asked about bureaucrat/council room in another thread and I was able to knock a useful simulation up quite easily. It has an edge on matched starts but loses if it starts on 5/2 compared to a smithy on 4/3.

Code: [Select]
<player name="Bureaucrat/Council Room" author="DG" description="">
 <type name="UserCreated"/>
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="Bot"/>
   <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="6.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Bureaucrat">
      <condition>
         <left type="countCardsInDeck" attribute="Bureaucrat"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Council_Room">
      <condition>
         <left type="countCardsInDeck" attribute="Council_Room"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="8.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
</player>
Logged

Captain_Frisk

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1257
  • Respect: +1263
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #5 on: October 11, 2011, 02:13:41 pm »
0

Someone asked about bureaucrat/council room in another thread and I was able to knock a useful simulation up quite easily. It has an edge on matched starts but loses if it starts on 5/2 compared to a smithy on 4/3.


Does pure councilroom BM beat smithy BM?  If so, you could just add a condition on the b-crat rule to not buy if you already have a council room
Logged
I support funsockets.... taking as much time as they need to get it right.

HiveMindEmulator

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2222
  • Respect: +2118
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #6 on: October 11, 2011, 04:41:01 pm »
0

^I would imagine it doesn't unless you manage to do something neat with the buy... Even though council room gets you 1 more card than smithy it also gives them 1 more card. And while it *may* be slightly better to have a 8 card turn (from council) and a 5 card turn instead of 7 (from smithy) and 6 (from opponent's council), it is probably not big enough to make up for the fact that you're down a silver at the start.
Logged

Karrow

  • Baron
  • ****
  • Offline Offline
  • Posts: 56
  • Respect: +7
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #7 on: October 11, 2011, 07:04:10 pm »
0

Find a strategy that beats this in a 3 player game using only cards from the base set:

You are not allowed to use Chapel, Witch or Gardens.

What is the third player?  Changing it to buy Smithy when <2 wins a 3 player against <1 when the third player is a single Militia, Bureaucrat, Thief, Spy, or the preset Spy/Thief attack.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1059
  • Respect: +868
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: beat Smithy
« Reply #8 on: October 12, 2011, 04:20:19 am »
0

I don't know much about the simulator, but my first thought is that Moneylender leading to Festival/Library might do the trick.  Possibly add Cellar to the buy rules, too, and certainly aim for double-Province turns if you can.
It always surprises me how some of the best players underestimate Big Money decks (or overrate engines...).
Logged

Davio

  • 2012 Dutch Champion
  • *
  • Offline Offline
  • Posts: 4787
  • Respect: +3413
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #9 on: October 12, 2011, 04:30:37 am »
0

My feeble attempts thus far were to use CR instead of Smithy, but this failed even when CR starts 5/2 and the Smithies start 4/3. That Silver really matters, I guess...

A sneaky Thief is too slow to matter. My bot ends up with a lot more Golds and Silvers, but not enough VPs of course. I have tried tweaking the Thief buy until my opponents had some money, but by that time it was already too late to really profit from it.

+Buys don't matter much in the base game, because with $7, it will still only buy 1 Gold for example. It may only matter in the end if it could ever get an extra Estate. Those +Buys are only handy with expansions with nifty $2's like Hamlet and some more elaborate strategies.

I could only 1-up the current Smithy by a small margin (~3%) by including some Libraries (modified BM for it):
Code: [Select]
<player name="Davio" author="Geronimoo" description="A money only strategy for 3 or 4 players">
 <type name="ThreePlayer"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
 <type name="Province"/>
 <type name="UserCreated"/>
 <type name="FourPlayer"/>
   <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="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Library">
      <condition>
         <left type="countCardsInDeck" attribute="Library"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Smithy">
      <condition>
         <left type="countCardsInDeck" attribute="Smithy"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

BSG: Cagprezimal Adama
Mage Knight: Arythea

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #10 on: October 12, 2011, 10:58:30 am »
0

Added an entirely different mine/cellar/spy/laboratory script to my previous bureaucrat/council room script to give a strong result from a 5/2 start.

Code: [Select]
<player name="Two path deck" author="DG" description="This bot follows bureaucrat/council room on a 4/3 start and mine/lab/spy/cellar on a 5/2 start.">
 <type name="Province"/>
 <type name="Bot"/>
 <type name="UserCreated"/>
 <type name="TwoPlayer"/>
   <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="6.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Mine">
      <condition>
         <left type="countCardsInDeck" attribute="Bureaucrat"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Mine"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Bureaucrat">
      <condition>
         <left type="countCardsInDeck" attribute="Mine"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Bureaucrat"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Laboratory">
      <condition>
         <left type="countCardsInDeck" attribute="Mine"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Council_Room">
      <condition>
         <left type="countCardsInDeck" attribute="Council_Room"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Bureaucrat"/>
         <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="8.0"/>
      </condition>
   </buy>
   <buy name="Spy">
      <condition>
         <left type="countCardsInDeck" attribute="Mine"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Bureaucrat"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
</player>
« Last Edit: October 12, 2011, 11:01:56 am by DG »
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1059
  • Respect: +868
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: beat Smithy
« Reply #11 on: October 12, 2011, 11:24:46 am »
0

And we have a winner!!! Well done DG! Being able to open Mine seems quite strong (similar to Trading Post which shines when bought on the first turn but is quite bad when bought later).
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2624
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #12 on: October 12, 2011, 11:45:04 am »
0

The mine still needs a lot of assistance from the other cards, but the actions all enhance each other in that combination.

There ought to be smithy beating bots using all the other base cards, even workshop. Perhaps that's the continued challenge.
Logged

DStu

  • Margrave
  • *****
  • Offline Offline
  • Posts: 2627
  • Respect: +1490
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #13 on: October 12, 2011, 01:15:52 pm »
0

gg
Logged

Karrow

  • Baron
  • ****
  • Offline Offline
  • Posts: 56
  • Respect: +7
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #14 on: October 12, 2011, 02:48:54 pm »
0

I hit the lab/cellar idea and come back to see you have it with mine/lab/cellar.  It surprised me how well lab/cellar fared against the Smithy.  I put in Militia and Spy to try to slow the Smithy down just a little.  I tried Bureaucrats without any good results.  I had a Moneylender in that was giving good results at first, but I tweaked enough that pulling the Moneylender out improved the odds.  I got a descent win advantage I think with this one.

Probably not optimized, but beats two smithy opponents by a good margin and the two-path by DG as well:
Karrow-Lab=39.3% - Smithy=26.5% - Smithy=26.5%
Karrow-Lab=33.3% - Two path=30.2% - Two path=30.2%

Lets see if I can get this right
Code: [Select]
<player name="Karrow-Lab" author="Karrow" description="Lab Cellar Militia Spy to beat Smithy">
 <type name="UserCreated"/>
 <type name="Province"/>
 <type name="ThreePlayer"/>
   <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="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Gold">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="smallerThan" />
         <right type="countCardsInDeck" attribute="Laboratory"/>
         <extra_operation type="plus" attribute="3.0" />
      </condition>
   </buy>
   <buy name="Laboratory"/>
   <buy name="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Laboratory"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Cellar"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Militia">
      <condition>
         <left type="countCardsInDeck" attribute="Militia"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.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="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Cellar"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Spy">
      <condition>
         <left type="countCardsInDeck" attribute="Spy"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Cellar"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
   <buy name="Cellar"/>
</player>
Logged

Slow Dog

  • Swindler
  • ***
  • Offline Offline
  • Posts: 16
  • Respect: +12
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #15 on: October 15, 2011, 04:09:27 pm »
0

It's not worth pasting my slightly tweaked bots, but my attempts show that Double Smithy edges Single Smithy.
Militia Smithy does slightly better again.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1059
  • Respect: +868
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: beat Smithy
« Reply #16 on: December 15, 2011, 09:25:08 am »
+1

Old thread, but I've been playing around a bit more with DG's suggestion to use Workshops and managed to create a bot that is on par with BM Smithy (probably beats it when played by a skilled human). It opens Workshop/Workshop and then goes on to build a Village/Smithy engine. It uses a Cellar and Militia as support. This bot doesn't buy any treasure cards so it's a true engine!

Code: [Select]
<player name="Workshop into Village/Smithy" author="Geronimoo" description="Two Workshops allow building the Village/Smithy engine fast enough to sometimes beat Smithy BM in the base game.">
 <type name="Engine"/>
 <type name="Attacking"/>
 <type name="Bot"/>
 <type name="Province"/>
 <type name="Competitive"/>
 <type name="UserCreated"/>
 <type name="TwoPlayer"/>
   <buy name="Province"/>
   <buy name="Duchy">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Workshop">
      <condition>
         <left type="countCardsInDeck" attribute="Workshop"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Militia">
      <condition>
         <left type="countCardsInDeck" attribute="Militia"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Smithy">
      <condition>
         <left type="countCardTypeInDeck" attribute="Terminal"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Village"/>
         <extra_operation type="plus" attribute="1.0" />
      </condition>
   </buy>
   <buy name="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Cellar"/>
         <operator type="smallerOrEqualThan" />
         <right type="countCardsInDeck" attribute="Province"/>
      </condition>
   </buy>
   <buy name="Village"/>
</player>
Logged

Sparafucile

  • Thief
  • ****
  • Offline Offline
  • Posts: 98
  • Respect: +153
    • View Profile
Re: Simulating challenge: beat Smithy
« Reply #17 on: October 02, 2013, 11:02:16 pm »
0

Old topic, but a simple solution.

Using the same bot, but modifying it to buy double council room instead of smithy results in a 49.7% win for the double council room, 43.6% win for smithy and 6.7% tie.   

tl;dr  Double Council room beats this single smithy bot slightly
Logged
Pages: [1]
 

Page created in 0.12 seconds with 20 queries.