chess.mojo icon indicating copy to clipboard operation
chess.mojo copied to clipboard

Chess.Mojo 🔥 - The first UCI chess engine in Mojo

Chess.Mojo 🔥

The first UCI chess engine in the Mojo language. (WORK IN PROGRESS.)

Chess.Mojo

Note

  • The current engine is not optimized for speed. It is just a proof of concept.
  • The source code was based on sunfish.

Roadmap

  • [x] Basic UCI support.
  • [x] Runable engine.
  • [x] Integrate simple GUI for testing.
  • [ ] Use native Mojo data structures for speed:
    • [ ] History.
    • [ ] Board hashing.
    • [ ] Move generation.
  • [ ] Integrate NNUE.
  • [ ] Multi-threading.
  • [ ] Add Mojo GUI.

Usage

  • Install Mojo.
  • Run mojo engine.mojo to start the engine.

Run with simple UI (In terminal)

  • Install Python >= 3.8.
  • Install required packages
pip install -r requirements.txt
  • Start the GUI:
chmod +x ./engine.mojo
python play -cmd ./engine.mojo

Note: The engine can be run with any UCI compatible GUI. The simple UI is just for quick testing.

Debugging

  • Build the engine with full debug information:
mojo build --debug-level full engine.mojo
  • Run the engine with mojo debug and use the console just like gdb or lldb:
mojo debug engine

References

  • This chess engine is based on sunfish.