CS 2 (Winter 2023) Project 08: Othello

In this project, you will build several AIs to play the board game Othello.


In this project, you will write several Othello bots and compete against other bots on the CS 2 Othello server. You will implement several (graph/tree) algorithms and be able to see a significant difference in the quality of the bots. Unlike in previous projects, you should feel free to use any and all Java data structures (since you’ve now implemented them all yourself).

Before attempting this project, click here to read the handout on the algorithms!

The project is designed so that you need minimal Othello knowledge, but we recommend you familiarize yourself with the basic rules just in case. We have written all of the Othello-specific code (evaluator, move generation, board, GUI, etc.); all you will be responsible for is implementing the game tree searching algorithms. You may, of course, improve the board/evaluator/etc. to your liking.

Always Forward, Never Backward

This project is NOT data structures project! Because the built-in Java Stacks and Queues are…deficient, we’ve chosen to still use your IDeques. You will need to copy those forward as usual, but you should feel free to remove these dependencies if you prefer to!

Provided Code