[]Enum myopic_brain::Piece

pub enum Piece {
    WP,
    WN,
    WB,
    WR,
    WQ,
    WK,
    BP,
    BN,
    BB,
    BR,
    BQ,
    BK,
}

Value type wrapping a single integer representing one of the 12 different pieces in a game of chess.

Variants

WP
WN
WB
WR
WQ
WK
BP
BN
BB
BR
BQ
BK

Implementations

impl Piece

pub fn all() -> impl Iterator<Item = Piece>

Create an iterator traversing over all pieces in order.

pub fn whites() -> impl Iterator<Item = Piece>

Create an iterator traversing over all white pieces in order.

pub fn blacks() -> impl Iterator<Item = Piece>

Create an iterator traversing over all black pieces in order.

pub fn king(side: Side) -> Piece

Returns the king which belongs to the given side.

pub fn queen(side: Side) -> Piece

Returns the queen which belongs to the given side.

pub fn rook(side: Side) -> Piece

Returns the rook belonging to the given side.

pub fn pawn(side: Side) -> Piece

Returns the pawn which belongs to the given side.

pub fn of(side: Side) -> impl Iterator<Item = Piece>

Returns a slice containing all pieces belonging to the given side.

pub fn side(self) -> Side

Returns the side that this piece belongs to.

pub fn is_pawn(self) -> bool

Checks whether this piece is either a white or black pawn.

pub fn is_knight(self) -> bool

Checks whether this piece is either a white or black knight.

pub fn control(
    self,
    loc: Square,
    whites: BitBoard,
    blacks: BitBoard
) -> BitBoard

Computes the control set for this piece given it's location and the locations of all the white and black pieces on the board.

pub fn empty_control(self, loc: Square) -> BitBoard

Computes the control set for this piece given it's location on an empty board.

pub fn moves(self, loc: Square, whites: BitBoard, blacks: BitBoard) -> BitBoard

Computes the set of legal moves for this piece given it's location and the locations of all the white and black pieces on the board. Note that this method does not take into account special restrictions for or due to the king, e.g. can't move in such a way to put the king into check.

Trait Implementations

impl Clone for Piece

impl Copy for Piece

impl Debug for Piece

impl Display for Piece

impl Eq for Piece

impl FromStr for Piece

type Err = Error

The associated error which can be returned from parsing.

impl Hash for Piece

impl Ord for Piece

impl PartialEq<Piece> for Piece

impl PartialOrd<Piece> for Piece

impl Reflectable for Piece

We reflect a piece to it's correspondent on the opposite side.

impl StructuralEq for Piece

impl StructuralPartialEq for Piece

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.