-> Development has been paused for sometime as the AI at its current state is not capable of handling big projects like this. But the development will soon be continued in a few months, once everything is settled up.
Welcome to Nexa, a basic chess engine crafted purely through AI-assisted development. This project serves as a demonstration of basic chess engine principles and the potential of AI in software creation.
The primary purpose of Nexa is to:
- Educational Demonstration: Illustrate the fundamental concepts involved in building a chess engine.
- AI-Assisted Development: Explore the capabilities of AI in generating and structuring code.
- Open-Source Contribution: Provide a foundation for further development and learning within the open-source community.
This engine is a starting point, intentionally simple to allow for easy understanding and modification. It is not intended for high-level competitive play in its current state.
- Basic board representation and initialization.
- Pseudo-legal move generation for all standard chess pieces (pawn, knight, bishop, rook, queen, king).
- Implementation of en passant and castling rules.
- Simple FEN position setup.
- Negamax search algorithm for move selection.
- UCI protocol support for interfacing with chess GUIs.
- Basic material-based evaluation function.
- The search algorithm is VERY BASIC and can be easily outmaneuvered.
- Alpha-beta pruning is not implemented, leading to slow search times.
- Check detection and checkmate/stalemate detection are incomplete.
- The evaluation function is simplistic (material only).
- FEN parsing is limited, ignoring castling rights and en passant fields.
- Pawn promotion auto promotes to queen.
-
Clone the repository:
git clone [repository URL]
-
Compile the source code using a C++ compiler (e.g., g++):
g++ main.cpp -o axiom
-
Run the executable:
./axiom
Axiom utilizes the Universal Chess Interface (UCI) protocol. To play against it, use a UCI-compatible chess GUI.
Example UCI commands:
uci: Initialize UCI communication.isready: Check if the engine is ready.ucinewgame: Start a new game.position startpos moves e2e4 e7e5: Set the position and make moves.go: Start the engine's search.quit: Exit the engine.
Nexa is licensed under the AGPL-3.0 license. This ensures that any modifications or distributions of this software must also be open source. See the LICENSE file for more details.
Contributions are welcome! Feel free to fork the repository, make improvements, and submit pull requests.
- Implement alpha-beta pruning for improved search efficiency.
- Enhance the evaluation function with positional and tactical considerations.
- Add full check detection and checkmate/stalemate detection.
- Improve FEN parsing.
- Add user selectable pawn promotion.
- Implement better search algorithms.
This project was developed by the devs with the assistance of AI, demonstrating its potential in software development.
