Moonfish is a user-friendly Python chess engine that achieves approximately 2000 Elo. It is designed to illustrate advanced programming techniques and parallel search algorithms. With an emphasis on code readability, Moonfish serves as a practical alternative to traditional C++ engines and includes a comprehensive suite of test positions.
Moonfish is an educational Python chess engine that serves as an excellent resource for understanding parallel search algorithms and modern chess programming techniques. It is designed with a focus on code clarity, making it an approachable alternative to traditional C++ engines. With an estimated Elo rating of around 2000 when competing against Lichess Stockfish bots, Moonfish defeats level 5 bots while facing challenges against level 6. Comprehensive test suites, including the renowned Bratko-Kopec tactical test positions, are included to demonstrate its capabilities.
Configure various engine parameters easily to tailor the operation:
| Parameter | Description | Default | Options |
|---|---|---|---|
--mode | Engine mode | uci | uci, api |
--algorithm | Search algorithm | alpha_beta | alpha_beta, lazy_smp, parallel_alpha_beta_layer_1 |
--depth | Search depth | 3 | 1-N |
--null-move | Enable null move pruning | False | True, False |
--null-mov-r | Null move reduction factor | 2 | 1-N |
--quiescence-search-depth | Max depth for quiescence search | 3 | 1-N |
--syzygy-path | Tablebase directory | None | Valid path |
Moonfish encourages contributions in almost all areas, including new search algorithms, improved evaluations, time constrained searches, and performance benchmarking across different hardware. For more information and to get involved, please refer to the contributing guidelines.
No comments yet.
Sign in to be the first to comment.