mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 10:57:43 +00:00
Merge branch 'master' of https://github.com/nodchip/Stockfish into sf-nnue-nodchip
This commit is contained in:
+46
-2
@@ -131,6 +131,8 @@ enum Color {
|
||||
WHITE, BLACK, COLOR_NB = 2
|
||||
};
|
||||
|
||||
constexpr Color Colors[2] = { WHITE, BLACK };
|
||||
|
||||
enum CastlingRights {
|
||||
NO_CASTLING,
|
||||
WHITE_OO,
|
||||
@@ -187,7 +189,10 @@ enum Value : int {
|
||||
QueenValueMg = 2538, QueenValueEg = 2682,
|
||||
Tempo = 28,
|
||||
|
||||
MidgameLimit = 15258, EndgameLimit = 3915
|
||||
MidgameLimit = 15258, EndgameLimit = 3915,
|
||||
|
||||
// 評価関数の返す値の最大値(2**14ぐらいに収まっていて欲しいところだが..)
|
||||
VALUE_MAX_EVAL = 27000,
|
||||
};
|
||||
|
||||
enum PieceType {
|
||||
@@ -232,7 +237,8 @@ enum Square : int {
|
||||
SQ_A8, SQ_B8, SQ_C8, SQ_D8, SQ_E8, SQ_F8, SQ_G8, SQ_H8,
|
||||
SQ_NONE,
|
||||
|
||||
SQUARE_NB = 64
|
||||
SQUARE_ZERO = 0, SQUARE_NB = 64,
|
||||
SQUARE_NB_PLUS1 = SQUARE_NB + 1, // 玉がいない場合、SQUARE_NBに移動したものとして扱うため、配列をSQUARE_NB+1で確保しないといけないときがあるのでこの定数を用いる。
|
||||
};
|
||||
|
||||
enum Direction : int {
|
||||
@@ -455,6 +461,44 @@ constexpr bool is_ok(Move m) {
|
||||
return from_sq(m) != to_sq(m); // Catch MOVE_NULL and MOVE_NONE
|
||||
}
|
||||
|
||||
// 盤面を180°回したときの升目を返す
|
||||
constexpr Square Inv(Square sq) { return (Square)((SQUARE_NB - 1) - sq); }
|
||||
|
||||
// 盤面をミラーしたときの升目を返す
|
||||
constexpr Square Mir(Square sq) { return make_square(File(7 - (int)file_of(sq)), rank_of(sq)); }
|
||||
|
||||
#if defined(EVAL_NNUE) || defined(EVAL_LEARN)
|
||||
// --------------------
|
||||
// 駒箱
|
||||
// --------------------
|
||||
|
||||
// Positionクラスで用いる、駒リスト(どの駒がどこにあるのか)を管理するときの番号。
|
||||
enum PieceNumber : uint8_t
|
||||
{
|
||||
PIECE_NUMBER_PAWN = 0,
|
||||
PIECE_NUMBER_KNIGHT = 16,
|
||||
PIECE_NUMBER_BISHOP = 20,
|
||||
PIECE_NUMBER_ROOK = 24,
|
||||
PIECE_NUMBER_QUEEN = 28,
|
||||
PIECE_NUMBER_KING = 30,
|
||||
PIECE_NUMBER_WKING = 30,
|
||||
PIECE_NUMBER_BKING = 31, // 先手、後手の玉の番号が必要な場合はこっちを用いる
|
||||
PIECE_NUMBER_ZERO = 0,
|
||||
PIECE_NUMBER_NB = 32,
|
||||
};
|
||||
|
||||
inline PieceNumber& operator++(PieceNumber& d) { return d = PieceNumber(int8_t(d) + 1); }
|
||||
inline PieceNumber operator++(PieceNumber& d, int) {
|
||||
PieceNumber x = d;
|
||||
d = PieceNumber(int8_t(d) + 1);
|
||||
return x;
|
||||
}
|
||||
inline PieceNumber& operator--(PieceNumber& d) { return d = PieceNumber(int8_t(d) - 1); }
|
||||
|
||||
// PieceNumberの整合性の検査。assert用。
|
||||
constexpr bool is_ok(PieceNumber pn) { return pn < PIECE_NUMBER_NB; }
|
||||
#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN)
|
||||
|
||||
#endif // #ifndef TYPES_H_INCLUDED
|
||||
|
||||
#include "tune.h" // Global visibility to tuning setup
|
||||
|
||||
Reference in New Issue
Block a user