niklasrb/NDTicTacToe
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
This is supposed to be an implementation of an N^D TicTacToe Game. Meaning D dimensions and N rows in each dimension.
The playing field is implemented in the Grid class, which is a fancy wrapper for an std::vector of SpaceStates {X, O, empty}.
Access is controlled by the Position class, which converts indices from [1-N,..,1-N] (length D) to the index in the vector.
Since hardcoding the winning positions is quite difficult for N^D TicTacToe, the field is checked by going through all possible cornerpieces and checking the diagonals that originate from them to be of the same SpaceState (!= empty0
This is helped by the Direction class, which is used internally
To play there are abstract Player and Observer classes, to implement any kind of player (Human, Network, Heuristic AI, Neural Network AI,...)
Heuristic AI is a simple AI that goes along the game tree and evaluates using a meh heuristic.
NeuralNetworkAI is a simple AI that uses a Neural Network implementation to generate a move.