1. Title Page
  2. Preface
  3. About this book
  4. About Rustic
  5. Downloads
  6. Prerequisites
  7. 1. Introduction
    ❱
    1. 1.1. Concept
    2. 1.2. Design
    3. 1.3. Roadmap
  8. 2. Board Representation
    ❱
    1. 2.1. Introduction
    2. 2.2. Bitboards
    3. 2.3. Reading FEN-strings
    4. 2.4. Zobrist Hashing
    5. 2.5. Game State
    6. 2.6. Game History
    7. 2.7. Detecting the bishop pair
    8. 2.8. Detecting cannot force mate
    9. 2.9. Detecting draws by FIDE rules
  9. 3. Search
    ❱
    1. 3.1. Introduction
    2. 3.2. Move Ordering
      ❱
      1. 3.2.1. The reason
      2. 3.2.2. How it works
      3. 3.2.3. MVV_LVA
      4. 3.2.4. Killer moves heuristic
      5. 3.2.5. TT-move ordering
  10. 4. Evaluation
    ❱
    1. 4.1. Understanding evaluation
    2. 4.2. Material counting
    3. 4.3. Piece-Square Tables
  11. 5. Communication
    ❱
    1. 5.1. Introduction
    2. 5.2. Comparison
    3. 5.3. How it works
    4. 5.4. Design
    5. 5.5. Implementing IComm
    6. 5.6. Implementing commands
  12. 6. Engine
    ❱
    1. 6.1. Introduction
  13. 7. Progress
    ❱
    1. 7.1. Playing Strength
    2. 7.2. SPRT testing
    3. 7.3. SPRT results
    4. 7.4. Changelog
  14. 8. Appendix
    ❱
    1. 8.1. The binary system
    2. 8.2. Bitwise operations
  15. On idiomatic Rust
  16. Building Rustic
  17. FAQ
  18. About me
  19. Further study
  20. Credits

Creating the Rustic chess engine

Evaluation