/chess.mojo

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

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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

  • Basic UCI support.
  • Runable engine.
  • 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.