File: eval_param.h

package info (click to toggle)
sjaakii 1.4.1-3.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,628 kB
  • sloc: ansic: 16,287; cpp: 4,543; makefile: 15
file content (102 lines) | stat: -rw-r--r-- 4,457 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*  Sjaak, a program for playing chess
 *  Copyright (C) 2011, 2014  Evert Glebbeek
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/* Integer constants are used within the evaluation itself, floating point
 * values are only used when initialising the evaluation tables at startup.
 */

#define GAME_PHASE_FLOOR      80

#define SAFE_MOB_WEIGHT        8       // Weight for safe mobility squares
#define MOB_SCALE             16       // Overall mobility weight
#define MOB_FORWARD_BLOCKED    5       // Penalty for forward mobility blocked by pieces

#define KS_ATTACK_WEIGHT    256
#define KS_SHELTER_WEIGHT    32
#define KING_SAFETY_WEIGHT  416        // Overall scale-factor for king safety
// Weight vs. STS score:
// 512 (3126)
// 256 (3044)
// 384 (3118)
// 448 (3117)
// 416 (3128)

#define PST_HOLDINGS          5        // PST value for a piece in holdings

#define PST_SPACE_MG          5        // PST value for empty squares on the own side of the board

#define PST_CENTRE_Q          1.0
#define PST_CENTRE_L          0.0
#define PST_ADVANCE_Q         0.0
#define PST_ADVANCE_L         0.0

#define PST_SCALE_PALACE      1.1      // Scale factor for PST in games with a palace

#define MOBILITY_SCALE_MG   128.0      // Scale factor for mobility, middle game
// Weight vs. STS score:
//  96 (8001, 923)
// 112 (8143, 932)
// 120 (8055, 932)
// 128 (8234, 940)
// 130 (8110, 922)
// 140 (8086, 926)
// 192 (8094, 931)
#define MOBILITY_SCALE_EG   128.0      // Scale factor for mobility, end game
// Weight vs. STS score:
// 120 (8114, 928)
// 128 (8234, 940)
// 140 (8007, 916)

#define PASSER_RANK_BASE      4
#define PASSER_RANK_SCALE   128

#define PAWN_ADVANCE_Q_EG    98.0      // Bonus for advancing pawns in the end game, quadratic term
#define PAWN_ADVANCE_L_EG     0.0      // Bonus for advancing pawns in the end game, linear term
#define PAWN_ADVANCE_Q_MG     0.0      // Bonus for advancing pawns in the middle game, quadratic term
#define PAWN_ADVANCE_L_MG     0.0      // Bonus for advancing pawns in the middle game, linear term

#define ROOK_BASE_PAWN_MG     5        // Bonus for a rook that attacks base of enemy pawn structure, middle game
#define ROOK_BASE_PAWN_EG    10        // Bonus for a rook that attacks base of enemy pawn structure, end game

#define WEAK_PAWN_BASE_MG     5        // Penalty for a weak pawn, middle game
#define WEAK_PAWN_BASE_EG    10        // Penalty for a weak pawn, end game

#define LOOSE_MINOR_PENALTY   5        // Penalty for an undefended minor on the enemy side of the board

#define PAIR_BONUS_MG         0.10     // Fraction of piece value
#define PAIR_BONUS_EG         0.15     // Fraction of piece value

#define SLIDER_OPENFILE_MG   10        // Slider bonus on open file, middle game
#define SLIDER_OPENFILE_EG   15        // Slider bonus on open file, end game

#define HOPPER_KINGFILE_MG   50        // Hopper on same file as enemy king, middle game
#define HOPPER_KINGFILE_EG    0        // Hopper on same file as enemy king, middle game

#define DEF_PROTECT           7        // Bonus for defensive pieces that protect eachother
#define DEF_SHIELD_FILE      10        // Bonus for defensive pieces on king file

#define FUTILITY_DEPTH        3

#define PAWN_SCALE_MG         0.8      // Fraction of nominal piece value
#define LAME_SCALE_MG         0.9      // Fraction of nominal piece value
#define LAME_SCALE_EG         1.1      // Fraction of nominal piece value
#define DEF_SCALE_MG          1.1      // Fraction of nominal piece value
#define DEF_SCALE_EG          0.8      // Fraction of nominal piece value
#define HOP_SCALE_EG          0.7      // Fraction of nominal piece value

#define TEMPO_DROP_WEIGHT     2        // Weighting of in-hand material for the tempo bonus
#define TEMPO_DROP_MAX        32767    // Absolute limit for the tempo bonus