Version 0.95
CS 301-Zimmerman Programming Assignment #3 Spring 2009
Due: 11:59 PM April 15
50 points.
Objectives:
practice using several classes to solve a problem
understand the organization/implementation details of the minimax search algorithm
practice developing & implementing a static evaluation function
Create a java applet which will allow a single user to play the game Connect35 (described below)
against a computer (AI) opponent.
Differential credit levels are possible as indicated below. Note your interface must specify which
credit level you are attempting.
C-level.
• a graphical display of the connect35 board
• a new game button
• a status message ( who’s turn it is, who won, etc)
• use the minimax algorithm to select the computers move ( you may assume the human goes
first)
• Minimally interesting static Evaluation function
B-Level. ( C-level & )
• Allow multiple (at least two) levels of computer play, e.g. novice and expert. Suggestion:
create a JComboBox which will specify the level. The menu should only be
visible/effective in conjunction with a new game.
• Win/Loss display. The applet should keep track of user wins and losses during their session.
The current win/loss stats must be prominently displayed.
• Moderately well done static Evaluation function
A-level. ( B-level & )
• Allow the user to select who goes first. Suggestion: create a JComboBox which will specify
which player begins the game. The menu should only be visible/effective in conjunction
with a new game.
• Very well done static Evaluation function.
You are strongly encouraged to use the checkers program as an organizational model.
You must sublcass the c35Player class to implement your ai player. Name your subclass using the
convention: <Initials>35Player. For example a team consisting of Jimbo A Bean and Jannie Q
Hopper would name their class: JABJQH35Player. This object must encapsulate ALL of your ai
code. Note that the move function interface allows the program to select the recursion depth. A
sample driver program will be provided to allow you to verify that your program meets this
requirement.
Version 0.95
Static Evaluation Function.
You MUST provide complete documentation of your static evaluation function. This must include:
• an overview section/paragraph describing the overall approach. Place this in a comment
block before the function.
• inline/block comments within the function itself detailing how the code implements your
concept.
• You are also responsible for providing ‘reasonable’ documentation for all other code you
write.
Developing a static evaluation function should be considered an iterative exercise. You should
allow enough time in your schedule for trying out and evaluating different schemes. Very little
credit may be awarded without this documentation.
You are encouraged to work with a partner on this assignment (whether or not you worked with
someone else on program 2). If you decide to work with a partner, one of the partners must send an
Turn in:
Create a web page named prog3.html containing your applet and your names.
Each partner is responsible for uploading the webpage to their individual account.
Each group is responsible for creating a zip archive of a JCreator-ready project folder and
submitting this to the class turning folder on CS-Classes by the due date/time.