123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- use bitboard::Bitboard;
- use movegen::*;
- pub struct Game
- {
- pub pieces: [Bitboard; 12],
- en_passant: u8,
- }
- impl Default for Game {
- fn default () -> Game {
- Game {
- pieces: [0; 12],
- en_passant: 0,
- }
- }
- }
- impl Game {
- pub fn bitboard(&self, pt: PieceType, side: Side) -> Bitboard {
- if side == BLACK {
- self.pieces[(pt + 6) as usize]
- } else {
- self.pieces[pt as usize]
- }
- }
- pub fn pawns(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[0],
- BLACK => self.pieces[6],
- }
- }
- pub fn knights(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[1],
- BLACK => self.pieces[7],
- }
- }
- pub fn bishops(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[2],
- BLACK => self.pieces[8],
- }
- }
- pub fn rooks(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[3],
- BLACK => self.pieces[9],
- }
- }
- pub fn queens(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[4],
- BLACK => self.pieces[10],
- }
- }
- pub fn kings(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[5],
- BLACK => self.pieces[11],
- }
- }
- pub fn get_all_side(&self, side: Side) -> Bitboard {
- match side {
- WHITE => self.pieces[0] | self.pieces[1] | self.pieces[2] | self.pieces[3] |
- self.pieces[4] | self.pieces[5],
- BLACK => self.pieces[6] | self.pieces[7] | self.pieces[8] | self.pieces[9] |
- self.pieces[10] | self.pieces[11]
- }
- }
- }
- pub fn search() {
- }
|