Dominion Strategy Forum

Please login or register.

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

Author Topic: Simulating challenge: Province vs Colony  (Read 6594 times)

0 Members and 1 Guest are viewing this topic.

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Simulating challenge: Province vs Colony
« on: November 15, 2011, 04:01:55 am »
0

Create a bot that will win with only Provinces on a Colony board.

Also provide the Colony bot. This has to be a realistic situation. Tournament is a little too obvious, so bonus points if your solution doesn't include it...

You might get inspiration here
Logged

Karrow

  • Baron
  • ****
  • Offline Offline
  • Posts: 56
  • Respect: +7
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #1 on: November 15, 2011, 11:58:58 am »
0

I'm guessing this will need to be for 2-player only.  With players conspiring, 3-4players is too easy.
Logged

DStu

  • Margrave
  • *****
  • Offline Offline
  • Posts: 2627
  • Respect: +1489
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #2 on: November 15, 2011, 12:34:27 pm »
0

NV/Bridge works against BM-Bridge. The simulator does not like two bots playing NV-Bridge against each other, but certainly in this situation (when both players have to split the Bridges), the Provinces should be more attractive than the Colonies.

But I'm sure that's not what you wanted...
Logged

Karrow

  • Baron
  • ****
  • Offline Offline
  • Posts: 56
  • Respect: +7
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #3 on: November 15, 2011, 07:37:38 pm »
0

How about a realistic situation until the game starts.  A descent colony player should notice when a bad situation arises, and switch to a province strategy.  But that gets tough to simulate.

This was very tough because every time I though I had it, I optimized the colony player to be fair and colony would win.

I almost thought it impossible because I took it literally "province only."  Any strategy "province only" gets beat by province +duchy/estate.  But since I realized I was loosing to a player that did not always buy a colony, I changed my colony player to "must buy 1 colony before buying another victory card."   

I barely squeezed it out after I optimized the colony player.  Kingdom = Sea Hag, Militia, Ill-Gotten Gains.  I'm assuming the other 7 kingdom cards suck for both players.  The key is having "non-card-drawing-curse-givers" to slow the game down and speed a 3-pile, and then to completely lock down the colony player to 3 cards with militia.  Any +card for the colony player will cause him to win.  It doesn't matter much if colony buys a militia or not, it just speeds up a 3-pile.  It looks like Sea Hag doesn't do much, but I wanted more options to optimize and make it realistic.  I'll Gotten Gains slows down the colony player, but it hurts worse not to buy them so he has to join in buying them.  I can't get the colony player to win with only these 3 kingdom cards.  I'm sure there's a way to improve on this, but I'm out of time for now.   

Province-only player, wins 55% of the time.
Code: [Select]
<player name="Prov-only beats Colony" author="Karrow" description="Designed to beat a Colony player with only Provinces.">
 <type name="Optimized"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
 <type name="Province"/>
 <type name="TwoPlayer"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
   <buy name="Province">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="42.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Gold"/>
   <buy name="Ill_Gotten_Gains"/>
   <buy name="Sea_Hag">
      <condition>
         <left type="countCardsInDeck" attribute="Sea_Hag"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Militia"/>
   <buy name="Silver"/>
</player>


Prov-only Colony Opponent  wins 43%
Code: [Select]
<player name="Prov-only Colony Opponent" author="Karrow" description="WanderingWinder's BMU+Col modified.  Forced to buy at least 1 Colony before any other victory cards.">
 <type name="Optimized"/>
 <type name="SingleCard"/>
 <type name="UserCreated"/>
 <type name="Colony"/>
 <type name="TwoPlayer"/>
 <type name="BigMoney"/>
 <type name="Bot"/>
   <buy name="Colony">
      <condition>
         <left type="getTotalMoney"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="12.0"/>
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Colony"/>
         <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>
      <condition>
         <left type="countCardsInDeck" attribute="Colony"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Colony"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Gold"/>
   <buy name="Ill_Gotten_Gains"/>
   <buy name="Sea_Hag">
      <condition>
         <left type="countCardsInDeck" attribute="Sea_Hag"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Militia">
      <condition>
         <left type="countCardsInDeck" attribute="Militia"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4378
    • View Profile
    • WanderingWinder YouTube Page
Re: Simulating challenge: Province vs Colony
« Reply #4 on: November 15, 2011, 07:54:46 pm »
0

Jack against something really really weak (BM Colony for sure, Golem/Counting House as well... little else) does the trick.
But Young Witch/Tunnel also seems to do it pretty darn consistently (I imagine even letting you have almost any other one or two kingdom cards is not going to help) unless there's a good bane. How good does the bane have to be? I don't know.

It also goes without saying that a whole bunch of rush strategies that don't really go for provinces but will grab them if they get a good chance also work. And you'll have many more things that work if you let yourself grab a colony given the chance.

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2623
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #5 on: November 15, 2011, 08:35:56 pm »
0

I'm guessing that Geronimo is looking for something like this script without any attacks. Attacks can win any game any way they like usually. This is a province buying deck and can't aspire to colonies without extra drawing. The simulators play this quite decently considering how wrong it could be.

Code: [Select]
<player name="Spice Merchant/tactician/vault" author="DG" description="This bot has been generated by the computer without any optimization. XXXXIt just buys a single Action card and money">
 <type name="TwoPlayer"/>
 <type name="Fun"/>
 <type name="UserCreated"/>
 <type name="Bot"/>
 <type name="Province"/>
   <buy name="Tactician">
      <condition>
         <left type="countCardsInDeck" attribute="Tactician"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Vault">
      <condition>
         <left type="countCardsInDeck" attribute="Vault"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Tactician">
      <condition>
         <left type="countCardsInDeck" attribute="Tactician"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Spice_Merchant">
      <condition>
         <left type="countCardsInDeck" attribute="Spice_Merchant"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Province"/>
   <buy name="Duchy"/>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Cellar"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="3.0"/>
      </condition>
   </buy>
   <buy name="Estate"/>
</player>

I used this as caravan/mine script as my rather competitive colony baseline and it's about 50/50 with the province deck.

Code: [Select]
<player name="Mine(Col)" author="DG" description="No description available">
 <type name="TwoPlayer"/>
 <type name="Colony"/>
 <type name="Fun"/>
 <type name="UserCreated"/>
 <type name="Bot"/>
   <buy name="Colony"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
      <condition>
         <left type="countVP"/>
         <operator type="greaterThan" />
         <right type="countMAXOpponentVP"/>
         <extra_operation type="minus" attribute="12.0" />
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="countCardsInSupply" attribute="Province"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
      <condition>
         <left type="countVP"/>
         <operator type="greaterOrEqualThan" />
         <right type="countMAXOpponentVP"/>
         <extra_operation type="minus" attribute="6.0" />
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Gold"/>
   <buy name="Mine">
      <condition>
         <left type="countCardsInDeck" attribute="Mine"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Caravan"/>
   <buy name="Silver"/>
</player>
« Last Edit: November 15, 2011, 08:39:46 pm by DG »
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4378
    • View Profile
    • WanderingWinder YouTube Page
Re: Simulating challenge: Province vs Colony
« Reply #6 on: November 15, 2011, 08:43:53 pm »
0

I'm guessing that Geronimo is looking for something like this without any attacks. It is a province buying deck and can't aspire to colonies without extra drawing. The simulators play this quite decently.
I'm guessing you should let the colony bot use any cards the Province bot is using. I mean, who is going to play straight-up mine with vault on the board? Or Tactician? Or Spice merchant? Nobody really. I mean, if you wanna do that, play wharves and banks (province) against, I dunno, envoy/colony, which, while not too terribly strong, is a pretty reasonable strategy. Wharf/Bank wins, but then who's going to play straight-up envoy there? Nobody.

Edit: Didn't see the caravan in there. But man, people would definitely play Caravan/Vault, maybe with a single Spice Merchant, rather than Caravan/Mine. Even a very simple double vault/spice merchant (literally the first thing I tried after just straight-up vault) wins pretty cleanly. And I'm pretty sure you can use the tacticians as well.
« Last Edit: November 15, 2011, 08:48:49 pm by WanderingWinder »
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2623
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #7 on: November 15, 2011, 09:12:52 pm »
0

I just picked a baseline competitive deck to run a couple of different other things (like jack of all trades) against. I wasn't changing the baseline for every deck it ran against, or it wouldn't really be a baseline would it?
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4378
    • View Profile
    • WanderingWinder YouTube Page
Re: Simulating challenge: Province vs Colony
« Reply #8 on: November 15, 2011, 10:13:44 pm »
0

That's fine, I just don't think that that does what it is that Geronimoo's looking for (or, in any rate, what I'd be interested in), which is a reason to go for provinces over colonies on a board with colonies out there. And so no, it wouldn't be a baseline if you did that, but I don't want a baseline - I want something that's actually realistic for a game, which baselines are not

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #9 on: November 16, 2011, 05:47:00 am »
0

I think DG's Tactician/Vault strategy might be a good place to start. I did find a Colony bot using only Vault, Spice Merchant and Cellar that narrowly beats his Province bot. But in a real game it's quite possible the Colony player will panic once the Province dude starts buying Provinces every turn and misplay, so although we don't have a winner yet, it's a very nice attempt. It's also fun to see someone beside myself who's become very proficient at using the simulator  :)

Code: [Select]
<player name="Spice Merchant/vault(Col)" author="Geronimoo" description="Simulation Challenge: Province vs Colony (Colony bot)">
 <type name="UserCreated"/>
 <type name="Bot"/>
 <type name="Colony"/>
 <type name="Competitive"/>
 <type name="TwoPlayer"/>
 <type name="BigMoney"/>
   <buy name="Colony">
      <condition>
         <left type="countCardsInDeck" attribute="Platinum"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <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="2.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Vault">
      <condition>
         <left type="countCardsInDeck" attribute="Vault"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Gold"/>
   <buy name="Vault"/>
   <buy name="Spice_Merchant">
      <condition>
         <left type="countCardsInDeck" attribute="Spice_Merchant"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Cellar">
      <condition>
         <left type="countCardsInDeck" attribute="Cellar"/>
         <operator type="smallerThan" />
         <right type="countCardTypeInDeck" attribute="Victory"/>
         <extra_operation type="minus" attribute="3.0" />
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #10 on: November 16, 2011, 06:00:58 am »
0

@Karrow: I don't think what you suggest is very realistic but Ill-Gotten Gains is definitely a card that is a candidate for the winning Province strategy although it might not even include Provinces, just Duchies...
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4378
    • View Profile
    • WanderingWinder YouTube Page
Re: Simulating challenge: Province vs Colony
« Reply #11 on: November 16, 2011, 09:35:19 am »
0

Seriously, it's not THAT hard with some kind of attack, at least a cursing attack, to win going provinces instead of colonies. Literally just using the built-in Young Witch/Tunnel without a relevant Bane seems to win pretty darn handily. So the question is whether or not there's something without attacks. To which I present:
Code: [Select]
<player name="FV/Double Jack/Venture/Bank" author="WW" description="Jack combines the effects of Workshop, Spy, Library and Trade Route in a tuned down version.XXXXIt's very powerful for money-based strategies! ">
 <type name="Competitive"/>
 <type name="BigMoney"/>
 <type name="SingleCard"/>
 <type name="TwoPlayer"/>
 <type name="UserCreated"/>
 <type name="Province"/>
 <type name="Bot"/>
   <buy name="Province"/>
   <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="Bank"/>
   <buy name="Gold">
      <condition>
         <left type="countCardsInDeck" attribute="Gold"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Venture"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Venture"/>
   <buy name="Gold"/>
   <buy name="Jack_of_all_Trades">
      <condition>
         <left type="countCardsInDeck" attribute="Jack_of_all_Trades"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Fishing_Village"/>
   <buy name="Silver"/>
</player>

This is Fishing Village/DoubleJack/Venture/Bank. The venture and bank are probably not so important, but I was testing it against a semi-reasonable strategy of the built-in Venture/Bank for colonies, and they (particularly the venture) should help some. I haven't really tuned this all that much, but it's already beating the Colony bot by a couple of percentage points. Probably both the bots can have their endgame rules tuned a fair bit.
One of the key points is that if you're trying to rush those provinces, you really want to hold off on getting smaller green cards.

Karrow

  • Baron
  • ****
  • Offline Offline
  • Posts: 56
  • Respect: +7
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #12 on: November 16, 2011, 11:02:18 am »
0

I think you guys are way, way off here.

The OP said "realistic situation."

1.  The standard colony bot goes by # of colonies left in the supply.  This screws it up against any non-colony bot.  You have to re-tune the colony bot to be fair.  Changing them all to # of buys needed to end the game is a good start.

2.  The colony bot should have use of all cards the non-colony bot does.
  - The most basic way to do this is simply add a "buy Colony" to the top of your province bot.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #13 on: November 16, 2011, 11:12:38 am »
0

@WW: if I simply "Colonize" your FV/Jack/Bank bot it crushes its counterpart. And regarding the Tunnel/YW, if you use the "#buys/gains needed to end game" instead of "count in supply(Colony/Province)", the Colony bot is on par with its Province counterpart (but will frequently not get to buy Colonies because of piles emptying too fast).

Karrow actually beat me to it. Good points!
Logged

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4378
    • View Profile
    • WanderingWinder YouTube Page
Re: Simulating challenge: Province vs Colony
« Reply #14 on: November 16, 2011, 12:14:34 pm »
0

I think you guys are way, way off here.

The OP said "realistic situation."

1.  The standard colony bot goes by # of colonies left in the supply.  This screws it up against any non-colony bot.  You have to re-tune the colony bot to be fair.  Changing them all to # of buys needed to end the game is a good start.

2.  The colony bot should have use of all cards the non-colony bot does.
  - The most basic way to do this is simply add a "buy Colony" to the top of your province bot.

Okay, then the province player should realistically also be allowed to buy a colony if he lucks out and gets 11 without really going for it, which sorta makes the whole exercise pointless. I guess a good thing would be to see if you can make one that works always prioritizing Province>Platinum, though here too you'll get some engines that are really meant to get colonies and can do so without platinum.

And I find it sorta interesting that FV/Jack is good enough to handle running to colonies with all the silver, but then I guess it's probably having more of a go at provinces anyway, and, as I'm suggesting above, just reaching up for colonies on those (not TOO rare) occasions when it can get them.

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2623
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #15 on: November 16, 2011, 12:15:11 pm »
0

Are we in fact then just looking for a kingdom card purchasing strategy that has a higher win rate when supported by a province purchasing strategy than when supported by a colony purchasing strategy? Sea hags + explorers has a higher win rate if going for provinces and not colonies, however it has a higher win rate again if goes directly for duchies mid-game. Familiars + explorers will work similarly.
Logged

Karrow

  • Baron
  • ****
  • Offline Offline
  • Posts: 56
  • Respect: +7
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #16 on: November 16, 2011, 12:55:41 pm »
0

@Karrow: I don't think what you suggest is very realistic but Ill-Gotten Gains is definitely a card that is a candidate for the winning Province strategy although it might not even include Provinces, just Duchies...

Well if Provinces are not required, that's too easy.  Ill-Gotten Gains/Gardens and Workshop/Gardens both do the trick.  Considering only those two in the kingdom, I can't get a Colony to win.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #17 on: November 16, 2011, 03:38:59 pm »
0

What I'm looking for is a Province rush strategy that either is incapable of buying Colonies or is hurt if it side tracks to buy a Colony. Three-piling is not really what I'm looking for.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #18 on: November 16, 2011, 04:01:26 pm »
0

I think I've found a likely winner: Mean Mr Mustard's Apothecary/Native Village strategy. The default Apothecary/NV/Scheme bot can be used to test this (it beats the Colony Envoy bot for instance). There's no way you can make a competitive Colony strategy with just Apothecary, NV and Scheme alone, so if the other 7 cards on the board are bad enough this strategy will beat any Colony strategy.
Logged

greatexpectations

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1096
  • Respect: +1066
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #19 on: November 16, 2011, 11:11:25 pm »
0

What I'm looking for is a Province rush strategy that either is incapable of buying Colonies or is hurt if it side tracks to buy a Colony. Three-piling is not really what I'm looking for.

a few ideas that might work...

- remodel. a peddler remodel strategy might be quick enough.  maybe throw in hamlet, scheme, and/or loan to help. a heavy gold strategy with remodel might work too - hoard or mint maybe? a colony player might not touch peddlers at all unless he plans to remodel them for plat.
- a horn of plenty draw engine with a nice mega-turn. 
- highway/ironworks with a little trashing might work, assuming a split of the highways.

no idea how these will simulate though, sorry.  im not much good with the sims.
Logged
momomoto: ...I looked at the tableau and went "Mountebank? That's for jerks."
rrenaud: Jerks win.

WanderingWinder

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 5275
  • ...doesn't really matter to me
  • Respect: +4378
    • View Profile
    • WanderingWinder YouTube Page
Re: Simulating challenge: Province vs Colony
« Reply #20 on: November 16, 2011, 11:37:23 pm »
0

I think I've found a likely winner: Mean Mr Mustard's Apothecary/Native Village strategy. The default Apothecary/NV/Scheme bot can be used to test this (it beats the Colony Envoy bot for instance). There's no way you can make a competitive Colony strategy with just Apothecary, NV and Scheme alone, so if the other 7 cards on the board are bad enough this strategy will beat any Colony strategy.
Unfortunately, no go. Here's a mildly colonized version that does a touch better:
Code: [Select]
<player name="Apothecary/Native Village/Scheme(Col)" author="WW" description="No description available">
 <type name="Fun"/>
 <type name="UserCreated"/>
 <type name="Bot"/>
 <type name="Competitive"/>
 <type name="TwoPlayer"/>
 <type name="Engine"/>
 <type name="Colony"/>
 <type name="Combo"/>
   <buy name="Colony"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.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="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.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="Platinum"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="8.0"/>
      </condition>
   </buy>
   <buy name="Apothecary" strategy="ApothecaryNativeVillage"/>
   <buy name="Potion">
      <condition>
         <left type="countCardsInDeck" attribute="Potion"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Copper">
      <condition>
         <left type="countCardsInDeck" attribute="Copper"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="9.0"/>
      </condition>
   </buy>
   <buy name="Native_Village" strategy="ApothecaryNativeVillage">
      <condition>
         <left type="countCardsInDeck" attribute="Native_Village"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Scheme"/>
</player>
I think you're going to be pretty hard-pressed to find anything that doesn't have SOME improvement by allowing colonies, especially if you don't allow attacks or rushes.

octopus

  • Herbalist
  • **
  • Offline Offline
  • Posts: 7
  • Respect: +2
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #21 on: November 17, 2011, 04:16:20 am »
0

How about Border Village/Governor, using Governor to remodel Golds purchased or gained with Governor and Border Villages themselves into Provinces?

If that doesn't work, try adding Militia as a terminal.  Also if opponent remodels, trash coppers and upgrade estates into silvers.  Might also want to remodel silvers into Governors.  Late game silvers can be converted into Duchies, and Duchy can also be gained with Border Village.  I imagine this is somewhat tricky to program.
« Last Edit: November 17, 2011, 04:54:51 am by octopus »
Logged

DG

  • Governor
  • *****
  • Offline Offline
  • Posts: 4074
  • Respect: +2623
    • View Profile
Re: Simulating challenge: Province vs Colony
« Reply #22 on: November 17, 2011, 08:52:19 am »
0

(Edit - first posting contained a problem with horns of plenty which I resolved by ignoring them entirely. Ironworks/chapel stalled when trying to gain a horn of plenty since it played the chapel as priority but still didn't always trash the last coppers.)

This bot starts chapel/ironworks and then moves onto ironworks/caravan/highways to clear out the provinces using 8 ironworks in a turn. It can presumably do this faster than anything can clear out the colonies using the same tactic. As soon as an opponent competes for the key cards there won't be enough to complete the deck, so a human player can almost certainly obstruct this.

Code: [Select]
<player name="Ironworks/chapel" author="DG" description="The optimized Ironworks strategy that buys no other actions.">
 <type name="Fun"/>
 <type name="UserCreated"/>
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="Bot"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInHand" attribute="Ironworks"/>
         <operator type="greaterOrEqualThan" />
         <right type="countCardsInSupply" attribute="Province"/>
         <extra_operation type="minus" attribute="1.0" />
      </condition>
      <condition>
         <left type="countCardsInPlay" attribute="Village"/>
         <operator type="greaterOrEqualThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Ironworks">
      <condition>
         <left type="countCardsInDeck" attribute="Ironworks"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Chapel" strategy="aggressiveTrashing">
      <condition>
         <left type="countCardsInDeck" attribute="Chapel"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Feast">
      <condition>
         <left type="countCardsInDeck" attribute="Highway"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Feast"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Highway">
      <condition>
         <left type="countCardsInDeck" attribute="Highway"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Caravan">
      <condition>
         <left type="countCardsInDeck" attribute="Caravan"/>
         <operator type="smallerOrEqualThan" />
         <right type="countCardsInDeck" attribute="Ironworks"/>
      </condition>
   </buy>
   <buy name="Ironworks">
      <condition>
         <left type="countCardsInDeck" attribute="Ironworks"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="8.0"/>
      </condition>
   </buy>
   <buy name="Highway">
      <condition>
         <left type="countCardsInDeck" attribute="Highway"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Village">
      <condition>
         <left type="countCardsInDeck" attribute="Village"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="7.0"/>
      </condition>
   </buy>
   <buy name="Caravan"/>
   <buy name="Highway"/>
</player>
« Last Edit: November 17, 2011, 09:11:02 am by DG »
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #23 on: November 17, 2011, 09:41:11 am »
0

I should really revisit the Chapel code, because it's constantly being played and not trashing anything (which screws with Ironworks that thinks it can't be played to gain a Horn of Plenty, because there's a Chapel that wants to be played).

The Ironworks/Caravan/Highways is a cool bot, but I'm afraid this board will result in a hyper fast game in real life: both players gaining massive amounts of Caravans/Highways, then one of them is able to finish the third pile (probably Ironworks or Village) and buys a Duchy to win the game on turn 10 or something.
Logged

Geronimoo

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1055
  • Respect: +859
    • View Profile
    • Geronimoo's Dominion Simulator
Re: Simulating challenge: Province vs Colony
« Reply #24 on: November 18, 2011, 08:29:28 am »
0

I think I've found one (that can actually be simulated correctly). It does need one condition to work: the Province player needs to open $5/$2, but if it does it rushes the Provinces before the Colony player can take over.

The strategy is Tactician/Secret Chamber with Laboratories added to get to $8 each turn. The Colony player can't use the combo to get to Colonies. It can use it to get Platinums, but then the combo doesn't work anymore. If the Colony player tries to counter the Province player by rushing Laboratories it still loses.

Here's the winning Province bot (open $5/$2):
Code: [Select]
<player name="Tactician/Secret Chamber" author="Geronimoo" description="Simulation Challenge: Province vs Colony (Province Bot)XXXXThis strategy strives to play Tactician every turn. Secret Chamber allows it to discard the cards for $ before Tactician does.XXXXBefore the greening starts, the deck wants a critical number of Laboratories (7 actually)">
 <type name="Bot"/>
 <type name="UserCreated"/>
 <type name="Competitive"/>
 <type name="TwoPlayer"/>
 <type name="Province"/>
 <type name="Engine"/>
 <type name="Combo"/>
   <buy name="Province">
      <condition>
         <left type="countCardsInDeck" attribute="Laboratory"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="6.0"/>
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="countCardsInSupply" attribute="Laboratory"/>
         <operator type="equalTo" />
         <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="Tactician">
      <condition>
         <left type="countCardsInDeck" attribute="Tactician"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Tactician">
      <condition>
         <left type="countCardsInDeck" attribute="Laboratory"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Tactician"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Laboratory"/>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Secret_Chamber">
      <condition>
         <left type="countCardsInDeck" attribute="Secret_Chamber"/>
         <operator type="smallerThan" />
         <right type="countCardsInDeck" attribute="Tactician"/>
      </condition>
   </buy>
</player>

Here are 2 Colony bots using the same cards from the board (we assume the other 7 cards are garbage):
Code: [Select]
<player name="Laboratory (Col)" author="Geronimoo" description="Simulation challenge: Province vs Colony. This bot tries to counter the Tactician-Province bot by buying all the Labs (over Golds).">
 <type name="Bot"/>
 <type name="UserCreated"/>
 <type name="BigMoney"/>
 <type name="TwoPlayer"/>
 <type name="Competitive"/>
 <type name="SingleCard"/>
 <type name="Colony"/>
   <buy name="Colony">
      <condition>
         <left type="countCardsInDeck" attribute="Platinum"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <buy name="Duchy">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="4.0"/>
      </condition>
   </buy>
   <buy name="Estate">
      <condition>
         <left type="countCardsInSupply" attribute="Colony"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Laboratory"/>
   <buy name="Gold"/>
   <buy name="Secret_Chamber">
      <condition>
         <left type="countCardsInDeck" attribute="Colony"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Silver"/>
</player>
Code: [Select]
<player name="Tactician/Secret Chamber(Col)" author="Anonymous" description="No description available">
 <type name="Bot"/>
 <type name="UserCreated"/>
 <type name="TwoPlayer"/>
 <type name="Competitive"/>
 <type name="Engine"/>
 <type name="Colony"/>
 <type name="Combo"/>
   <buy name="Colony">
      <condition>
         <left type="countCardsInDeck" attribute="Platinum"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Province">
      <condition>
         <left type="gainsNeededToEndGame"/>
         <operator type="smallerOrEqualThan" />
         <right type="constant" attribute="5.0"/>
      </condition>
   </buy>
   <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="2.0"/>
      </condition>
   </buy>
   <buy name="Platinum"/>
   <buy name="Tactician">
      <condition>
         <left type="countCardsInDeck" attribute="Tactician"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Tactician">
      <condition>
         <left type="countCardsInDeck" attribute="Laboratory"/>
         <operator type="greaterThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Tactician"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="2.0"/>
      </condition>
      <condition>
         <left type="countCardsInDeck" attribute="Platinum"/>
         <operator type="equalTo" />
         <right type="constant" attribute="0.0"/>
      </condition>
   </buy>
   <buy name="Laboratory"/>
   <buy name="Silver">
      <condition>
         <left type="countCardsInDeck" attribute="Silver"/>
         <operator type="smallerThan" />
         <right type="constant" attribute="1.0"/>
      </condition>
   </buy>
   <buy name="Secret_Chamber">
      <condition>
         <left type="countCardsInDeck" attribute="Secret_Chamber"/>
         <operator type="smallerThan" />
         <right type="countCardsInDeck" attribute="Tactician"/>
      </condition>
   </buy>
</player>
Logged
Pages: [1]
 

Page created in 0.141 seconds with 22 queries.