
Computer Science 275.001
Interaction Programming
Fall 2006
Interactive Design
Programming Assignment #4
Due: Thursday, November 30, 2006
(Due in drop-box by 1:00 PM)
Your final interactive design assignment is to develop an interactive checkersgame that uses timer-based animation to illustrate both the user’s moves and
the computer-generated moves. The following features are required:
The user and the computer should be able to select game pieces and indicate
how to move them. Note that a regular piece can only advance in two ways
(forward diagonal left and forward diagonal right), but that a kinged piececan move in four possible directions (forward diagonal left, forward diagonal
right, backward diagonal left, and backward diagonal right). Selected pieces
should be visually distinct from unselected pieces.
A game piece is moved. Note that such moves can consist of mere diagonal
shifts, jumping an opponent’s piece (with the resultant removal of that piece
from the board), and advancing to the opponent’s end of the board
(whereupon the player’s piece is kinged). All of these moves should haveassociated animations.
When the computer makes a move an artificial intelligence algorithm is
needed to determine which piece to move. For this assignment, merely use a
straightforward highest-capture move, i.e., of all possible moves, the computer
takes one that yields the most jumps of its human opponent’s pieces; if no
move yields such a capture, then the computer takes a move that yields the
least number of its own pieces being captured on the next human move.
Users should be allowed to automate their moves at any point in the game,
and to turn off that automation whenever they wish. Essentially, have the
user’s moves utilize the same highest-capture approach as the computer does
whenever the user has activated the automated move feature.
The game will be rather confusing to the user if the computer’s moves (or
the user’s own automated moves) are not delayed for a moment or two to
simulate the concept that the next move is being contemplated. Therefore,
a timer-driven delay is needed for this purpose.
Whenever the user or the computer wins the game by capturing all of the
opponent’s pieces, there should be an elaborate visual display indicating
that the game has been won.
As usual, you
are strongly encouraged to bring early versions of your design to
the instructor for feedback. You may also feel
free to discuss your early design
ideas with your classmates, but remember that
showing your actual code to
anyone besides the instructor is considered academic
misconduct and will be
dealt with as such. Also, remember to fully document
your program, explaining
your design as needed.
Remember that
your entire project folder is due on your drop-box
by 1:00 PM on Thursday, November 30, 2006.