mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Move constants from piece.cpp to piece.h
Leave in piece.cpp only a couple of functions that need #include <cstring> Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
225d89c51b
commit
f0858cd229
2 changed files with 42 additions and 58 deletions
|
@ -27,48 +27,11 @@
|
|||
#include "piece.h"
|
||||
|
||||
|
||||
////
|
||||
//// Constants and variables
|
||||
////
|
||||
|
||||
const int SlidingArray[18] = {
|
||||
0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
const SquareDelta Directions[16][16] = {
|
||||
{DELTA_ZERO},
|
||||
{DELTA_NW, DELTA_NE, DELTA_ZERO},
|
||||
{DELTA_SSW, DELTA_SSE, DELTA_SWW, DELTA_SEE,
|
||||
DELTA_NWW, DELTA_NEE, DELTA_NNW, DELTA_NNE, DELTA_ZERO},
|
||||
{DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_ZERO},
|
||||
{DELTA_ZERO},
|
||||
{DELTA_SW, DELTA_SE, DELTA_ZERO},
|
||||
{DELTA_SSW, DELTA_SSE, DELTA_SWW, DELTA_SEE,
|
||||
DELTA_NWW, DELTA_NEE, DELTA_NNW, DELTA_NNE, DELTA_ZERO},
|
||||
{DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
};
|
||||
|
||||
const SquareDelta PawnPush[2] = {
|
||||
DELTA_N, DELTA_S
|
||||
};
|
||||
|
||||
|
||||
////
|
||||
//// Functions
|
||||
////
|
||||
|
||||
/// Translating piece types to/from English piece letters:
|
||||
/// Translating piece types to/from English piece letters
|
||||
|
||||
static const char PieceChars[] = " pnbrqk";
|
||||
|
||||
|
@ -77,19 +40,6 @@ char piece_type_to_char(PieceType pt, bool upcase) {
|
|||
}
|
||||
|
||||
PieceType piece_type_from_char(char c) {
|
||||
const char *ch = strchr(PieceChars, tolower(c));
|
||||
const char* ch = strchr(PieceChars, tolower(c));
|
||||
return ch? PieceType(ch - PieceChars) : NO_PIECE_TYPE;
|
||||
}
|
||||
|
||||
|
||||
/// piece_is_ok() and piece_type_is_ok(), for debugging:
|
||||
|
||||
bool piece_is_ok(Piece pc) {
|
||||
return
|
||||
piece_type_is_ok(type_of_piece(pc)) &&
|
||||
color_is_ok(color_of_piece(pc));
|
||||
}
|
||||
|
||||
bool piece_type_is_ok(PieceType pc) {
|
||||
return pc >= PAWN && pc <= KING;
|
||||
}
|
||||
|
|
46
src/piece.h
46
src/piece.h
|
@ -47,15 +47,43 @@ enum Piece {
|
|||
|
||||
|
||||
////
|
||||
//// Constants and variables
|
||||
//// Constants
|
||||
////
|
||||
|
||||
const PieceType PieceTypeMin = PAWN;
|
||||
const PieceType PieceTypeMax = KING;
|
||||
|
||||
extern const int SlidingArray[18];
|
||||
extern const SquareDelta Directions[16][16];
|
||||
extern const SquareDelta PawnPush[2];
|
||||
const int SlidingArray[18] = {
|
||||
0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
const SquareDelta Directions[16][16] = {
|
||||
{DELTA_ZERO},
|
||||
{DELTA_NW, DELTA_NE, DELTA_ZERO},
|
||||
{DELTA_SSW, DELTA_SSE, DELTA_SWW, DELTA_SEE,
|
||||
DELTA_NWW, DELTA_NEE, DELTA_NNW, DELTA_NNE, DELTA_ZERO},
|
||||
{DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_ZERO},
|
||||
{DELTA_ZERO},
|
||||
{DELTA_SW, DELTA_SE, DELTA_ZERO},
|
||||
{DELTA_SSW, DELTA_SSE, DELTA_SWW, DELTA_SEE,
|
||||
DELTA_NWW, DELTA_NEE, DELTA_NNW, DELTA_NNE, DELTA_ZERO},
|
||||
{DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
{DELTA_S, DELTA_E, DELTA_W, DELTA_N,
|
||||
DELTA_SE, DELTA_SW, DELTA_NE, DELTA_NW, DELTA_ZERO},
|
||||
};
|
||||
|
||||
const SquareDelta PawnPush[2] = {
|
||||
DELTA_N, DELTA_S
|
||||
};
|
||||
|
||||
|
||||
////
|
||||
|
@ -119,6 +147,14 @@ inline SquareDelta pawn_push(Color c) {
|
|||
return PawnPush[c];
|
||||
}
|
||||
|
||||
inline bool piece_type_is_ok(PieceType pc) {
|
||||
return pc >= PAWN && pc <= KING;
|
||||
}
|
||||
|
||||
inline bool piece_is_ok(Piece pc) {
|
||||
return piece_type_is_ok(type_of_piece(pc)) && color_is_ok(color_of_piece(pc));
|
||||
}
|
||||
|
||||
|
||||
////
|
||||
//// Prototypes
|
||||
|
@ -126,8 +162,6 @@ inline SquareDelta pawn_push(Color c) {
|
|||
|
||||
extern char piece_type_to_char(PieceType pt, bool upcase = false);
|
||||
extern PieceType piece_type_from_char(char c);
|
||||
extern bool piece_is_ok(Piece pc);
|
||||
extern bool piece_type_is_ok(PieceType pt);
|
||||
|
||||
|
||||
#endif // !defined(PIECE_H_INCLUDED)
|
||||
|
|
Loading…
Add table
Reference in a new issue