Esempio n. 1
0
 public static int Value(this ChessId id)
 {
     if (id.IsPawn())
     {
         return(1);
     }
     if (id.IsRook())
     {
         return(6);
     }
     if (id.IsKnight())
     {
         return(3);
     }
     if (id.IsBishop())
     {
         return(3);
     }
     if (id.IsQueen())
     {
         return(9);
     }
     if (id.IsKing())
     {
         return(10);
     }
     return(0);
 }
Esempio n. 2
0
 public static bool IsBlack(this ChessId id)
 => id == ChessId.king_black ||
 id == ChessId.queen_black ||
 id == ChessId.rook_black_of_king ||
 id == ChessId.rook_black_of_queen ||
 id == ChessId.knight_black_of_king ||
 id == ChessId.knight_black_of_queen ||
 id == ChessId.bishop_black_of_king ||
 id == ChessId.bishop_black_of_queen ||
 id == ChessId.pawn_black_of_king ||
 id == ChessId.pawn_black_of_queen ||
 id == ChessId.pawn_black_of_rook_of_king ||
 id == ChessId.pawn_black_of_rook_of_queen ||
 id == ChessId.pawn_black_of_knight_of_king ||
 id == ChessId.pawn_black_of_knight_of_queen ||
 id == ChessId.pawn_black_of_bishop_of_king ||
 id == ChessId.pawn_black_of_bishop_of_queen;
Esempio n. 3
0
 public static bool IsWhite(this ChessId id)
 => id == ChessId.king_white ||
 id == ChessId.queen_white ||
 id == ChessId.rook_white_of_king ||
 id == ChessId.rook_white_of_queen ||
 id == ChessId.knight_white_of_king ||
 id == ChessId.knight_white_of_queen ||
 id == ChessId.bishop_white_of_king ||
 id == ChessId.bishop_white_of_queen ||
 id == ChessId.pawn_white_of_king ||
 id == ChessId.pawn_white_of_queen ||
 id == ChessId.pawn_white_of_rook_of_king ||
 id == ChessId.pawn_white_of_rook_of_queen ||
 id == ChessId.pawn_white_of_knight_of_king ||
 id == ChessId.pawn_white_of_knight_of_queen ||
 id == ChessId.pawn_white_of_bishop_of_king ||
 id == ChessId.pawn_white_of_bishop_of_queen;
Esempio n. 4
0
 public static bool IsPawn(this ChessId id)
 => id == ChessId.pawn_white_of_king ||
 id == ChessId.pawn_white_of_queen ||
 id == ChessId.pawn_white_of_bishop_of_king ||
 id == ChessId.pawn_white_of_bishop_of_queen ||
 id == ChessId.pawn_white_of_rook_of_king ||
 id == ChessId.pawn_white_of_rook_of_queen ||
 id == ChessId.pawn_white_of_knight_of_king ||
 id == ChessId.pawn_white_of_knight_of_queen ||
 id == ChessId.pawn_black_of_king ||
 id == ChessId.pawn_black_of_queen ||
 id == ChessId.pawn_black_of_bishop_of_king ||
 id == ChessId.pawn_black_of_bishop_of_queen ||
 id == ChessId.pawn_black_of_rook_of_king ||
 id == ChessId.pawn_black_of_rook_of_queen ||
 id == ChessId.pawn_black_of_knight_of_king ||
 id == ChessId.pawn_black_of_knight_of_queen;
Esempio n. 5
0
 public static bool IsKnight(this ChessId id)
 => id == ChessId.knight_white_of_king ||
 id == ChessId.knight_white_of_queen ||
 id == ChessId.knight_black_of_king ||
 id == ChessId.knight_black_of_queen ||
 id == ChessId.knight_white_of_pawn_of_rook_of_queen ||
 id == ChessId.knight_white_of_pawn_of_knight_of_queen ||
 id == ChessId.knight_white_of_pawn_of_bishop_of_queen ||
 id == ChessId.knight_white_of_pawn_of_queen ||
 id == ChessId.knight_white_of_pawn_of_king ||
 id == ChessId.knight_white_of_pawn_of_bishop_of_king ||
 id == ChessId.knight_white_of_pawn_of_knight_of_king ||
 id == ChessId.knight_white_of_pawn_of_rook_of_king ||
 id == ChessId.knight_black_of_pawn_of_rook_of_queen ||
 id == ChessId.knight_black_of_pawn_of_knight_of_queen ||
 id == ChessId.knight_black_of_pawn_of_bishop_of_queen ||
 id == ChessId.knight_black_of_pawn_of_queen ||
 id == ChessId.knight_black_of_pawn_of_king ||
 id == ChessId.knight_black_of_pawn_of_bishop_of_king ||
 id == ChessId.knight_black_of_pawn_of_knight_of_king ||
 id == ChessId.knight_black_of_pawn_of_rook_of_king;
Esempio n. 6
0
        public static ChessId ReplaceByKnight(this ChessId id)
        {
            switch (id)
            {
            case ChessId.pawn_white_of_rook_of_queen: return(ChessId.knight_white_of_pawn_of_rook_of_queen);

            case ChessId.pawn_white_of_knight_of_queen: return(ChessId.knight_white_of_pawn_of_knight_of_queen);

            case ChessId.pawn_white_of_bishop_of_queen: return(ChessId.knight_white_of_pawn_of_bishop_of_queen);

            case ChessId.pawn_white_of_queen: return(ChessId.knight_white_of_pawn_of_queen);

            case ChessId.pawn_white_of_king: return(ChessId.knight_white_of_pawn_of_king);

            case ChessId.pawn_white_of_bishop_of_king: return(ChessId.knight_white_of_pawn_of_bishop_of_king);

            case ChessId.pawn_white_of_knight_of_king: return(ChessId.knight_white_of_pawn_of_knight_of_king);

            case ChessId.pawn_white_of_rook_of_king: return(ChessId.knight_white_of_pawn_of_rook_of_king);

            case ChessId.pawn_black_of_rook_of_queen: return(ChessId.knight_black_of_pawn_of_rook_of_queen);

            case ChessId.pawn_black_of_knight_of_queen: return(ChessId.knight_black_of_pawn_of_knight_of_queen);

            case ChessId.pawn_black_of_bishop_of_queen: return(ChessId.knight_black_of_pawn_of_bishop_of_queen);

            case ChessId.pawn_black_of_queen: return(ChessId.knight_black_of_pawn_of_queen);

            case ChessId.pawn_black_of_king: return(ChessId.knight_black_of_pawn_of_king);

            case ChessId.pawn_black_of_bishop_of_king: return(ChessId.knight_black_of_pawn_of_bishop_of_king);

            case ChessId.pawn_black_of_knight_of_king: return(ChessId.knight_black_of_pawn_of_knight_of_king);

            case ChessId.pawn_black_of_rook_of_king: return(ChessId.knight_black_of_pawn_of_rook_of_king);

            default: return(ChessId.invalid);
            }
        }
Esempio n. 7
0
 public Bishop(ChessId id, int x, int y) : base(id, x, y)
 {
 }
Esempio n. 8
0
 public King(ChessId id, int x, int y) : base(id, x, y)
 {
 }
Esempio n. 9
0
 protected ChessPiece(ChessId id, int x, int y)
 {
     Id = id;
     X  = x;
     Y  = y;
 }
Esempio n. 10
0
 public static bool IsBishop(this ChessId id)
 => id == ChessId.bishop_white_of_king ||
 id == ChessId.bishop_white_of_queen ||
 id == ChessId.bishop_black_of_king ||
 id == ChessId.bishop_black_of_queen;
Esempio n. 11
0
 public static bool IsKing(this ChessId id)
 => id == ChessId.king_white ||
 id == ChessId.king_black;
Esempio n. 12
0
 public Queen(ChessId id, int x, int y) : base(id, x, y)
 {
 }
Esempio n. 13
0
 public Knight(ChessId id, int x, int y) : base(id, x, y)
 {
 }
Esempio n. 14
0
 public Rook(ChessId id, int x, int y) : base(id, x, y)
 {
 }
Esempio n. 15
0
 public static bool IsRook(this ChessId id)
 => id == ChessId.rook_white_of_king ||
 id == ChessId.rook_white_of_queen ||
 id == ChessId.rook_black_of_king ||
 id == ChessId.rook_black_of_queen;
Esempio n. 16
0
 public Pawn(ChessId id, int x, int y) : base(id, x, y)
 {
 }
 public static int ToInt(this ChessId chessId) => (int)chessId;