Chess Engine
C++ chess engine with movegen, bitboards, and Arduino-friendly docs
Loading...
Searching...
No Matches
defs.h File Reference
#include "stdlib.h"
#include "stdio.h"
#include "board/board_data.h"
Include dependency graph for defs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  S_MOVE
struct  S_MOVELIST
struct  S_HASHENTRY
struct  S_HASHTABLE
struct  S_UNDO
struct  S_BOARD
struct  S_SEARCHINFO
struct  S_OPTIONS

Macros

#define MAX_HASH   1024
#define ASSERT(n)
#define NAME   "Vice 1.1"
#define BRD_SQ_NUM   120
#define MAXGAMEMOVES   2048
#define MAXPOSITIONMOVES   256
#define MAXDEPTH   64
#define START_FEN   "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
#define INF_SCORE   30000
#define ISMATE   (INF_SCORE - MAXDEPTH)
#define FROMSQ(m)
#define TOSQ(m)
#define CAPTURED(m)
#define PROMOTED(m)
#define MFLAGEP   0x40000
#define MFLAGPS   0x80000
#define MFLAGCA   0x1000000
#define MFLAGCAP   0x7C000
#define MFLAGPROM   0xF00000
#define NOMOVE   0
#define FR2SQ(f, r)
#define SQ64(sq120)
#define SQ120(sq64)
#define CLRBIT(bb, sq)
#define SETBIT(bb, sq)
#define IsBQ(p)
#define IsRQ(p)
#define IsKn(p)
#define IsKi(p)
#define MIRROR64(sq)

Typedefs

typedef unsigned long long U64

Enumerations

enum  {
  EMPTY , wP , wN , wB ,
  wR , wQ , wK , bP ,
  bN , bB , bR , bQ ,
  bK
}
enum  {
  FILE_A , FILE_B , FILE_C , FILE_D ,
  FILE_E , FILE_F , FILE_G , FILE_H ,
  FILE_NONE
}
enum  {
  RANK_1 , RANK_2 , RANK_3 , RANK_4 ,
  RANK_5 , RANK_6 , RANK_7 , RANK_8 ,
  RANK_NONE
}
enum  { WHITE , BLACK , BOTH }
enum  { UCIMODE , XBOARDMODE , CONSOLEMODE }
enum  {
  A1 = 21 , B1 , C1 , D1 ,
  E1 , F1 , G1 , H1 ,
  A2 = 31 , B2 , C2 , D2 ,
  E2 , F2 , G2 , H2 ,
  A3 = 41 , B3 , C3 , D3 ,
  E3 , F3 , G3 , H3 ,
  A4 = 51 , B4 , C4 , D4 ,
  E4 , F4 , G4 , H4 ,
  A5 = 61 , B5 , C5 , D5 ,
  E5 , F5 , G5 , H5 ,
  A6 = 71 , B6 , C6 , D6 ,
  E6 , F6 , G6 , H6 ,
  A7 = 81 , B7 , C7 , D7 ,
  E7 , F7 , G7 , H7 ,
  A8 = 91 , B8 , C8 , D8 ,
  E8 , F8 , G8 , H8 ,
  NO_SQ , OFFBOARD
}
enum  { FALSE , TRUE }
enum  { WKCA = 1 , WQCA = 2 , BKCA = 4 , BQCA = 8 }
enum  { HFNONE , HFALPHA , HFBETA , HFEXACT }

Macro Definition Documentation

◆ ASSERT

◆ BRD_SQ_NUM

#define BRD_SQ_NUM   120

◆ CAPTURED

#define CAPTURED ( m)
Value:
(((m)>>14) & 0xF)

Definition at line 166 of file defs.h.

Referenced by AddCaptureMove(), makeMove(), and takeMove().

◆ CLRBIT

#define CLRBIT ( bb,
sq )
Value:
((bb) &= clearBitMask[(sq)])
U64 clearBitMask[64]
Definition setup.cpp:20

Definition at line 184 of file defs.h.

Referenced by ClearPiece(), and MovePiece().

◆ FR2SQ

#define FR2SQ ( f,
r )
Value:
( (21 + (f) ) + ( (r) * 10 ) )

Definition at line 181 of file defs.h.

Referenced by InitFilesrankIndex120(), initSquareIndexMaps(), loadFEN(), parseMoveString(), ParseSquare2(), printBitBoard(), and printBoardState().

◆ FROMSQ

#define FROMSQ ( m)

◆ INF_SCORE

#define INF_SCORE   30000

Definition at line 37 of file defs.h.

◆ IsBQ

#define IsBQ ( p)
Value:
bool isBishopQueen[13]

Definition at line 187 of file defs.h.

Referenced by isSquareAttacked(), moveToString(), and parseMoveString().

◆ IsKi

#define IsKi ( p)
Value:
(isKing[(p)])
bool isKing[13]

Definition at line 190 of file defs.h.

Referenced by isSquareAttacked().

◆ IsKn

#define IsKn ( p)
Value:
(isKnight[(p)])
bool isKnight[13]

Definition at line 189 of file defs.h.

Referenced by isSquareAttacked(), moveToString(), and parseMoveString().

◆ ISMATE

#define ISMATE   (INF_SCORE - MAXDEPTH)

Definition at line 38 of file defs.h.

◆ IsRQ

#define IsRQ ( p)
Value:
bool isRookQueen[13]

Definition at line 188 of file defs.h.

Referenced by isSquareAttacked(), moveToString(), and parseMoveString().

◆ MAX_HASH

#define MAX_HASH   1024

Definition at line 11 of file defs.h.

◆ MAXDEPTH

#define MAXDEPTH   64

Definition at line 33 of file defs.h.

Referenced by AddQuietMove(), makeMove(), makeNullMove(), takeMove(), and takeNullMove().

◆ MAXGAMEMOVES

#define MAXGAMEMOVES   2048

Definition at line 31 of file defs.h.

Referenced by makeMove(), makeNullMove(), takeMove(), and takeNullMove().

◆ MAXPOSITIONMOVES

#define MAXPOSITIONMOVES   256

Definition at line 32 of file defs.h.

Referenced by MoveListOk().

◆ MFLAGCA

#define MFLAGCA   0x1000000

Definition at line 171 of file defs.h.

Referenced by generateAllMoves(), makeMove(), and takeMove().

◆ MFLAGCAP

#define MFLAGCAP   0x7C000

Definition at line 173 of file defs.h.

◆ MFLAGEP

#define MFLAGEP   0x40000

Definition at line 169 of file defs.h.

Referenced by generateAllCaptures(), generateAllMoves(), makeMove(), and takeMove().

◆ MFLAGPROM

#define MFLAGPROM   0xF00000

Definition at line 174 of file defs.h.

◆ MFLAGPS

#define MFLAGPS   0x80000

Definition at line 170 of file defs.h.

Referenced by generateAllMoves(), and makeMove().

◆ MIRROR64

#define MIRROR64 ( sq)
Value:
(Mirror64[(sq)])
int Mirror64[64]
Square mirroring lookup from white's perspective.

Definition at line 192 of file defs.h.

◆ NAME

#define NAME   "Vice 1.1"

Definition at line 28 of file defs.h.

◆ NOMOVE

#define NOMOVE   0

Definition at line 176 of file defs.h.

Referenced by makeNullMove(), MatchDestinationMove(), and parseMoveString().

◆ PROMOTED

#define PROMOTED ( m)
Value:
(((m)>>20) & 0xF)

Definition at line 167 of file defs.h.

Referenced by LegalMovesFrom(), makeMove(), MatchDestinationMove(), moveToString(), parseMoveString(), and takeMove().

◆ SETBIT

#define SETBIT ( bb,
sq )
Value:
((bb) |= setBitMask[(sq)])
U64 setBitMask[64]
Bit masks for setting and clearing individual bits on a bitboard.
Definition setup.cpp:19

Definition at line 185 of file defs.h.

Referenced by AddPiece(), MovePiece(), and updateListsMaterial().

◆ SQ120

#define SQ120 ( sq64)
Value:
(square64To120[(sq64)])
int square64To120[64]
Lookup table to convert 64-based board index to 120-based.
Definition setup.cpp:17

Definition at line 183 of file defs.h.

Referenced by initEvaluationMasks(), isBoardStateValid(), loadFEN(), mirrorBoardPosition(), and resetBoardState().

◆ SQ64

#define SQ64 ( sq120)
Value:
(square120To64[(sq120)])
int square120To64[BRD_SQ_NUM]
Lookup table to convert 120-based board index to 64-based.
Definition setup.cpp:16

Definition at line 182 of file defs.h.

Referenced by AddPiece(), ClearPiece(), mirrorBoardPosition(), MovePiece(), printBitBoard(), and updateListsMaterial().

◆ START_FEN

#define START_FEN   "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"

Definition at line 35 of file defs.h.

Referenced by main().

◆ TOSQ

#define TOSQ ( m)

Typedef Documentation

◆ U64

typedef unsigned long long U64

Definition at line 26 of file defs.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
FILE_A 
FILE_B 
FILE_C 
FILE_D 
FILE_E 
FILE_F 
FILE_G 
FILE_H 
FILE_NONE 

Definition at line 41 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
WKCA 
WQCA 
BKCA 
BQCA 

Definition at line 59 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
UCIMODE 
XBOARDMODE 
CONSOLEMODE 

Definition at line 45 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
HFNONE 
HFALPHA 
HFBETA 
HFEXACT 

Definition at line 71 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
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 
NO_SQ 
OFFBOARD 

Definition at line 46 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
WHITE 
BLACK 
BOTH 

Definition at line 44 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
FALSE 
TRUE 

Definition at line 57 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
EMPTY 
wP 
wN 
wB 
wR 
wQ 
wK 
bP 
bN 
bB 
bR 
bQ 
bK 

Definition at line 40 of file defs.h.

◆ anonymous enum

anonymous enum
Enumerator
RANK_1 
RANK_2 
RANK_3 
RANK_4 
RANK_5 
RANK_6 
RANK_7 
RANK_8 
RANK_NONE 

Definition at line 42 of file defs.h.