Skip to content

Latest commit

 

History

History
46 lines (40 loc) · 2.1 KB

README.md

File metadata and controls

46 lines (40 loc) · 2.1 KB

Title

It does minimax search with alpha-beta pruning together with some other optimizations such as magic-move generation, null-move optimization and quiescence search. The board representation is based on bitboards. The engine isn't that good yet, although it's not easy to defeat it (: It's ELO lies around 1800.

Other engines and chess programming resources

  1. Chessprogramming Wiki.
  2. Tom Kerrigan's Simple Chess Program Source Code
  3. Stockfish

TO-DO List

  • Speed statistics
  • More efficient bug-free transposition table
  • Unit tests
  • Self-play script
  • New board move making and validity checking
  • Testing new board representation
  • Move generation
  • Testing move generation
  • Better Move ordering
  • Many more things I forgot to write...
  • ...
  • New Search optimizations
  • Getting Dratini's UCI protocol to work with xboard
  • Detailed analysis with pseudocode of other engines' search functions (Rodent III, Ethereal and Halogen)
  • Using cutechess to make Dratini vs. Dratini matches
  • Creating dir with docs and parallelized cutechess tournaments
  • Understand profiling and try to use it if it makes sense
  • Programming bench
  • Be able to play against Sungorus
  • Clone Sungorus eval function for benchmarking
  • Be able to benchmark in server
  • Test move picker
  • Speed up board class
  • Implement simpler (copied) search function
  • Implement move making and move validity checking benchmark
  • Implement perft and compare old versus new board functions versus Sungorus
  • Implement SEE Benchmark and improve SEE function speed
  • Implement changes in search function and test against previous version
  • Integrate NNUE code (only FEN probing) and test against previous version
  • Finish AVX2 implementation and try to use AVX512
  • Clean up unused code and macros

What does Dratini mean?