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); }
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;
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;
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;
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;
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); } }
public Bishop(ChessId id, int x, int y) : base(id, x, y) { }
public King(ChessId id, int x, int y) : base(id, x, y) { }
protected ChessPiece(ChessId id, int x, int y) { Id = id; X = x; Y = y; }
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;
public static bool IsKing(this ChessId id) => id == ChessId.king_white || id == ChessId.king_black;
public Queen(ChessId id, int x, int y) : base(id, x, y) { }
public Knight(ChessId id, int x, int y) : base(id, x, y) { }
public Rook(ChessId id, int x, int y) : base(id, x, y) { }
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;
public Pawn(ChessId id, int x, int y) : base(id, x, y) { }
public static int ToInt(this ChessId chessId) => (int)chessId;