Compare commits
2 commits
aa3b464bb8
...
b3222276ab
Author | SHA1 | Date | |
---|---|---|---|
Bruno BELANYI | b3222276ab | ||
Bruno BELANYI | 7c8dce8f49 |
|
@ -14,4 +14,14 @@ impl Iterator for BitboardIterator {
|
||||||
Some(crate::board::Square::from_index(lsb))
|
Some(crate::board::Square::from_index(lsb))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||||
|
let size = self.0.count_ones() as usize;
|
||||||
|
|
||||||
|
(size, Some(size))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ExactSizeIterator for BitboardIterator {}
|
||||||
|
|
||||||
|
impl std::iter::FusedIterator for BitboardIterator {}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use super::Rank;
|
use super::{Direction, Rank};
|
||||||
|
|
||||||
/// An enum representing the color of a player.
|
/// An enum representing the color of a player.
|
||||||
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
@ -65,6 +65,21 @@ impl Color {
|
||||||
Self::Black => Rank::Second,
|
Self::Black => Rank::Second,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Which way do pawns advance for this color.
|
||||||
|
#[inline(always)]
|
||||||
|
pub fn forward_direction(self) -> Direction {
|
||||||
|
match self {
|
||||||
|
Self::White => Direction::North,
|
||||||
|
Self::Black => Direction::South,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Which way do the opponent's pawns advance for this color.
|
||||||
|
#[inline(always)]
|
||||||
|
pub fn backward_direction(self) -> Direction {
|
||||||
|
(!self).forward_direction()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::ops::Not for Color {
|
impl std::ops::Not for Color {
|
||||||
|
|
Loading…
Reference in a new issue