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 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 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.