mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Re-add 'Cowardice' and 'Aggressiveness' UCI options
I have lost my bet with Jean-Paul, so now I re-add the two options...and I am glad of it :-) No functional change.
This commit is contained in:
parent
889922041b
commit
d3fe153fe6
3 changed files with 20 additions and 17 deletions
|
@ -24,6 +24,8 @@ Mobility (Endgame) = 100
|
|||
Passed Pawns (Middle Game) = 100
|
||||
Passed Pawns (Endgame) = 100
|
||||
Space = 100
|
||||
Aggressiveness = 100
|
||||
Cowardice = 100
|
||||
Min Split Depth = 4
|
||||
Max Threads per Split Point = 5
|
||||
Threads = 1
|
||||
|
|
|
@ -75,8 +75,8 @@ namespace {
|
|||
const int GrainSize = 8;
|
||||
|
||||
// Evaluation weights, initialized from UCI options
|
||||
enum { Mobility, PassedPawns, Space };
|
||||
Score Weights[3];
|
||||
enum { Mobility, PassedPawns, Space, KingDangerUs, KingDangerThem };
|
||||
Score Weights[6];
|
||||
|
||||
typedef Value V;
|
||||
#define S(mg, eg) make_score(mg, eg)
|
||||
|
@ -88,7 +88,7 @@ namespace {
|
|||
//
|
||||
// Values modified by Joona Kiiski
|
||||
const Score WeightsInternal[] = {
|
||||
S(252, 344), S(216, 266), S(46, 0)
|
||||
S(252, 344), S(216, 266), S(46, 0), S(247, 0), S(259, 0)
|
||||
};
|
||||
|
||||
// MobilityBonus[PieceType][attacked] contains mobility bonuses for middle and
|
||||
|
@ -197,10 +197,6 @@ namespace {
|
|||
// the strength of the enemy attack are added up into an integer, which
|
||||
// is used as an index to KingDangerTable[].
|
||||
//
|
||||
// King safety evaluation is asymmetrical and different for us (root color)
|
||||
// and for our opponent. These values are used to init KingDangerTable.
|
||||
const int KingDangerWeights[] = { 259, 247 };
|
||||
|
||||
// KingAttackWeights[PieceType] contains king attack weights by piece type
|
||||
const int KingAttackWeights[] = { 0, 0, 2, 2, 3, 5 };
|
||||
|
||||
|
@ -290,13 +286,16 @@ namespace Eval {
|
|||
Weights[Mobility] = weight_option("Mobility (Middle Game)", "Mobility (Endgame)", WeightsInternal[Mobility]);
|
||||
Weights[PassedPawns] = weight_option("Passed Pawns (Middle Game)", "Passed Pawns (Endgame)", WeightsInternal[PassedPawns]);
|
||||
Weights[Space] = weight_option("Space", "Space", WeightsInternal[Space]);
|
||||
Weights[KingDangerUs] = weight_option("Cowardice", "Cowardice", WeightsInternal[KingDangerUs]);
|
||||
Weights[KingDangerThem] = weight_option("Aggressiveness", "Aggressiveness", WeightsInternal[KingDangerThem]);
|
||||
|
||||
int KingDanger[] = { KingDangerWeights[0], KingDangerWeights[1] };
|
||||
|
||||
// If running in analysis mode, make sure we use symmetrical king safety.
|
||||
// We do so by replacing both KingDanger weights by their average.
|
||||
// King safety is asymmetrical. Our king danger level is weighted by
|
||||
// "Cowardice" UCI parameter, instead the opponent one by "Aggressiveness".
|
||||
// If running in analysis mode, make sure we use symmetrical king safety. We
|
||||
// do this by replacing both Weights[kingDangerUs] and Weights[kingDangerThem]
|
||||
// by their average.
|
||||
if (Options["UCI_AnalyseMode"])
|
||||
KingDanger[0] = KingDanger[1] = (KingDanger[0] + KingDanger[1]) / 2;
|
||||
Weights[KingDangerUs] = Weights[KingDangerThem] = (Weights[KingDangerUs] + Weights[KingDangerThem]) / 2;
|
||||
|
||||
const int MaxSlope = 30;
|
||||
const int Peak = 1280;
|
||||
|
@ -305,8 +304,8 @@ namespace Eval {
|
|||
{
|
||||
t = std::min(Peak, std::min(int(0.4 * i * i), t + MaxSlope));
|
||||
|
||||
KingDangerTable[0][i] = apply_weight(make_score(t, 0), make_score(KingDanger[0], 0));
|
||||
KingDangerTable[1][i] = apply_weight(make_score(t, 0), make_score(KingDanger[1], 0));
|
||||
KingDangerTable[1][i] = apply_weight(make_score(t, 0), Weights[KingDangerUs]);
|
||||
KingDangerTable[0][i] = apply_weight(make_score(t, 0), Weights[KingDangerThem]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -70,6 +70,8 @@ void init(OptionsMap& o) {
|
|||
o["Passed Pawns (Middle Game)"] = Option(100, 0, 200, on_eval);
|
||||
o["Passed Pawns (Endgame)"] = Option(100, 0, 200, on_eval);
|
||||
o["Space"] = Option(100, 0, 200, on_eval);
|
||||
o["Aggressiveness"] = Option(100, 0, 200, on_eval);
|
||||
o["Cowardice"] = Option(100, 0, 200, on_eval);
|
||||
o["Min Split Depth"] = Option(msd, 4, 12, on_threads);
|
||||
o["Max Threads per Split Point"] = Option(5, 4, 8, on_threads);
|
||||
o["Threads"] = Option(cpus, 1, MAX_THREADS, on_threads);
|
||||
|
|
Loading…
Add table
Reference in a new issue