HearthSim — Card Draw

By | August 1, 2014

Hearthstone is a turn based card game. The more cards you (the player) has in your hand, the more options you have, and your chance of winning increases dramatically. It stands to reason, then, that any mechanics that draws extra cards from your deck should provide you with a sizable advantage. How big is this advantage?

Let’s use HearthSim to gauge the power of a card draw mechanic.

Card Draw AI Model

In HearthSim, the AI deals with a card draw event using the following procedure:

  1. Compute all moves and their associated board scores assuming that all card draw mechanics are disabled.
  2. For each move (node on the moves tree) that has a card draw, add the expected score of the drawn card to the node’s score.
  3. Start to actually play the best scoring sequence of moves.
  4. At any point when it encounters a card draw event, draw the card and pause.
  5. Starting from the paused board state (after the card draw), go back to step 1 and repeat. Repeat until the sequence of moves end.

The rational for the AI handling of card draw comes down to the fact that the AI is not allowed to cheat. The AI is not allowed to backtrack the sequence of moves based on the outcome of the card draw, so it has to make the decision to play that move based on some expectation of what will happen when the unknown card is drawn. In situations like this, it often pays to assume the worst outcome, which is the outcome that the card that it draws is completely useless. What is a completely useless card? A card that can never be used… a card that was not drawn. So, the AI simulates the remaining moves assuming that no card was drawn.

Simulation Setup

We will once again use the all-minion super-basic deck used in the previous study with a generic no-hero. This time, we will replace the Oasis Snapjaw with a Gnomish Inventor. Both cards are 4 mana cost, and the only difference is 3 toughness points vs a card draw battlecry. Player0 will play either the original deck or the Gnomish Inventor deck. Player1 will always play the original deck.


First, let’s look at the win rates.

Player0 Deck P0 Win P1 Win P0 Win % 95% Conf. Range
Oasis Snapjaw 23130 16870 57.83% 57.34% — 58.31%
Gnomish Inventor 26003 13997 65.01% 64.54% — 65.48%

So, the Gnomish Inventor deck is quite a bit stronger than the basic deck, at least in this setup.

Let’s look at the results in more detail to understand why the Gnomish Inventor deck does so much better. Below, we plot the average number of cards that each player has at the end of a given turn:

So, clearly, the Gnomish Inventor is helping to increase the number of cards that Player0 has in its hand past turn 4 (the earliest it can play a Gnomish Inventor is turn 3, but typically the AI will have used up [The Coin] by that turn, so it usually plays the Gnomish Inventor on turn 4). The consequence of the increased number of options provided by the bigger hand is quite striking; below, we plot the average number of minions on the player’s board at the end of a given turn:

The initial dip in the number of minions for Player0 past turn 4 is a consequence of the fact that a Gnomish Inventor is much easier to kill than a Oasis Snapjaw. It’s a 4 toughness vs 7 toughness thing. However, Player0 quickly catches up because it has an extra card that it can use. By turn 10, Player0 is almost half a minion ahead of Player1, and in the game of value trading, the slight minion advantage quickly magnifies into a serious advantage.


We see that in a minion heavy deck, card draw is a significant advantage. This partially (or wholly) explains the success of a Warlock zoo deck; Warlocks have an almost unlimited source of extra card draw in the form of its hero power. It’s an open question as to how this conclusion changes when we introduce spell cards into the deck, but my guess would be that card draws help just as much. I’ll leave that as a future study.

3 thoughts on “HearthSim — Card Draw

  1. JasonJAyalaP

    Thanks for this. I’ve been wondering about card draw in general, and, in particular, if cards like “arcane intellect” and “sprint” are as valuable as they seem. Sure you can change one card for two to four, but the card itself takes up a valuable spot in a 30 card deck. Then again, both players having no cards in hand makes for one of the most slow moving experiences in hearthstone. I hope you pursue this topic.

    Thanks for bring some science into hearthstone :)

  2. Phil


    I think this project is really awesome! I’ve not looked at the code yet, but I’ve read your blog posts, and I enjoy them. :)
    In the game it is advantageous to draw the card as early as possible during your turn if you are planning on drawing a card. In the worst case order doesn’t matter, but if you are lucky you draw a card that gives you a new, better line of play. This could be modeled by giving card draw a tiny negative value times actions taken this turn. Example: The AI has Gnomish Inventor and a Bloodfen Raptor on hand; 10 mana in tray and some minions on the board. The AI will choose to play Gnomish first, to maximize value. If it plays anything else first it’ll get a #takenActions * -0.01 penalty when playing Gnomish. By playing it first it gets zero penalty.

    It can be problematic to choose a smart penalty. We want it to be really small, so that it doesn’t choose to kill of Abomination _after_ we’ve played Gnomish. On the other hand; if the card drawn is likely to make a big impact on the line of play, it can be worth to take a small hit just to get the information earlier. For now it’s probably easiest to keep it really tiny.

    Best luck on your project!

    1. oyachai Post author


      You are right about the card draw effect play order, and the current AI implementation does take that into account. For card draw effects, the AI adds a small positive score for each remaining mana when evaluating the moves. All else being equal, the AI will play the card draw effect first (when it hasn’t use any mana yet). The additional score is a small multiple of the remaining mana though (1% of the remaining mana iirc), so it should treat cases like Abomination correctly, though haven’t done an exhaustive analysis of other cases.


Leave a Reply

Your email address will not be published. Required fields are marked *