Hearthstone Mulligan
- Project name: Hearthstone Mulligan
- Class: 4IT495 Simulation of Systems (WS 2014/2015)
- Author: Juraj Paluch
- Model type: Monte-Carlo Simulation
- Software used: PHP, Javascript, HTML, Microsoft Excel
Introduction
Hearthstone: Heroes of Warcraft is a free-to-play digital collectible card game that revolves around turn-based matches between two opponents. Players start the game with a substantial collection of 'basic' cards, but can gain rarer and more powerful cards through purchasing packs of cards, or as reward for competing in the Arena. Players can also disenchant unwanted cards, destroying them in exchange for arcane dust, a resource which can be used to create new cards. Card packs and entry to the Arena can be purchased with gold, an in-game currency rewarded for completing randomized daily quests and winning matches, or by using real money in the in-game store.
Each Hearthstone battle is a 1vs1 match between two opponents. Gameplay in Hearthstone is turn-based, with players taking turns to play cards from their hand, casting spells, equipping weapons, or summoning 'minions' to do battle on their behalf. Play may be between two human players, or one player and a computer-controlled opponent.
Each player is represented by their chosen 'hero', an important character from Warcraft lore. Each hero represents a particular class, determining the special cards and unique hero power available to them. Each hero has 30 Health - if that number is reduced to zero, the hero is destroyed, and the controlling player has lost the game. The available classes are Mage, Priest, Warlock, Paladin, Warrior, Druid, Hunter, Rogue and Shaman.
At the start of each turn, the player draws a new card from their deck - a collection of 30 cards selected before starting a game. Players can choose to play using one of several pre-assembled 'basic' decks or a deck of their own making. While most cards are available to heroes of any class, a substantial portion are limited to a specific class, giving each hero their own strengths and unique possibilities.
During their turn, each player can choose to play any of their cards, use their hero power, command their minions to attack targets, or attack directly using their hero, if they have a weapon equipped. However, which actions the player is able to take is partly determined by their mana, a resource pool which is refreshed at the start of each turn. Each player starts the game with 0 mana crystals, and gains one at the start of each turn up to a maximum of 10. Each card and hero power requires the player to expend a specific amount of mana in order to play it, strategically limiting each player's actions. In addition, the larger mana pools in later rounds allow players to play increasingly expensive cards, opening the game up to more powerful minions and abilities.
A match is concluded when one or both players has reached zero health, or chooses to concede.
Goal of this simulation is to simulate early stage of game called "Mulligan".
Problem definition
The match begins with a coin toss to determine who goes first, followed by both players drawing their starting hands: three cards for the coin toss winner, four for the other player. Player can mulligan (drop cards and get new cards from their deck) as many cards from his/her starting hands as he/she likes. Once both players accept their hand, the match begins. Mulligan is very important part of game as players decide what starting hand will they have. Its important to get cards with mana costs that can be played each turn, especially in early rounds - failure to play a card in first rounds often results in great disadvantage or straight loss.
Goal of this simulation thus will be to simulate this stage of game and to help player make a decision on how many cards should be kept during mulligan. First rounds will be simulated as well, to determine success of mulligan.