checkers
AutoCheckers.java
is a GUI that can run exprimental
tournaments to compare the ability of different AI players.
Checkerboard.java
represents a checkerboard. Key methods
include (but are not limited to):
getLastMove()
: Returns the last move played on this
Checkerboard.
gameOver()
: Returns true if the current player to
move has no legal moves.
getCurrentPlayer()
: Returns an integer designating
the player who is about to move.
playerWins()
: Returns true if the specified player
has won the game.
getNextBoards()
: Generates every possible successor
board given the current position.
numPiecesOf()
: Returns the number of pieces in play
for the specified player.
opponent()
: Returns an integer designating the
opponent of the specified player. (static method)
Checkers.java
is a GUI that allows a human to play
against either another human or a computer opponent. To move a checker,
click and drag it to the target location.
EvalFunc.java
is an interface that your board evaluation
functions will implement.
Searcher.java
is an abstract class that your search
algorithms will extend.
Move.java
describes a game move from one location to
another.
MoveScore.java
pairs a Move object with a value for
applying that move. It is the value returned from Searcher objects.
checkers.evaluators
is where you will place your board evaluation functions that implement the EvalFunc
interface. A dummy evaluation function that rates all positions equally (NoPreference.java
) is included as an example.
checkers.searchers
is where you will place your search algorithms that extend the Searcher
class. A dummy search algorithm that
picks a move at random (OnePlyShuffle.java
) is included as an
example.
Achievement | Points |
---|---|
Implement basic material evaluation function | 1 |
Implement NegaMax search | 4 |
Implement Alpha-Beta search | 5 |
Implement an improved evaluation function | 5 |
Implement two additional modifications to the search | 10 |
Experiments completed as described | 20 |
Paper describes each search strategy implemented, along with its rationale | 4 |
Paper discusses modifications to the board evaluation function, again with its rationale | 4 |
Paper includes a qualitative assessment about the quality of play | 5 |
Paper includes quantitative information about the time necessary for alpha-beta searches of varying depths | 4 |
Paper quantitatively assesses relative quality of board evaluation functions. | 4 |
Paper quantitatively assesses impact of the modifications to the search algorithm. | 4 |