|
|
|
@ -1,4 +1,6 @@
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <array>
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
// Access with PieceType::ANY_FOLLOWING_OPTION
|
|
|
|
|
enum PieceType {
|
|
|
|
@ -26,21 +28,28 @@ const char CHESS_CHARS[13] = {
|
|
|
|
|
|
|
|
|
|
// This allows reference to DEFAULT_BOARD (or more likely, a copy of it.
|
|
|
|
|
enum Position{
|
|
|
|
|
A1, B1, C1, D1, E1, F1, G1, H1, A2, B2, C2, D2, E2, F2, G2, H2, A3, B3, C3, D3, E3, F3, G3, H3, A4, B4, C4, D4, E4, F4, G4, H4, A5, B5, C5, D5, E5, F5, G5, H5, A6, B6, C6, D6, E6, F6, G6, H6, A7, B7, C7, D7, E7, F7, G7, H7, A8, B8, C8, D8, E8, F8, G8, H8
|
|
|
|
|
A8, B8, C8, D8, E8, F8, G8, H8, A7, B7, C7, D7, E7, F7, G7, H7, A6, B6, C6, D6, E6, F6, G6, H6, A5, B5, C5, D5, E5, F5, G5, H5, A4, B4, C4, D4, E4, F4, G4, H4, A3, B3, C3, D3, E3, F3, G3, H3, A2, B2, C2, D2, E2, F2, G2, H2, A1, B1, C1, D1, E1, F1, G1, H1
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// This allows the printing of Position enum variables in the tests. It matches the variables to strings.
|
|
|
|
|
// Variable names are discarded at compile time to optimize.
|
|
|
|
|
// Access with POSITION_STRING[Position]
|
|
|
|
|
const std::vector<std::string> POSITION_STRING = {
|
|
|
|
|
"A8", "B8", "C8", "D8", "E8", "F8", "G8", "H8", "A7", "B7", "C7", "D7", "E7", "F7", "G7", "H7", "A6", "B6", "C6", "D6", "E6", "F6", "G6", "H6", "A5", "B5", "C5", "D5", "E5", "F5", "G5", "H5", "A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4", "A3", "B3", "C3", "D3", "E3", "F3", "G3", "H3", "A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2", "A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Access with normal ways of accessing an array.
|
|
|
|
|
// OR lie so DEFAULT_BOARD[Position::G1] would equal PieceType::W_KNIGHT
|
|
|
|
|
// TODO make function to convert x and y to board num, and vis versa.
|
|
|
|
|
const std::vector<PieceType> DEFAULT_BOARD = {
|
|
|
|
|
W_ROOK, W_KNIGHT, W_BISHOP, W_QUEEN, W_KING, W_BISHOP, W_KNIGHT, W_ROOK,
|
|
|
|
|
W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN,
|
|
|
|
|
const std::array<PieceType, 64> DEFAULT_BOARD = {
|
|
|
|
|
B_ROOK, B_KNIGHT, B_BISHOP, B_QUEEN, B_KING, B_BISHOP, B_KNIGHT, B_ROOK,
|
|
|
|
|
B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN,
|
|
|
|
|
NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,
|
|
|
|
|
NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,
|
|
|
|
|
NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,
|
|
|
|
|
NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,
|
|
|
|
|
B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN, B_PAWN,
|
|
|
|
|
B_ROOK, B_KNIGHT, B_BISHOP, B_QUEEN, B_KING, B_BISHOP, B_KNIGHT, B_ROOK
|
|
|
|
|
W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN, W_PAWN,
|
|
|
|
|
W_ROOK, W_KNIGHT, W_BISHOP, W_QUEEN, W_KING, W_BISHOP, W_KNIGHT, W_ROOK
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|