This preview shows page 1. Sign up to view the full content.
Unformatted text preview: CMPSCI 383, Fall 2011
Due in class or in the main ofﬁce of the Computer Science building by 4:00 PM,
October 13, 2011
Problem 1: Exercise 4.1 on page 157
Problem 2: Exercise 4.10 on page 159
Problem 3: Exercise 4.12 on page 160
Problem 4: Exercise 5.6 on page 197
Problem 5: Exercise 5.7 on page 197
Problem 7: Exercise 5.16 on page 200
Problem 8: Exercise 5.21 on page 200
Programming Assignment: We have implemented MiniMax for the game of
Othello, and will provide you with source code to make two MiniMax players
play against each other. The source code can be found on the course website.
Modify StudentPlayer.java so that it uses AlphaBeta pruning. Next modify the
evaluation function public int heuristic(int board) to one that you expect to
perform better. Your modiﬁed evaluation function must at least:
• Right now, owning a square of the board gives a player +1 in the evaluation function, however some squares are better than others. Change the
evaluation function to reﬂect this.
• Be time-dependent. That is, the number of moves made so far should some
how inﬂuence the heuristic. You may use the total number of pieces played
as a measure of time.
Submit the following:
• A print out of your StudentPlayer.java, and any other classes you created.
Your code should be well commented.
• A comparison of the runtime of MiniMax and AlphaBeta for 3 different
depths (what depths work will be computer-dependent).
• Describe your new evaluation function.
• Run ten games of your agent with the new heuristic against the MiniMax
player with the original heuristic, both with the same depth, and report the
total number of games won by each agent. 1 ...
View Full Document