MoveHistory ClassDelta Engine Documentation
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
Inheritance Hierarchy

System Object
  Chess MoveHistory

Namespace: Chess
Assembly: Chess (in Chess.exe) Version: 1.1.1.0 (1.1.1)
Syntax

public sealed class MoveHistory

The MoveHistory type exposes the following members.

Constructors

  NameDescription
Public methodMoveHistory
Class constructor View code on GitHub
Top
Methods

  NameDescription
Public methodAddCurrentPackedBoard
Add the current packed board to the history View code on GitHub
Public methodClone
Creates a clone of the MoveHistory View code on GitHub
Public methodStatic memberComputePackedBoard
Compute the packed representation of a board View code on GitHub
Public methodGetCurrentBoardCount
Get the current packed board count View code on GitHub
Public methodLoadFromStream
Load from stream View code on GitHub
Public methodRemoveLastMove
Remove the last move from the history View code on GitHub
Public methodReset
Reset the move history View code on GitHub
Public methodSaveToStream
Save to stream View code on GitHub
Public methodStatic memberUnpackBoard
Unpack a packed board to a board View code on GitHub
Public methodUpdateCurrentPackedBoard(ChessBoard BoardStateMaskE)
Update the current board packing View code on GitHub
Public methodUpdateCurrentPackedBoard(Int32, ChessBoard PieceE)
Update the current board packing View code on GitHub
Top
See Also