Exemple #1
0
        private void AssignFirstZobristKey()
        {
            var side = (int)board.Side == 1 ? 0 : 1;

            foreach (var piece in board.GetPieces())
            {
                zobristKey ^= pieces[side, piece.ToInt, piece.From.Rank, piece.From.File];
            }
            zobristKey ^= whiteCastle[(int)board.WhiteCastle];
            zobristKey ^= blackCastle[(int)board.BlackCastle];
            zobristKey ^= enPassant[board.EnPassantSquare.Rank, board.EnPassantSquare.File];
            zobristKey ^= this.side;
        }
Exemple #2
0
 public static int Evaluate(Board board)
 {
     return((int)board.Side * board.GetPieces().Sum(p => p.Evaluation()));
 }