Due Monday, June 4 at 3:00 PM via Blackboard.

Assignment

This assignment can be performed in pairs. The code for this assignment will be written by the team; however, each student must turn in their own homework write-up, so each team member is responsible for understanding all key pieces of the code and producing the example boards (question 2).

C++ Starter Code

The C++ starter code includes the following key functions:

Python Starter Code

The Python starter code includes the basic functionality of Othello. Each function in the code includes comment that describes its purpose, inputs, and outputs.

Bug-finding incentive

The first student to find a bug in the functionality of either codebase gets one point extra credit per bug (points will be split if partners find the bugs together).

What to turn in

  1. Extend your tic-tac-toe program to play Othello. Two key requirements: 1) your code must generate each move within a 20-second time limit, and 2) as with Tic-Tac-Toe, you must be able to play your game as either the starting (black) or second (white) player. These details will be important when we have the tournament on Monday, June 4. Turn in the following:
    1. (3 points) Your code
    2. (1 point) Describe who within your group performed which piece of the design/programming effort.
  2. Answer the following questions regarding your program. These answers can be brief (about two or three sentences for a-c).
    1. (1 point) What did you do to try to make your Othello player good?
    2. (1 point) Describe your evaluation function.
    3. (1 point) How did you alter your code to execute moves within the time limit?
    4. (3 points) Provide three example boards, one in which the white player has an advantage, one in which the black player has an advantage, and another in which it's fairly even. Give the evaluation function value for each case, and a one sentence explanation why the value makes sense.