示例#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);
 }
示例#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;
示例#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;
示例#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;
示例#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;
示例#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);
            }
        }
示例#7
0
 public Bishop(ChessId id, int x, int y) : base(id, x, y)
 {
 }
示例#8
0
 public King(ChessId id, int x, int y) : base(id, x, y)
 {
 }
示例#9
0
 protected ChessPiece(ChessId id, int x, int y)
 {
     Id = id;
     X  = x;
     Y  = y;
 }
示例#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;
示例#11
0
 public static bool IsKing(this ChessId id)
 => id == ChessId.king_white ||
 id == ChessId.king_black;
示例#12
0
 public Queen(ChessId id, int x, int y) : base(id, x, y)
 {
 }
示例#13
0
 public Knight(ChessId id, int x, int y) : base(id, x, y)
 {
 }
示例#14
0
 public Rook(ChessId id, int x, int y) : base(id, x, y)
 {
 }
示例#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;
示例#16
0
 public Pawn(ChessId id, int x, int y) : base(id, x, y)
 {
 }
 public static int ToInt(this ChessId chessId) => (int)chessId;