Crates.io | chesspos |
lib.rs | chesspos |
version | 0.2.0 |
source | src |
created_at | 2023-09-21 08:48:11.599781 |
updated_at | 2024-09-20 21:55:23.361533 |
description | Basic structs for representing chess squares |
homepage | https://github.com/ijagberg/chesspos |
repository | https://github.com/ijagberg/chesspos |
max_upload_size | |
id | 979206 |
size | 43,883 |
Useful structs and constants for representing chess board positions.
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
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]);