Title Page
Preface
About this book
About Rustic
Downloads
Prerequisites
1.
Introduction
❱
1.1.
Concept
1.2.
Design
1.3.
Roadmap
2.
Board Representation
❱
2.1.
Introduction
2.2.
Bitboards
2.3.
Piece List
2.4.
Zobrist Hashing
2.5.
Game State
2.6.
Game History
2.7.
Board struct
3.
Board Functionality
❱
3.1.
Introduction
3.2.
Handling FEN-strings
3.3.
Piece movement
3.4.
Detecting the bishop pair
3.5.
Detecting cannot force mate
3.6.
Detecting draws by FIDE rules
4.
The Move Generator
❱
4.1.
Introduction
5.
Search
❱
5.1.
Introduction
5.2.
Move Ordering
❱
5.2.1.
The reason
5.2.2.
How it works
5.2.3.
MVV_LVA
5.2.4.
Killer moves heuristic
5.2.5.
TT-move ordering
6.
Evaluation
❱
6.1.
Understanding evaluation
6.2.
Material counting
6.3.
Piece-Square Tables
6.4.
The evaluation function
6.5.
Tapering the evaluation
7.
Communication
❱
7.1.
Introduction
7.2.
Comparison
7.3.
How it works
7.4.
Design
7.5.
Implementing IComm
7.6.
Implementing commands
8.
Engine
❱
8.1.
Introduction
9.
Progress
❱
9.1.
Playing Strength
9.2.
SPRT testing
9.3.
SPRT results
9.4.
Changelog
10.
Appendix
❱
10.1.
The binary system
10.2.
Bitwise operations
On idiomatic Rust
Building Rustic
FAQ
About me
Further study
Credits
Light
Rust
Coal
Navy
Ayu
Creating the Rustic chess engine
Introduction