Dominion Strategy Forum

Please login or register.

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

Author Topic: Apothecary Golden Deck-Simulation help  (Read 6104 times)

0 Members and 1 Guest are viewing this topic.

O

  • Jester
  • *****
  • Offline Offline
  • Posts: 836
  • Respect: +605
    • View Profile
Apothecary Golden Deck-Simulation help
« on: June 09, 2012, 07:27:15 pm »
+4

The apothecary pseudo-golden deck is a combo which I always love to play. It's (from my experience) a highly variant deck that's the the second strongest province-based golden deck to play, behind ones set up by Chapel/Bishop. I find it a bit stronger than some of the better BM options (close to doublejack I think, though it would probably lose to doublejack due to jacks draw-to-x nature.

The main idea: have a deck consisting of 4-6 apothecaries, one province, one bishop, 7 coppers and a potion. Draw 7 coppers, bishop province using apothecaries, leaving 1-2 apothecaries on the bottom usually (apothecaries deck-reordering is crucial to this combo), for a result much like the golden deck. it has around, I don't know, an 85% rate of not failing in it's golden deck aspect for an entire game once it's set up with 5 apothecaries. For parity reasons/last turn bonus, you trash the potion and end with 2 provinces in deck.

I haven't really much ability to optimize this through solo play (as it involves bishop), so any help from people who know their way around simulators would be much appreciated?

1) Do you open Potion/-, Potion/Copper, Potion/Silver, or Bishop/Silver? (My guess: Potion/Silver)
2) You will often be stuck with dead turns early on. Do you buy a second potion ever? Is it worth bishopping a copper and buying it back for the 1VP (at the detriment of giving your opponent free trashing)?
3) How do you adapt this strategy based on whether or not your opponent has also bought a bishop?
4) Does *anything* other than a possible second potion help this strategy? (my guess: no)
Logged

DStu

  • Margrave
  • *****
  • Offline Offline
  • Posts: 2627
  • Respect: +1490
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #1 on: June 11, 2012, 03:56:45 am »
0

So if somebody wants to play around with it
Code: [Select]
{
  name: 'GoldenApo'
  requires: ['Apothecary', 'Bishop']
  author: 'DStu'
  gainPriority: (state, my) ->
    [
      "Apothecary" if my.countInDeck("Apothecary") < 4
      "Province"
      "Potion" if my.countInDeck("Potion") == 0
      "Bishop" if my.countInDeck("Bishop") == 0
      "Silver" if my.countInDeck("Silver") == 0
      "Potion" if my.countInDeck("Potion") <= 1
      "Apothecary"
    ]
   
  bishopTrashPriority: (state, my) ->
    [
        "Estate"
        "Silver"
        "Potion" if state.countInSupply("Province") <= 1
        "Province" if my.countInHand("Copper") >= 7
        "Potion" if my.countInDeck("Potion") > 1
    ]
 
 
 actionPriority: (state, my) ->
    [
        "Apothecary" if my.countInHand("Province") == 0 or my.countInHand("Copper") < 7 or my.countInHand("Bishop") == 0
        "Bishop" if my.countInHand("Province") > 0 or my.countInHand("Estate") > 0
        "Bishop" if my.countInHand("Copper") == 7 and (my.countInHand("Silver") > 0 or my.countInHand("Potion") > 0)
    ]
 
  #by default, disacrdPriority is also used to determine the order  of cards on top of the deck,
  #lowest prio first.  Simplest way to mess with this, but this will probably really fail against
  #discard attacks.
  discardPriority: (state, my) ->
    [
       "Silver"
       "Estate"
       "Apothecary"
       "Province"
       "Bishop"
       "Apothecary" if 2 - my.countInHand("Province") - my.countInHand("Bishop") <= my.countInHand("Apothecary")     
    ]
     
}
not optimized at all.
Logged

hamcannon

  • Herbalist
  • **
  • Offline Offline
  • Posts: 7
  • Respect: +2
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #2 on: August 28, 2012, 12:41:43 pm »
0

Throne Room + Scheme could help, but it's not going to be in enough games to matter. It'll always stay on top of your deck out of the way of your apothecaries, and it'll cantrip through without burning an apothecary. Well, just scheme works, but throne-scheme lets you add and play a terminal attack every turn. For Scheme, you'd always scheme a scheme back on top of your deck, and use it instead of apothecary when your last apothecary hits a non-copper non-potion.

In fact, Scheme is strictly better than not buying anything in the apothecary deck, since it cantrips and is never hit by apothecary's dig-for-copper/potion.

Warehouse might help through the golden period, though playing it is a bit tricky. There's two ways of using it - first, to draw province + bishop after you see them with an apothecary. Second, to set up your next turn by pitching all but one apothecary in hand and coppers (you play that last apothecary, grab the coppers, and keep the rest of the apothecaries ready to draw). It might also be able to work in a village + terminal attack.
Logged

eHalcyon

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 8689
  • Respect: +9187
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #3 on: August 28, 2012, 01:16:10 pm »
0

Well, just scheme works, but throne-scheme lets you add and play a terminal attack every turn.

How?  TR-Scheme lets you return two cards to the top.  Aren't you just going to put TR and Scheme back on top?  KC-Scheme is the combo that lets you keep itself and something else indefinitely.
Logged

razorborne

  • Bishop
  • ****
  • Offline Offline
  • Posts: 100
  • Respect: +8
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #4 on: August 28, 2012, 11:47:09 pm »
0

Well, just scheme works, but throne-scheme lets you add and play a terminal attack every turn.

How?  TR-Scheme lets you return two cards to the top.  Aren't you just going to put TR and Scheme back on top?  KC-Scheme is the combo that lets you keep itself and something else indefinitely.
it gives you +2 actions, which means you have an action to spare with which to play the attack. not sure this is what he meant though.
Logged

hamcannon

  • Herbalist
  • **
  • Offline Offline
  • Posts: 7
  • Respect: +2
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #5 on: August 29, 2012, 03:40:54 am »
0

It's exactly what I meant, eHalcyon. You use TR/scheme returning TR and scheme, then draw your deck using apothecaries and play your terminal attack and your bishop.
Logged

eHalcyon

  • Adventurer
  • ******
  • Offline Offline
  • Posts: 8689
  • Respect: +9187
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #6 on: August 29, 2012, 04:57:02 am »
0

It's exactly what I meant, eHalcyon. You use TR/scheme returning TR and scheme, then draw your deck using apothecaries and play your terminal attack and your bishop.

Well in that case, any village works just as well, no?  If you're drawing your deck anyway. :P
Logged

Sparafucile

  • Thief
  • ****
  • Offline Offline
  • Posts: 98
  • Respect: +153
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #7 on: October 01, 2014, 12:09:04 am »
+3

This looked like fun to try.  I have tried to answer part 1 using dominulator.   I will try other parts later perhaps :)

tl;dr.   Potion/nothing seems like the best opening.

All comparisons vs BigMoney.

potion/nothing = 90% win rate
Potion/copper = 83%
Potion/silver = 78.5%
Getting bishop/silver before potion = 62%

Some other interesting results:

Preferring bishop over 4 apothecaries = 87%

I.e. for the first 4 apothecaries, if you have to choose, buy the apothecary before the bishop.

The win % for the simulator is a couple % points higher when it favors placing apothecaries on the deck last (so they are drawn first)

Incidentally, trashing the potion near the end of the game is key to a strong finish.  When I neglected to trash the potion, the win rate was only 66%

Here's the code.  Attached is some pretty graphs:

Code: [Select]
class MyPlayerAction
            : PlayerAction
        {
            public MyPlayerAction()
                : base("ApothecaryBishop",
                    purchaseOrder: PurchaseOrder(),
                    actionOrder: ActionOrder(),
                    trashOrder: TrashOrder())
            {
            }

            public override Card GetCardFromRevealedCardsToTopDeck(GameState gameState, bool isOptional)
            {
                var result = gameState.Self.CardsBeingRevealed.FindCard(card => card != Cards.Apothecary);
               
                if (result != null) return result;
               
                return base.GetCardFromRevealedCardsToTopDeck(gameState, isOptional);
            }
        }

        private static ICardPicker PurchaseOrder()
        {
            return new CardPickByPriority(
                        CardAcceptance.For(Cards.Province),
                        CardAcceptance.For(Cards.Potion, 1),
                        CardAcceptance.For(Cards.Apothecary, 4),
                        CardAcceptance.For(Cards.Bishop, 1),
                        CardAcceptance.For(Cards.Apothecary),
                        CardAcceptance.For(Cards.Copper, 7));
        }

        private static ICardPicker ActionOrder()
        {
            return new CardPickByPriority(
                        CardAcceptance.For(Cards.Apothecary, ShouldPlayApothecary),
                        CardAcceptance.For(Cards.Bishop));
        }

        private static ICardPicker TrashOrder()
        {
            return new CardPickByPriority(
                        CardAcceptance.For(Cards.Curse),
                        CardAcceptance.For(Cards.Potion, ShouldTrashPotion),
                        CardAcceptance.For(Cards.Province, ShouldTrashProvince),
                        CardAcceptance.For(Cards.Estate, gameState => CountAllOwned(Cards.Estate, gameState) > 1 || ShouldTrashLastEstate(gameState)),
                        CardAcceptance.For(Cards.Bishop, gameState => CountAllOwned(Cards.Bishop, gameState) > 1));
        }

        private static bool ShouldTrashPotion(GameState gameState)
        {
            bool isSelfPlaying = gameState.CurrentContext.IsSelfPlaying(gameState);
            if (!isSelfPlaying)
                return false;

            if (gameState.Self.ExpectedCoinValueAtEndOfTurn >= 7 && CountOfPile(Cards.Province, gameState) <= 3)
                return true;

            return false;
        }

        private static bool ShouldTrashProvince(GameState gameState)
        {
            bool isSelfPlaying = gameState.CurrentContext.IsSelfPlaying(gameState);
            if (!isSelfPlaying)
                return false;

            if (gameState.Self.ExpectedCoinValueAtEndOfTurn >= 7)
                return true;

            return false;
        }

        private static bool ShouldTrashLastEstate(GameState gameState)
        {
            if (CountAllOwned(Cards.Province, gameState) > 0)
                return true;

            if (gameState.Self.ExpectedCoinValueAtEndOfTurn >= 7)
                return true;

            return false;
        }

        private static bool ShouldPlayApothecary(GameState gameState)
        {
            if (gameState.Self.CardsInDeckAndDiscard.Where(card => card != Cards.Apothecary).Any())
                return true;
            return false;
        }
« Last Edit: October 01, 2014, 07:34:19 pm by Sparafucile »
Logged

shark_bait

  • Saboteur
  • *****
  • Offline Offline
  • Posts: 1103
  • Shuffle iT Username: shark_bait
  • Luckyfin and Land of Hinter for iso aliases
  • Respect: +1868
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #8 on: October 01, 2014, 02:30:26 pm »
0

Did you implement a ppr rule?  With 2 provinces remaining you want to buy/trash gold so that you end the game on your turn. I'd imagine this would be quite significant.
Logged
Hello.  Name's Bruce.  It's all right.  I understand.  Why trust a shark, right?

Is quite curious - Who is the mystical "Celestial Chameleon"?

soulnet

  • Mountebank
  • *****
  • Offline Offline
  • Posts: 2142
  • Respect: +1751
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #9 on: October 01, 2014, 03:32:51 pm »
0

Did you implement a ppr rule?  With 2 provinces remaining you want to buy/trash gold so that you end the game on your turn. I'd imagine this would be quite significant.

Depending on the score and how well your next turn looks, you may even want to buy Duchy instead.

EDIT: BTW, which BM are you comparing to? BMU?
Logged

Sparafucile

  • Thief
  • ****
  • Offline Offline
  • Posts: 98
  • Respect: +153
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #10 on: October 01, 2014, 07:27:01 pm »
0

Did you implement a ppr rule?  With 2 provinces remaining you want to buy/trash gold so that you end the game on your turn. I'd imagine this would be quite significant.

The simulator does not have a PPR implemented - for any of the strategies.    I wonder how it affects the game when both players ignore the rule ;).    I may try to add the rule to see how it affects and report back
Logged

Sparafucile

  • Thief
  • ****
  • Offline Offline
  • Posts: 98
  • Respect: +153
    • View Profile
Re: Apothecary Golden Deck-Simulation help
« Reply #11 on: October 01, 2014, 07:30:17 pm »
0

EDIT: BTW, which BM are you comparing to? BMU?

Something similar to BMU from Dominator.   Just buying provinces without duchies isn't really interesting to compare against.
Logged
Pages: [1]
 

Page created in 0.143 seconds with 20 queries.