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 |