22 releases

Uses new Rust 2021

new 0.5.93 May 21, 2022
0.5.92 May 18, 2022
0.5.91 Apr 24, 2022
0.5.81 Mar 22, 2022
0.5.3 Dec 28, 2021

#201 in Parser implementations

Download history 3/week @ 2022-01-29 16/week @ 2022-02-05 5/week @ 2022-02-12 7/week @ 2022-02-19 17/week @ 2022-03-05 47/week @ 2022-03-12 60/week @ 2022-03-19 4/week @ 2022-03-26 44/week @ 2022-04-02 146/week @ 2022-04-09 40/week @ 2022-04-16 66/week @ 2022-04-23 144/week @ 2022-04-30 141/week @ 2022-05-07 365/week @ 2022-05-14

716 downloads per month

MIT license

155KB
4.5K SLoC

shuuro

A library for implementing Shuuro application.

crates.io docs.rs

Features

  • Shuuro shop - buying pieces:
use shuuro::{Shop, PieceType, Piece, Color, Move};
let mut shop = Shop::default();
for i in 0..5 {
    let piece = Piece{piece_type: PieceType::Queen, color: Color::Black};
    shop.play(Move::Buy { piece });
}
assert_ne!(shop.to_sfen(Color::Blue), "kqqqq");
assert_eq!(shop.credit(Color::Blue), 800 - 110 * 3);
  • Shuuro deploy - placing pieces on board:
use shuuro::{Position, PieceType, Color, consts::{D1, F12}, Piece, init};
init();
let mut pos = Position::default();
pos.set_hand("KQQNNBkrrrqnnPPP");
 
let white_king = (Piece{ piece_type: PieceType::King, color: Color::White }, D1);
let black_king = (Piece{ piece_type: PieceType::King, color: Color::Black }, F12);
pos.place(white_king.0, white_king.1 );
pos.place(black_king.0, black_king.1);
assert_eq!(pos.generate_sfen(), "3K8/57/57/57/57/57/57/57/57/57/57/5k6 r q3r2n2QB2N3P 1");
  • Shuuro fight - play like normal chess:
use shuuro::*;
use shuuro::consts::*;
init();
let mut pos = Position::default();
pos.set_sfen("1K2RR6/PPP9/57/57/57/57/57/57/L05L05/pppppp6/1k64/57 r - 1");
let move_ = Move::Normal {from: B1, to: A1, promote: false};
pos.make_move(move_);
// Move can be made also with: pos.play("b1", "a1");
assert_eq!(pos.generate_sfen(), "K3RR6/PPP9/57/57/57/57/57/57/L05L05/pppppp6/1k55/57 b - 2");

Dependencies

~1–1.4MB
~29K SLoC