chess-oxide

Crates.iochess-oxide
lib.rschess-oxide
version0.3.2
sourcesrc
created_at2023-01-07 15:18:57.491822
updated_at2024-11-01 19:36:19.073569
descriptionA chess engine library written in Rust, with a GUI bin to play against it.
homepage
repositoryhttps://github.com/GavinShox/chess-oxide
max_upload_size
id753098
size4,229,219
Gavin Shaughnessy (GavinShox)

documentation

README

Chess Oxide

A chess engine written in Rust.

Features

  • Move Generation: Efficient move generation for all pieces using a mailbox system.
  • Position Representation: Uses a 64-square array for position representation.
  • Board Representation: Data and functions required to run a chess game.
  • Zobrist Hashing: Implements Zobrist hashing for fast position comparison.
  • Perft Testing: Performance testing for move generation.
  • Error Handling: Error handling for user facing functions.
  • GUI Integration: Basic GUI for visualizing the board and moves using Slint.
  • FEN/PGN Implementations: Implementation of FEN and PGN standards for import/export of board states.
  • Engine: Implemented using a negamax algorithm implementing alpha/beta pruning.
  • Transposition Table: Implementation of a Transposition Table to use with engine.
  • Engine Debug Feature: Enabling 'debug_engine_logging' feature gives detailed breakdown of the nodes searched in engine.
  • Logging: Library uses 'log' crate and frontends use 'env_logger'.

Installation

To build and run the project, ensure you have Rust installed. Clone the repository and run:

cargo build [--bin] [--release]

Usage

To run the chess engine with the GUI:

cargo run --bin chess-gui [--release]

To run the basic performance test:

cargo run --bin chess-perft [--release]

Example using environment variable RUST_LOG for env_logger configuration:

RUST_LOG=debug cargo run --bin chess-gui --release

License

This project is licensed under the MPL-2.0 License.

Commit count: 295

cargo fmt