Crate littlewing[][src]

Expand description

Little Wing is a chess engine rated at 2050+ ELO, compatible with both UCI and XBoard protocols, with a nice CLI, and a documented library.

Example

use littlewing::chess::*;

// Byrne vs Fischer (1956)
let fen = "r3r1k1/pp3pbp/1Bp1b1p1/8/2BP4/Q1n2N2/P4PPP/3R1K1R b - - 0 18";

let mut game = Game::from_fen(fen).unwrap();

game.clock = Clock::new(1, 5000); // Search 1 move in 5 seconds

match game.search(1..15) { // Search from depth 1 to 15
    Some(m) => {
        assert_eq!(game.move_to_san(m), "Bxc4");

        game.make_move(m);
        game.history.push(m); // Keep track of the moves played

        println!("Engine played {}", m.to_lan());
    },
    None => {
        println!("Engine could not find a move to play");
    }
}

Modules

Bitboard type

Chess prelude

Clock controls

Color type

Evaluation algorithms

Forsyth–Edwards Notation support

Game engine

Portable Game Notation support

Piece type

Piece move generator

Piece move notation

Communication protocols

Search algorithms

Square type

Functions

Return Little Wing’s version