mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +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"
|
#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
|
//// Functions
|
||||||
////
|
////
|
||||||
|
|
||||||
/// Translating piece types to/from English piece letters:
|
/// Translating piece types to/from English piece letters
|
||||||
|
|
||||||
static const char PieceChars[] = " pnbrqk";
|
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) {
|
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;
|
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 PieceTypeMin = PAWN;
|
||||||
const PieceType PieceTypeMax = KING;
|
const PieceType PieceTypeMax = KING;
|
||||||
|
|
||||||
extern const int SlidingArray[18];
|
const int SlidingArray[18] = {
|
||||||
extern const SquareDelta Directions[16][16];
|
0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0
|
||||||
extern const SquareDelta PawnPush[2];
|
};
|
||||||
|
|
||||||
|
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];
|
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
|
//// Prototypes
|
||||||
|
@ -126,8 +162,6 @@ inline SquareDelta pawn_push(Color c) {
|
||||||
|
|
||||||
extern char piece_type_to_char(PieceType pt, bool upcase = false);
|
extern char piece_type_to_char(PieceType pt, bool upcase = false);
|
||||||
extern PieceType piece_type_from_char(char c);
|
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)
|
#endif // !defined(PIECE_H_INCLUDED)
|
||||||
|
|
Loading…
Add table
Reference in a new issue