Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Nexa - A Simple Chess Engine

Axiom Logo

License

-> 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.

Purpose

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.

Features

  • 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.

Limitations

  • 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.

Installation

  1. Clone the repository:

    git clone [repository URL]
  2. Compile the source code using a C++ compiler (e.g., g++):

    g++ main.cpp -o axiom
  3. Run the executable:

    ./axiom

Usage

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.

License

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

Contributions are welcome! Feel free to fork the repository, make improvements, and submit pull requests.

Future Enhancements

  • 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.

Acknowledgements

This project was developed by the devs with the assistance of AI, demonstrating its potential in software development.

About

Nexa is an experimental, opensource chess engine. Created as a learning project, it explores basic chess engine architecture and AI-assisted development. While not intended for competitive play, Axiom offers a clear and accessible foundation for understanding chess engine principles and serves as a platform for further exploration and improvement.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages