Welcome to the CChess project! Here you can find the implementation of a simple chess engine written in pure C. The engine is designed to handle board representation, move generation, and basic game logic. It is a work in progress and many features are not yet implemented.
- Board Representation: Efficiently represents the chess board using bitboards.
- Move Generation: Generates legal moves for all pieces, considering basic chess rules.
- FEN Parsing: Initializes the board from a FEN string.
To build the project, you need to have a C compiler installed. The following Examples assume gcc is installed. Clone the repository and compile the source files using the following commands:
git clone https://github.com/GitHappens2Me/CChess.git
cd CChess
# Compiling
gcc -O3 -o CChess ./source_files/main.c ./source_files/board.c ./source_files/inout.c ./source_files/move.c ./source_files/notation.c ./source_files/engine.c
# Running the Program
./CChess
Running the program starts a game between You (White) and the Engine (Black). You will see a simple visualization of the current board position in the output. Enter a Move by specifying the Starting Square and the End Square [e.g. e2e4]
Please note that this project is still under development. Here are some planned features and improvements:
- Game Ending Detection: Implement functions to detect all game-ending conditions. (Stalemate, 50 move Rule)
- Performance Optimization: Optimize the code for faster move generation and board evaluation.
- Unit Tests: Add comprehensive unit tests to ensure code quality and correctness.
Thank you for your interest in the Chess Engine project! If you have any questions or need assistance, feel free to open an issue or contact the maintainers.