Classes
Class | Description | |
---|---|---|
Board | ||
BoardEvaluationBasic | Basic board evaluation functionView code on GitHub | |
BoardSquare | ||
Book | Handle the book opening.View code on GitHub | |
ChessBoard | Implementation of the chess board without any user interface.View code on GitHub | |
ChessException | Chess exceptionView code on GitHub | |
Game | ||
MoveHistory |
Maintains a move history to handle the fifty-move rule and the threefold repetition rule.
For the first rules, we just maintains one move count per series of move which doesn't eat a piece or move a pawn.
For the second rules, we use two strategies, a fast but unreliable one and a second slower but exact.
A. Use two 16KB table of counter address by table[Zobrist key of the board mod 16KB]. Collision can occurs so its
only a good indication that the board can be there more than 2 times.
B. Keep a compressed representation of the board in an array to be able to count the number of identical boards.
View code on GitHub | |
MovePosStack | Maintains the list of moves which has been done on a board. The undo moves are kept up to when a new move is done.View code on GitHub | |
Program |
Displays a number of colored moving logo sprites bouncing around.
View code on GitHub | |
SearchEngine | Base class for Search EngineView code on GitHub | |
SearchEngine SearchMode | Option for the searchView code on GitHub | |
SearchEngineAlphaBeta | Base class for Search EngineView code on GitHub | |
SearchEngineMinMax | Base class for Search EngineView code on GitHub | |
TransTable |
Implements a transposition table. Transposition table is used to cache already computed board
View code on GitHub | |
ZobristKey |
Zobrist key implementation.
View code on GitHub |
Structures
Structure | Description | |
---|---|---|
ChessBoard MovePosS | Move descriptionView code on GitHub | |
ChessBoard PosInfoS |
Position information. Positive value for white player, negative value for black player.
All these informations are computed before the last move to improve performance.
View code on GitHub | |
MoveHistory PackedBoard |
Packed representation of a board. Each long contains 16 pieces (2 per bytes)
View code on GitHub |
Interfaces
Interface | Description | |
---|---|---|
IBoardEvaluation | Implements a board evaluation methodsView code on GitHub | |
SearchEngine ITrace | Interface to implement to do a searchView code on GitHub |
Enumerations
Enumeration | Description | |
---|---|---|
ChessBoard BoardStateMaskE | Mask for board extra infoView code on GitHub | |
ChessBoard MoveResultE | Result of a moveView code on GitHub | |
ChessBoard MoveTypeE | Type of possible moveView code on GitHub | |
ChessBoard PieceE | Value of each piece on the board. Each piece is a combination of piece value and color (0 for white, 8 for black)View code on GitHub | |
ChessBoard PlayerColorE | Player color (black and white)View code on GitHub | |
ChessBoard RepeatResultE | Any repetition causing a draw?View code on GitHub | |
ChessBoard ValidPawnPromotionE | List of valid pawn promotionView code on GitHub | |
SearchEngine SearchMode OptionE | Search optionsView code on GitHub | |
SearchEngine SearchMode RandomModeE | Random modeView code on GitHub | |
SearchEngine SearchMode ThreadingModeE | Threading modeView code on GitHub | |
TransEntryTypeE | Type of transposition entryView code on GitHub |