Crate pleco [−] [src]
A blazingly fast Chess Library.
This package is separated into two parts. Firstly, the board representation & associated functions
(the current crate, pleco
), and secondly, the AI implementations using these chess foundations,
pleco_engine.
This crate requires nightly Rust to use.
Usage
This crate is on crates.io and can be
used by adding pleco
to the dependencies in your project's Cargo.toml
.
Safety
While generally a safe library, pleco was built with a focus of speed in mind. Usage of methods must be followed
carefully, as there are many possible ways to panic
unexpectedly. Methods with the ability to panic will be
documented as such.
Examples
You can create a Board
with the starting position like so:
use pleco::Board; let board = Board::default();
Generating a list of moves (Contained inside a MoveList
) can be done with:
let list = board.generate_moves();
Applying and undoing moves is simple:
let mut board = Board::default(); let list = board.generate_moves(); for mov in list.iter() { board.apply_move(*mov); println!("{}",board.get_fen()); board.undo_move(); }
Using fen strings is also supported:
let start_position = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; let board = Board::from_fen(start_position).unwrap();
Re-exports
pub use board::Board; |
pub use core::piece_move::BitMove; |
pub use core::piece_move::ScoringMove; |
pub use core::move_list::MoveList; |
pub use core::move_list::ScoringMoveList; |
pub use core::sq::SQ; |
pub use core::bitboard::BitBoard; |
pub use helper::Helper; |
pub use core::Player; |
pub use core::PieceType; |
pub use core::Rank; |
pub use core::File; |
Modules
board |
This module contains |
bot_prelude |
Easy importing of all available bots. |
bots |
Contains all of the currently completed standard bots/searchers/AIs. |
core |
Contains various components and structures supporting the creation of a chessboard. This
includes |
helper |
Statically initialized lookup tables. |
tools |
Miscellaneous tools for used for Searching. Most notably this module
contains the |