1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-05-01 09:13:08 +00:00

Normalize twice supported pawns

Align codying style to current conventions and move
formula for twice supported pawns to Pawns::init()
where it should be.

No functional change.
This commit is contained in:
Marco Costalba 2015-02-27 01:56:16 +08:00 committed by Gary Linscott
parent fce799294c
commit 8a2c4134a6

View file

@ -50,8 +50,8 @@ namespace {
{ S(20, 28), S(29, 31), S(33, 31), S(33, 31), { S(20, 28), S(29, 31), S(33, 31), S(33, 31),
S(33, 31), S(33, 31), S(29, 31), S(20, 28) } }; S(33, 31), S(33, 31), S(29, 31), S(20, 28) } };
// Connected pawn bonus by opposed, phalanx flags and rank // Connected pawn bonus by opposed, phalanx, twice supported and rank
Score Connected[2][2][RANK_NB]; Score Connected[2][2][2][RANK_NB];
// Levers bonus by rank // Levers bonus by rank
const Score Lever[RANK_NB] = { const Score Lever[RANK_NB] = {
@ -192,13 +192,8 @@ namespace {
if (backward) if (backward)
score -= Backward[opposed][f]; score -= Backward[opposed][f];
if (connected) { if (connected)
score += Connected[opposed][phalanx][relative_rank(Us, s)]; score += Connected[opposed][phalanx][more_than_one(supported)][relative_rank(Us, s)];
if (more_than_one(supported)) {
//apex bonus: pawn on s is supported twice
score += Connected[opposed][phalanx][relative_rank(Us, s)] / 2;
}
}
if (lever) if (lever)
score += Lever[relative_rank(Us, s)]; score += Lever[relative_rank(Us, s)];
@ -228,11 +223,12 @@ void init()
for (int opposed = 0; opposed <= 1; ++opposed) for (int opposed = 0; opposed <= 1; ++opposed)
for (int phalanx = 0; phalanx <= 1; ++phalanx) for (int phalanx = 0; phalanx <= 1; ++phalanx)
for (int apex = 0; apex <= 1; ++apex)
for (Rank r = RANK_2; r < RANK_8; ++r) for (Rank r = RANK_2; r < RANK_8; ++r)
{ {
int bonus = Seed[r] + (phalanx ? (Seed[r + 1] - Seed[r]) / 2 : 0); int v = (Seed[r] + (phalanx ? (Seed[r + 1] - Seed[r]) / 2 : 0)) >> opposed;
bonus >>= opposed; v += (apex ? v / 2 : 0);
Connected[opposed][phalanx][r] = make_score( 3 * bonus / 2, bonus); Connected[opposed][phalanx][apex][r] = make_score(3 * v / 2, v);
} }
} }