mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23:09 +00:00
Move piece values in piece.h / piece.cpp
Where they belong. Note that array PieceValueMidgame[] and PieceValueEndgame[] are now declared extern in the header and moved in piece.cpp so to avoid allocate the array each time the header is included ! No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
a952c6bc6d
commit
df4b106716
4 changed files with 56 additions and 53 deletions
|
@ -28,6 +28,33 @@
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
// Tables indexed by Piece
|
||||||
|
|
||||||
|
const Value PieceValueMidgame[17] = {
|
||||||
|
VALUE_ZERO,
|
||||||
|
PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
|
||||||
|
RookValueMidgame, QueenValueMidgame,
|
||||||
|
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO,
|
||||||
|
PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
|
||||||
|
RookValueMidgame, QueenValueMidgame,
|
||||||
|
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO
|
||||||
|
};
|
||||||
|
|
||||||
|
const Value PieceValueEndgame[17] = {
|
||||||
|
VALUE_ZERO,
|
||||||
|
PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
|
||||||
|
RookValueEndgame, QueenValueEndgame,
|
||||||
|
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO,
|
||||||
|
PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
|
||||||
|
RookValueEndgame, QueenValueEndgame,
|
||||||
|
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO
|
||||||
|
};
|
||||||
|
|
||||||
|
const int SlidingArray[18] = {
|
||||||
|
0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
////
|
////
|
||||||
//// Functions
|
//// Functions
|
||||||
////
|
////
|
||||||
|
|
26
src/piece.h
26
src/piece.h
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
#include "square.h"
|
#include "square.h"
|
||||||
|
#include "value.h"
|
||||||
|
|
||||||
|
|
||||||
////
|
////
|
||||||
|
@ -51,9 +52,26 @@ ENABLE_OPERATORS_ON(Piece);
|
||||||
//// Constants
|
//// Constants
|
||||||
////
|
////
|
||||||
|
|
||||||
const int SlidingArray[18] = {
|
/// Important: If the material values are changed, one must also
|
||||||
0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0
|
/// adjust the piece square tables, and the method game_phase() in the
|
||||||
};
|
/// Position class!
|
||||||
|
///
|
||||||
|
/// Values modified by Joona Kiiski
|
||||||
|
|
||||||
|
const Value PawnValueMidgame = Value(0x0C6);
|
||||||
|
const Value PawnValueEndgame = Value(0x102);
|
||||||
|
const Value KnightValueMidgame = Value(0x331);
|
||||||
|
const Value KnightValueEndgame = Value(0x34E);
|
||||||
|
const Value BishopValueMidgame = Value(0x344);
|
||||||
|
const Value BishopValueEndgame = Value(0x359);
|
||||||
|
const Value RookValueMidgame = Value(0x4F6);
|
||||||
|
const Value RookValueEndgame = Value(0x4FE);
|
||||||
|
const Value QueenValueMidgame = Value(0x9D9);
|
||||||
|
const Value QueenValueEndgame = Value(0x9FE);
|
||||||
|
|
||||||
|
extern const Value PieceValueMidgame[17];
|
||||||
|
extern const Value PieceValueEndgame[17];
|
||||||
|
extern const int SlidingArray[18];
|
||||||
|
|
||||||
|
|
||||||
////
|
////
|
||||||
|
@ -73,7 +91,7 @@ inline Piece piece_of_color_and_type(Color c, PieceType pt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int piece_is_slider(Piece p) {
|
inline int piece_is_slider(Piece p) {
|
||||||
return SlidingArray[int(p)];
|
return SlidingArray[p];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline SquareDelta pawn_push(Color c) {
|
inline SquareDelta pawn_push(Color c) {
|
||||||
|
|
|
@ -71,10 +71,16 @@ struct PieceLetters : std::map<char, Piece> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
////
|
////
|
||||||
//// Variables
|
//// Constants and variables
|
||||||
////
|
////
|
||||||
|
|
||||||
|
/// Bonus for having the side to move (modified by Joona Kiiski)
|
||||||
|
|
||||||
|
static const Score TempoValue = make_score(48, 22);
|
||||||
|
|
||||||
|
|
||||||
Key Position::zobrist[2][8][64];
|
Key Position::zobrist[2][8][64];
|
||||||
Key Position::zobEp[64];
|
Key Position::zobEp[64];
|
||||||
Key Position::zobCastle[16];
|
Key Position::zobCastle[16];
|
||||||
|
|
48
src/value.h
48
src/value.h
|
@ -99,54 +99,6 @@ inline Score operator/(Score s, int i) { return make_score(mg_value(s) / i, eg_v
|
||||||
inline Score operator*(Score s1, Score s2);
|
inline Score operator*(Score s1, Score s2);
|
||||||
|
|
||||||
|
|
||||||
////
|
|
||||||
//// Constants and variables
|
|
||||||
////
|
|
||||||
|
|
||||||
/// Piece values, middle game and endgame
|
|
||||||
|
|
||||||
/// Important: If the material values are changed, one must also
|
|
||||||
/// adjust the piece square tables, and the method game_phase() in the
|
|
||||||
/// Position class!
|
|
||||||
///
|
|
||||||
/// Values modified by Joona Kiiski
|
|
||||||
|
|
||||||
const Value PawnValueMidgame = Value(0x0C6);
|
|
||||||
const Value PawnValueEndgame = Value(0x102);
|
|
||||||
const Value KnightValueMidgame = Value(0x331);
|
|
||||||
const Value KnightValueEndgame = Value(0x34E);
|
|
||||||
const Value BishopValueMidgame = Value(0x344);
|
|
||||||
const Value BishopValueEndgame = Value(0x359);
|
|
||||||
const Value RookValueMidgame = Value(0x4F6);
|
|
||||||
const Value RookValueEndgame = Value(0x4FE);
|
|
||||||
const Value QueenValueMidgame = Value(0x9D9);
|
|
||||||
const Value QueenValueEndgame = Value(0x9FE);
|
|
||||||
|
|
||||||
const Value PieceValueMidgame[17] = {
|
|
||||||
VALUE_ZERO,
|
|
||||||
PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
|
|
||||||
RookValueMidgame, QueenValueMidgame,
|
|
||||||
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO,
|
|
||||||
PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
|
|
||||||
RookValueMidgame, QueenValueMidgame,
|
|
||||||
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO
|
|
||||||
};
|
|
||||||
|
|
||||||
const Value PieceValueEndgame[17] = {
|
|
||||||
VALUE_ZERO,
|
|
||||||
PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
|
|
||||||
RookValueEndgame, QueenValueEndgame,
|
|
||||||
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO,
|
|
||||||
PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
|
|
||||||
RookValueEndgame, QueenValueEndgame,
|
|
||||||
VALUE_ZERO, VALUE_ZERO, VALUE_ZERO
|
|
||||||
};
|
|
||||||
|
|
||||||
/// Bonus for having the side to move (modified by Joona Kiiski)
|
|
||||||
|
|
||||||
const Score TempoValue = make_score(48, 22);
|
|
||||||
|
|
||||||
|
|
||||||
////
|
////
|
||||||
//// Inline functions
|
//// Inline functions
|
||||||
////
|
////
|
||||||
|
|
Loading…
Add table
Reference in a new issue