#board #chess-board #chess #position

chesspos

Basic structs for representing chess squares

3 unstable releases

0.2.0 Sep 20, 2024
0.1.1 Sep 22, 2023
0.1.0 Sep 21, 2023

#764 in Data structures

Download history 9/week @ 2024-07-25 3/week @ 2024-08-01 239/week @ 2024-09-19 12/week @ 2024-09-26 4/week @ 2024-10-03 4/week @ 2024-10-10

259 downloads per month
Used in bitboard64

MIT/Apache

31KB
591 lines

chesspos

Useful structs and constants for representing chess board positions.

Position

The main point of this library is the Position struct, which represents a position on a chess board.

use chesspos::prelude::*;

// each position is defined as a const,
// and can be referred to like this:
let a4 = A4;

// the Position struct has various methods
// useful for chess programming
assert_eq!(B4, a4.right().unwrap()); // get the position to the right of A4
assert!(a4.left().is_none()); // no position to the left of A4

Rank & File

There's also a Rank and a File enum, which is useful for traversal and iteration.

use chesspos::prelude::*;

assert_eq!(File::G.iter().collect(), vec![G1, G2, G3, G4, G5, G6, G7, G8]);
assert_eq!(Rank::Two.iter().collect(), vec![A2, B2, C2, D2, E2, F2, G2, H2]);

No runtime deps