No description
Find a file
Eryn Wells d7f426697d [board, position] Implement Zobrist hashing
This change builds on several previous changes to implement Zobrist hashing of the
board. This hash can be updated incrementally as changes are made to the board.
In order to do that, various properties of the Board struct had to made internal.
In the setters and various mutating members of Board, the hash is updated as
state changes.

The entire hashing mechanism is optional. If no ZobristState is provided when the
Board is created, the hash is never computed.

Plumb the Zobrist state through Position as well so that clients of Position (the
ultimate interface for interacting with the chess engine) can provide global
state to the whole engine.

The explorer crate gives an example of how this works. Some global state is
computed during initialization and then passed to the Position when it's created.
2025-06-05 08:22:34 -07:00
bitboard [bitboard, board, core, moves] Implement SliderMoveGenerator 2025-05-26 17:41:43 -07:00
board [board, position] Implement Zobrist hashing 2025-06-05 08:22:34 -07:00
core [core] Random Number Generator 2025-06-02 15:44:38 -07:00
doc Move Notes and ChessPieces docs to a doc directory 2024-01-22 19:27:08 -08:00
explorer [board, position] Implement Zobrist hashing 2025-06-05 08:22:34 -07:00
moves [board, moves] Make Board::castling_rights and Board::en_passant_target private 2025-06-03 20:25:53 -07:00
position [board, position] Implement Zobrist hashing 2025-06-05 08:22:34 -07:00
.gitignore
Cargo.lock [board, position] Implement Zobrist hashing 2025-06-05 08:22:34 -07:00
Cargo.toml Empty board package 2024-04-25 09:32:27 -07:00
ChessFriend.code-workspace Visual Studio Code workspace 2024-02-11 10:22:33 -07:00
Makefile WIP 2025-05-08 17:37:59 -07:00