All Classes and Interfaces
Class
Description
Alpha-Beta Search
Contains a set of constants that represent ANSI codes, which we use to
color the CLI display.
A bitboard is a means of representing a board such that each square
is represented by a single bit.
Represents a board state.
"C" for constants.
A class with static methods to display information and prompt users for
input via the CLI.
The flagship VI for this project.
This defines the interface that describes a heuristic method for evaluating
a board state.
A history table is used to track which moves have produced cutoffs in the
past and increments their score accordingly.
This class includes operations that model the board state as a graph, where
- vertices are board positions, and
- two vertices
The king-move definition of edges is the reason for the "K" in the name.
- vertices are board positions, and
- two vertices
v and u are adjacent if and only
if a king could move from one to the other in a single move.The king-move definition of edges is the reason for the "K" in the name.
This evaluation is identical to
QMinDist, except that this one claims
territory for each color if they would need fewer King moves to
reach it, rather than the traditional distance calculation using queen
moves.The main entrypoint for the program.
This class is used to handle moves on the board.
This class stores precomputed (abbreviated to "P" for convenience)
bitboards.
This class handles communication with the game server.
This class includes operations that model the board state as a graph, where
- vertices are board positions, and
- two vertices
The queen-move definition of edges is the reason for the "Q" in the name.
- vertices are board positions, and
- two vertices
v and u are adjacent if and only
if a queen could move from one to the other in a single move.The queen-move definition of edges is the reason for the "Q" in the name.
This evaluation is identical to
KMinDist, except that this one claims
territory for each color if they would need fewer Queen moves to
reach it.Defines the interface of a game tree search method.
Represents a complete game state.
This class is used to iterate over child states, generating them on demand.
This class should be extended if you want to impose a time constraint on
some process.
A class that contains a set of general utility functions used for
communicating with the game server.
This interface encloses the decision-making part of the program; i.e., one
that receives information about the board state and is capable of deciding
a move.
An implementation of the X term presented in a 2014 paper by
Runxing Zhong and Ke Zhou.