2 stable releases

1.0.1 Dec 8, 2024

#62 in Value formatting

Download history 105/week @ 2024-12-02 147/week @ 2024-12-09

252 downloads per month

MIT license

165KB
3.5K SLoC

Simple Chess

This package provides a comprehensive implementation of the game of chess. It includes all the necessary components to simulate a chess game, and offers functionalities for game setup, move validation, and game state evaluation. This package is suitable for both hobbyists and developers looking to integrate a chess engine into their applications.

Features

  • Full implementation of chess rules
  • Move generation and validation
  • Game state management
  • Support for custom board setups
  • Undo and redo moves
  • Serializing/Deserializing via Forsyth–Edwards Notation

Installation

To use this package in your project, add the following line to your Cargo.toml file:

[dependencies]
chess = "1.0.0"

Usage

Below is a basic usage example showcasing how to create a new chess game and make a move:

use chess::chess_game_state_analyzer::GameState;
use chess::ChessGame;

fn main() {
    let mut game = ChessGame::new();
    let mut state = game.get_game_state();
    match state {
        GameState::InProgress { legal_moves, turn } => {
            println!("play on, Its {:?}'s turn.", turn);
            state = game.make_move(legal_moves[0])
        },
        _ => ()
    };
    println!("{}", game.get_board());
}

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Dependencies