I named the Github repo "RacketChess", but I should probably come up with a different name. There may be many Racket-based chess engines in the future, and it doesn't seem appropriate to squat on that name.
TT: Overhead of incrementally updating Zobrist key
Moderator: Ras
-
lojic
- Posts: 71
- Joined: Thu Jan 28, 2021 9:50 pm
- Full name: Brian Adkins
Re: TT: Overhead of incrementally updating Zobrist key
-
mvanthoor
- Posts: 1784
- Joined: Wed Jul 03, 2019 4:42 pm
- Location: Netherlands
- Full name: Marcel Vanthoor
Re: TT: Overhead of incrementally updating Zobrist key
PS: I found it helpful to make the engine completely self-sufficient.
Therefore it has a command-line option for basically everything. It can run any perft test, by running:
In the same way, it can analyze any position:
And do a full checkup of its move generator, make, unmake, zobrist hashing, and transposition table, by compiling it with EPD perft-suite support:
I started the same way as you did (with a console), but after I got the basics working, that got tiring quickly; so I implemented the UCI interface right after, and I keep the command line options in sync with new features such as the hash table. (In time, it'll also have a self-sufficient --texel option for tuning, etc... in the "extra" module.)
I like it if the engine can support all of its functionality without requiring extra files and/or scripts.
Therefore it has a command-line option for basically everything. It can run any perft test, by running:
Code: Select all
rustic -f "<fen>" -p <depth> -h <mb>
Code: Select all
rustic -f "<fen>" -p <depth> -h <mb> -q
....
go <enter>
Code: Select all
cargo build --release --features "extra"
rustic -f "<fen>" -e -h <mb>
I like it if the engine can support all of its functionality without requiring extra files and/or scripts.
-
mvanthoor
- Posts: 1784
- Joined: Wed Jul 03, 2019 4:42 pm
- Location: Netherlands
- Full name: Marcel Vanthoor
Re: TT: Overhead of incrementally updating Zobrist key
You can use something similar, like I did with Rustic. (There are several other projects called "Rustic", but they have nothing to do with chess. But you can find "Rustic" chess sets, which are mostly made to look old, or antique.)
If I'd write a Racket-based engine, I'ld probably call it Ratchet
Was a cool Transformer too, especially in Transformer's Prime.
The quote of your chess engine, when Ia piece gets captured, could be: "Darn, I needed that!" (Look up Ratchet in Transformer's Prime...)