CS 301 Programming: Connect35 Java Applet with Minimax Algorithm and Evaluation, Assignments of Computer Science

Cs 301 programming assignment #3 for spring 2009, where students are required to create a java applet for the game connect35. The applet should include a graphical display of the board, a new game button, a status message, and use the minimax algorithm for computer moves. Optional features include multiple levels of computer play, win/loss display, and user selection of who goes first. Students must document their static evaluation function.

Typology: Assignments

Pre 2010

Uploaded on 08/19/2009

koofers-user-d86-1
koofers-user-d86-1 🇺🇸

9 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
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
email to the instructor [email protected] by 5pm on Monday, April 6.
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.

Partial preview of the text

Download CS 301 Programming: Connect35 Java Applet with Minimax Algorithm and Evaluation and more Assignments Computer Science in PDF only on Docsity!

Version 0. 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: 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. 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 email to the instructor [email protected] by 5pm on Monday, April 6. 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.