AI Gameplayer

Project Description

Two player turn-based games with perfect information (checkers, chess, go, reversi, connect 4, 9 man morris, etc.) have been played for thousands of years. In the past 30 years, the skill level of computer players has surpassed that of human players in all of these, to the point where a human will never consistently beat the best computer player in any of them ever again. The key tools in these algorithms are artificial neural networks and tree pruning algorithms.

Project Requirements

  • In consultation with CS faculty, pick a two-player game that you enjoy and that we all understand.
  • Implement the game in code to support players of different types (human and computer). This should include at least one AI player that plays with a simple strategy. The code should also maintain a record of gameplay for later analysis enable plug-in/conversion to a gui for human vs computer play.
  • Determine methodologies to evaluate board positions and implement at least one.
  • Implement a complex AI player for the game that uses an artificial neural network (ANN) along with one of minimax/alpha-beta pruning/A* to evaluate board positions.
  • Iteratively improve the complex AI player by using generated data by your game program and reinforcement learning to train the ANN.
  • Investigate different choices of hyperparameters (the number of layers in the ANN, the number of nodes in each layer in the ANN, a different activation function, the tree depth, etc.) and see what effect that has on your players and the needed training time.