libscid 0.1.0
Chess applications made easy.
Loading...
Searching...
No Matches
board.h File Reference

Chess board constants, piece helpers, square geometry, and directions. More...

#include "scid/core/primitives.h"
#include <cassert>
+ Include dependency graph for board.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool scid::core::piece_IsKing (pieceT p)
 
bool scid::core::piece_IsSlider (pieceT p)
 
pieceT scid::core::piece_FromChar (int x)
 
leftDiagT scid::core::square_LeftDiag (squareT sq)
 
rightDiagT scid::core::square_RightDiag (squareT sq)
 
colorT scid::core::square_Color (squareT sq)
 
squareT scid::core::square_FlipFyle (squareT sq)
 
squareT scid::core::square_FlipRank (squareT sq)
 
squareT scid::core::square_FlipDiag (squareT sq)
 
uint scid::core::square_Distance (squareT from, squareT to)
 
squareT scid::core::square_NearestCorner (squareT sq)
 
bool scid::core::square_IsCornerSquare (squareT sq)
 
bool scid::core::square_IsEdgeSquare (squareT sq)
 
int scid::core::square_EdgeDistance (squareT sq)
 
bool scid::core::square_IsKnightHop (squareT from, squareT to)
 
char scid::core::square_FyleChar (squareT sq)
 
char scid::core::square_RankChar (squareT sq)
 
directionT scid::core::direction_Opposite (directionT d)
 
bool scid::core::direction_IsDiagonal (directionT dir)
 
int scid::core::direction_Delta (directionT dir)
 
bool scid::core::square_Adjacent (squareT from, squareT to)
 

Variables

const pieceT scid::core::WM = 16
 
const pieceT scid::core::BM = 17
 
const uint scid::core::MAX_PIECE_TYPES = 18
 
const pieceT scid::core::PIECE_FLIP [MAX_PIECE_TYPES]
 
const bool scid::core::PIECE_IS_SLIDER [8]
 
const uint scid::core::rankFyleDist [64]
 
const int scid::core::edgeDist [66]
 
const directionT scid::core::NULL_DIR = 0
 
const directionT scid::core::UP = 1
 
const directionT scid::core::DOWN = 2
 
const directionT scid::core::LEFT = 4
 
const directionT scid::core::RIGHT = 8
 
const directionT scid::core::UP_LEFT = (UP | LEFT)
 
const directionT scid::core::UP_RIGHT = (UP | RIGHT)
 
const directionT scid::core::DOWN_LEFT = (DOWN | LEFT)
 
const directionT scid::core::DOWN_RIGHT = (DOWN | RIGHT)
 
const directionT scid::core::dirOpposite [11]
 
const bool scid::core::dirIsDiagonal [11]
 
const int scid::core::dirDelta [11]
 
const pieceT scid::core::START_BOARD [66]
 
const colorT scid::core::BOARD_SQUARECOLOR [66]
 

Detailed Description

Chess board constants, piece helpers, square geometry, and directions.

Variable Documentation

◆ BOARD_SQUARECOLOR

const colorT scid::core::BOARD_SQUARECOLOR[66]
Initial value:
= {
BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE,
WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK,
BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE,
WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK,
BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE,
WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK,
BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE,
WHITE, BLACK, WHITE, BLACK, WHITE, BLACK, WHITE, BLACK,
NOCOLOR, NOCOLOR
}

◆ dirDelta

const int scid::core::dirDelta[11]
Initial value:
= {
0,
8,
-8,
0,
-1,
7,
-9,
0,
1,
9,
-7
}

◆ dirIsDiagonal

const bool scid::core::dirIsDiagonal[11]
Initial value:
= {
false,
false,
false,
false,
false,
true,
true,
false,
false,
true,
true
}

◆ dirOpposite

const directionT scid::core::dirOpposite[11]
Initial value:
= {
NULL_DIR,
DOWN,
UP,
NULL_DIR,
RIGHT,
DOWN_RIGHT,
UP_RIGHT,
NULL_DIR,
LEFT,
DOWN_LEFT,
UP_LEFT
}

◆ edgeDist

const int scid::core::edgeDist[66]
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 2, 2, 2, 2, 1, 0,
0, 1, 2, 3, 3, 2, 1, 0,
0, 1, 2, 3, 3, 2, 1, 0,
0, 1, 2, 2, 2, 2, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-1, -1
}

◆ PIECE_FLIP

const pieceT scid::core::PIECE_FLIP[MAX_PIECE_TYPES]
Initial value:
= {
END_OF_BOARD,
BK, BQ, BR, BB, BN, BP,
EMPTY, EMPTY,
WK, WQ, WR, WB, WN, WP,
EMPTY, BM, WM
}

◆ PIECE_IS_SLIDER

const bool scid::core::PIECE_IS_SLIDER[8]
Initial value:
= {
false,
false, true, true, true, false, false,
false,
}

◆ rankFyleDist

const uint scid::core::rankFyleDist[64]
Initial value:
= {
0, 1, 2, 3, 4, 5, 6, 7,
1, 0, 1, 2, 3, 4, 5, 6,
2, 1, 0, 1, 2, 3, 4, 5,
3, 2, 1, 0, 1, 2, 3, 4,
4, 3, 2, 1, 0, 1, 2, 3,
5, 4, 3, 2, 1, 0, 1, 2,
6, 5, 4, 3, 2, 1, 0, 1,
7, 6, 5, 4, 3, 2, 1, 0
}

◆ START_BOARD

const pieceT scid::core::START_BOARD[66]
Initial value:
= {
WR, WN, WB, WQ, WK, WB, WN, WR,
WP, WP, WP, WP, WP, WP, WP, WP,
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
BP, BP, BP, BP, BP, BP, BP, BP,
BR, BN, BB, BQ, BK, BB, BN, BR,
EMPTY,
END_OF_BOARD
}