Online collectible card games or trading card games are complex to model due to the uniqueness
of each card and the specific modes of action such as attacking, enhancement and defensive cards.
To develop a challenging multi-user game with a computerized player, AI algorithms were designed
which simulate a human player’s actions through programming, mathematical and often heuristic techniques.
Moreover, since each trading card game has its own unique game play, developing a reusable gaming framework
enabled by object-oriented design patterns has more utility than developing a specific instance of a game.
Artificial Intelligence Algorithm
The design is based on the minimax algorithm which operates on the premise that the AI’s opponent is trying
to minimize whatever value for game state that the AI is trying to maximize. Minimax is extended by incorporating
chance-based child nodes on every non-deterministic move, and allowing a node depth greater than one for each turn
to allow for multi-move.
Players start with three cards randomly chosen from their deck of cards. On each turn, a player can place any number
of cards and/or make any number of attacks with any card on the field within the constraints laid out for that turn.
Players have a limited amount of resources(mana) to carry out attacks or place cards.
The field has a limited amount of slots for cards to be placed.
Your hand has a limited amount of cards it can hold.
You can only attack the other player's face if and only if there are no other cards on the field.
Each card has individual probabilities of hitting a target. As a result of cards defending themselves when attacked by another card, there are 4 possible outcomes.
Hit - Hit
Hit - Miss
Miss - Hit
Miss - Miss
While the AI only goes one layer deep in our application due to the sheer number of possibilities, it provides a very good challenge.
The card game we created values more direct play rather than long term holding out for specific cards which adds to the strength of this AI.
With more optimization and implementation of more sophisticated methods, it could be possible to reduce the total calculation time enough that
we could simulate up to two turns worth of probabilities in a realistic amount of time.