Andrew Socha
Software Development
«
Monte Carlo Tree Search and Machine Learning for Hearthstone
For my thesis, I attempted to combine
result. The challenge of this project
playing Hearthstone. The first idea was
the AI’s turn and begin predicting the
two concepts to create an AI capable of
deck prediction, anticipating what cards
the opponent is likely to have in their
deck based on what cards they have
already played. To accomplish this, the
AI analyzes a set of player-built decks
opponent’s turn. Because my AI predicts
what cards the opponent uses, it can try
to guess how the opponent will play in
response to the AI’s moves.
to see what cards are commonly played
These two concepts, deck prediction
card, the AI looks at this data to find other
well together. Unfortunately, Monte Carlo
together. When the AI’s opponent plays a
cards that are commonly paired with the
played card.
The second aspect, Monte Carlo Tree
Search, is how the AI decides which
moves to make. The AI simulates the
outcome of each of its possible moves
and continues simulating successive
moves, eventually stopping and scoring
the final result. Then, the AI simply has
to choose the move that led to the best
34
existed where these simulations finish
SOFTWARE DEVELOPMENT
and Monte Carlo, worked surprisingly
itself struggled in a game as complex as
Hearthstone. Still, my AI was able to win a
reasonable number of games against both
human and AI opponents.