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. 9. Ramblings
    ❱
    1. 9.1. 2023-03-14 - Picking up again
    2. 9.2. 2023-03-15 - A new computer
  16. On idiomatic Rust
  17. Building Rustic
  18. FAQ
  19. About me
  20. Further study
  21. Credits

Creating the Rustic chess engine

Game State