Struct shogi::square::Square
[−]
[src]
pub struct Square { /* fields omitted */ }
Represents a position of each cell in the game board.
Examples
use shogi::Square; let sq = Square::new(4, 4).unwrap(); assert_eq!("5e", sq.to_string());
Square
can be created by parsing a SFEN formatted string as well.
use shogi::Square; let sq = Square::from_sfen("5e").unwrap(); assert_eq!(4, sq.file()); assert_eq!(4, sq.rank());
Methods
impl Square
[src]
fn new(file: u8, rank: u8) -> Option<Square>
Creates a new instance of Square
.
file
can take a value from 0('1') to 8('9'), while rank
is from 0('a') to 9('i').
fn from_sfen(s: &str) -> Option<Square>
Creates a new instance of Square
from SFEN formatted string.
fn file(&self) -> u8
Returns a file of the square.
fn rank(&self) -> u8
Returns a rank of the square.
fn shift(&self, df: i8, dr: i8) -> Option<Square>
Returns a new Square
instance by moving the file and the rank values.
Examples
use shogi::square::consts::*; let sq = SQ_2B; let shifted = sq.shift(2, 3).unwrap(); assert_eq!(3, shifted.file()); assert_eq!(4, shifted.rank());
fn relative_rank(&self, c: Color) -> u8
Returns a relative rank as if the specified color is black.
Examples
use shogi::Color; use shogi::square::consts::*; let sq = SQ_1G; assert_eq!(6, sq.relative_rank(Color::Black)); assert_eq!(2, sq.relative_rank(Color::White));
fn in_promotion_zone(&self, c: Color) -> bool
Tests if the square is in a promotion zone.
Trait Implementations
impl Debug for Square
[src]
impl PartialEq for Square
[src]
fn eq(&self, __arg_0: &Square) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Square) -> bool
This method tests for !=
.
impl Eq for Square
[src]
impl Clone for Square
[src]
fn clone(&self) -> Square
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl Copy for Square
[src]
impl Hash for Square
[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)
Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
1.3.0
Feeds a slice of this type into the state provided.