The game state can be represented in a lot of different ways, but you will learn how to create extendible classes to use the high-level board AI algorithms for different circumstances.
Working with the game-tree class
Getting ready...
It is important to be clear on object-oriented programming, specifically on inheritance and polymorphism. This is because we'll be creating generic functions that can be applied to a number of board game decisions, and then we'll be writing specific sub-classes that inherit and further specify these functions.
How to do it...
We...