- user inputs height and width for the board
- handles invalid user inputs
- loop to replay the game with options to change or keep settings
- each of the two player slots can be played by AI or user input
- AI selection uses the minimax algorithm to pick a move
- win condition algorithm optimization
- additional scoring for the minimax algorithm
- graphic user interface