Implements the minimax (negamax) algorithm for 2 player turn based zero-sum games. Using it for a game requires implementing 3 functions:
- Return a list of moves from a particular game state.
- Transition from one game state to another by applying a move. Determine if the game state is terminal (end of the game).
- Return a number representing the value of a game state. One player desires a larger value, the other a smaller value.
See the examples directory for more info.