1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Smoother king safety

STC:

LLR: 4.03 (-2.94,2.94) [-1.50,4.50]
Total: 35707 W: 7352 L: 7106 D: 21249

LTC:

LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 24563 W: 4330 L: 4095 D: 16138

Bench: 8411409

Resolves #190
This commit is contained in:
Joona Kiiski 2015-01-03 20:34:20 +00:00 committed by Joona Kiiski
parent 9d1e2c0e76
commit c7332d5610

View file

@ -198,7 +198,7 @@ namespace {
// KingDanger[attackUnits] contains the actual king danger weighted // KingDanger[attackUnits] contains the actual king danger weighted
// scores, indexed by a calculated integer number. // scores, indexed by a calculated integer number.
Score KingDanger[128]; Score KingDanger[512];
// apply_weight() weighs score 's' by weight 'w' trying to prevent overflow // apply_weight() weighs score 's' by weight 'w' trying to prevent overflow
Score apply_weight(Score s, const Weight& w) { Score apply_weight(Score s, const Weight& w) {
@ -476,7 +476,7 @@ namespace {
// Finally, extract the king danger score from the KingDanger[] // Finally, extract the king danger score from the KingDanger[]
// array and subtract the score from evaluation. // array and subtract the score from evaluation.
score -= KingDanger[std::max(std::min(attackUnits / 4, 99), 0)]; score -= KingDanger[std::max(std::min(attackUnits, 399), 0)];
} }
if (Trace) if (Trace)
@ -891,13 +891,14 @@ namespace Eval {
void init() { void init() {
const double MaxSlope = 30; const double MaxSlope = 7.5;
const double Peak = 1280; const double Peak = 1280;
double t = 0.0;
for (int t = 0, i = 1; i < 100; ++i) for (int i = 1; i < 400; ++i)
{ {
t = int(std::min(Peak, std::min(0.4 * i * i, t + MaxSlope))); t = std::min(Peak, std::min(0.025 * i * i, t + MaxSlope));
KingDanger[i] = apply_weight(make_score(t, 0), Weights[KingSafety]); KingDanger[i] = apply_weight(make_score(int(t), 0), Weights[KingSafety]);
} }
} }