Skip to content

Commit 35b3e28

Browse files
committed
Added Tempo. Officially push for V2.0.0
1 parent 30415f8 commit 35b3e28

File tree

2 files changed

+51
-41
lines changed

2 files changed

+51
-41
lines changed

src/eval/eval_info.rs

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,64 +7,66 @@ pub const BISHOP: Score = S!( 338, 339);
77
pub const ROOK: Score = S!( 518, 517);
88
pub const QUEEN: Score = S!(1006, 1005);
99

10+
pub const TEMPO: Score = S!( 18, 19);
11+
1012
//PSTs
1113
pub const P: [Score; 64] = [
1214
S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0),
13-
S!( -13, -1), S!( -1, 11), S!( -9, 3), S!( -18, -7), S!( -3, 2), S!( 15, 4), S!( 18, 19), S!( -5, -4),
14-
S!( -17, -6), S!( -5, 6), S!( -8, -9), S!( -14, 14), S!( 6, 0), S!( -3, -3), S!( 14, 8), S!( 1, 0),
15-
S!( -19, 7), S!( 5, 4), S!( -9, -6), S!( 9, 10), S!( 4, -8), S!( -1, -6), S!( -1, 8), S!( -9, -3),
15+
S!( -19, 5), S!( -1, 11), S!( -9, 3), S!( -18, -8), S!( -3, 2), S!( 14, 4), S!( 18, 19), S!( -5, -4),
16+
S!( -21, -1), S!( -4, 7), S!( -7, -8), S!( -14, 14), S!( 5, 0), S!( -3, -3), S!( 15, 9), S!( 2, 0),
17+
S!( -20, 9), S!( 6, 5), S!( -8, -5), S!( 9, 10), S!( 4, -8), S!( -1, -6), S!( 1, 10), S!( -8, -2),
1618
S!( 1, 24), S!( 16, 15), S!( 5, 14), S!( 8, -2), S!( 36, -7), S!( 14, 3), S!( 21, 23), S!( 16, 15),
1719
S!( 28, 95), S!( 69, 92), S!( 53, 76), S!( 54, 52), S!( 56, 53), S!( 47, 47), S!( 81, 84), S!( 64, 63),
18-
S!( 151, 146), S!( 156, 150), S!( 123, 123), S!( 91, 91), S!( 131, 130), S!( 79, 84), S!( 97, 121), S!( 98, 122),
20+
S!( 151, 146), S!( 156, 150), S!( 128, 128), S!( 108, 109), S!( 135, 134), S!( 79, 84), S!( 97, 121), S!( 98, 122),
1921
S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0)
2022
];
2123
pub const N: [Score; 64] = [
22-
S!( -87, -76), S!( -40, -40), S!( -54, -17), S!( -36, -31), S!( -39, -29), S!( -31, -29), S!( -43, -40), S!( -50, -50),
23-
S!( -40, -40), S!( -33, -22), S!( -15, -15), S!( -14, -6), S!( -15, -9), S!( 1, 0), S!( -21, -32), S!( -20, -22),
24-
S!( -38, -29), S!( -20, 1), S!( -5, 6), S!( 2, 1), S!( 15, 15), S!( -4, 3), S!( 1, 0), S!( -29, -28),
25-
S!( -22, -23), S!( 1, 0), S!( 15, 15), S!( 16, 20), S!( 16, 25), S!( 14, 16), S!( 19, 10), S!( -12, -15),
26-
S!( -10, -11), S!( -5, 4), S!( 27, 22), S!( 24, 24), S!( 22, 22), S!( 54, 30), S!( 14, 15), S!( 10, -1),
27-
S!( -29, -30), S!( 5, 5), S!( 38, 26), S!( 44, 20), S!( 47, 23), S!( 47, 23), S!( 19, 14), S!( -17, -20),
28-
S!( -32, -28), S!( 2, -4), S!( 12, 7), S!( 0, 0), S!( 10, 5), S!( 27, 12), S!( 0, -5), S!( -2, -25),
29-
S!( -50, -50), S!( -40, -40), S!( -30, -30), S!( -9, -12), S!( -13, -16), S!( -30, -30), S!( -38, -40), S!( -50, -50)
24+
S!( -87, -76), S!( -40, -40), S!( -52, -15), S!( -36, -31), S!( -38, -28), S!( -31, -29), S!( -45, -39), S!( -50, -50),
25+
S!( -39, -40), S!( -33, -22), S!( -15, -15), S!( -14, -6), S!( -17, -8), S!( 1, 0), S!( -21, -32), S!( -20, -22),
26+
S!( -38, -29), S!( -20, 1), S!( -5, 6), S!( 2, 1), S!( 15, 15), S!( -4, 3), S!( 0, 0), S!( -29, -28),
27+
S!( -22, -23), S!( 1, 0), S!( 15, 15), S!( 16, 20), S!( 17, 26), S!( 14, 16), S!( 19, 10), S!( -12, -15),
28+
S!( -9, -10), S!( -4, 5), S!( 27, 22), S!( 24, 24), S!( 22, 22), S!( 54, 30), S!( 14, 15), S!( 12, 1),
29+
S!( -29, -30), S!( 5, 5), S!( 39, 27), S!( 44, 20), S!( 48, 24), S!( 47, 23), S!( 19, 14), S!( -17, -20),
30+
S!( -28, -24), S!( 4, -5), S!( 14, 9), S!( 0, 0), S!( 10, 5), S!( 29, 14), S!( 0, -5), S!( -2, -25),
31+
S!( -50, -50), S!( -40, -40), S!( -30, -30), S!( -9, -12), S!( -10, -15), S!( -30, -30), S!( -38, -40), S!( -50, -50)
3032
];
3133
pub const B: [Score; 64] = [
32-
S!( -25, -32), S!( -10, -9), S!( -14, -14), S!( -23, -18), S!( -10, -10), S!( -13, -13), S!( 1, -16), S!( -20, -20),
33-
S!( 8, -39), S!( -5, -5), S!( 15, -9), S!( -8, -6), S!( 0, 3), S!( 10, -1), S!( 16, -7), S!( -11, -10),
34-
S!( 1, -16), S!( 2, 2), S!( 3, 7), S!( 13, -1), S!( 14, 9), S!( 4, 4), S!( -4, -2), S!( 0, -4),
35-
S!( -21, -17), S!( 5, 4), S!( 4, 5), S!( 26, 9), S!( 10, 10), S!( 9, 10), S!( -1, 0), S!( -15, -12),
36-
S!( -12, -12), S!( 3, 4), S!( 5, 5), S!( 37, 20), S!( 21, 17), S!( 10, 10), S!( 6, 6), S!( -2, 0),
37-
S!( -16, -8), S!( 9, 2), S!( 11, 6), S!( 25, 2), S!( 25, 8), S!( 5, 5), S!( 15, 15), S!( 28, 4),
38-
S!( -16, -15), S!( -1, 0), S!( 1, 0), S!( 0, 0), S!( 19, 4), S!( -7, -5), S!( -1, 0), S!( -29, -28),
39-
S!( -19, -20), S!( -10, -10), S!( -12, -14), S!( -10, -10), S!( -10, -10), S!( -10, -10), S!( -10, -10), S!( -20, -20)
34+
S!( -25, -32), S!( -7, -6), S!( -14, -14), S!( -21, -16), S!( -10, -10), S!( -13, -13), S!( 1, -16), S!( -19, -20),
35+
S!( 8, -39), S!( -5, -5), S!( 15, -9), S!( -8, -6), S!( 0, 1), S!( 10, -1), S!( 15, -8), S!( -11, -10),
36+
S!( 1, -16), S!( 2, 2), S!( 3, 7), S!( 13, -1), S!( 12, 9), S!( 4, 4), S!( -4, -2), S!( 0, -4),
37+
S!( -18, -14), S!( 5, 4), S!( 5, 5), S!( 26, 9), S!( 10, 10), S!( 9, 10), S!( -1, 0), S!( -14, -11),
38+
S!( -12, -12), S!( 3, 4), S!( 5, 5), S!( 37, 20), S!( 23, 19), S!( 10, 10), S!( 6, 6), S!( -2, 0),
39+
S!( -12, -4), S!( 9, 2), S!( 13, 8), S!( 27, 4), S!( 25, 8), S!( 5, 5), S!( 15, 15), S!( 28, 4),
40+
S!( -8, -8), S!( -1, 0), S!( 1, 0), S!( 0, 0), S!( 20, 5), S!( -7, -5), S!( -1, 0), S!( -29, -28),
41+
S!( -19, -20), S!( -10, -10), S!( -11, -13), S!( -10, -10), S!( -10, -10), S!( -10, -10), S!( -10, -10), S!( -20, -20)
4042
];
4143
pub const R: [Score; 64] = [
42-
S!( -16, -17), S!( -14, -8), S!( 2, -4), S!( 2, 5), S!( 2, 5), S!( -7, -6), S!( -8, -7), S!( -4, -4),
43-
S!( -34, -5), S!( -28, -17), S!( 1, 0), S!( -13, -3), S!( -15, -9), S!( -13, -11), S!( 3, -2), S!( -26, -23),
44-
S!( -5, -5), S!( -11, 1), S!( -16, 0), S!( -10, -9), S!( -11, -1), S!( -14, -9), S!( -1, 0), S!( -20, -20),
44+
S!( -18, -19), S!( -14, -8), S!( 2, -4), S!( -2, 5), S!( 1, 2), S!( -9, -8), S!( -7, -6), S!( -4, -4),
45+
S!( -34, -5), S!( -27, -16), S!( 1, 0), S!( -13, -3), S!( -15, -9), S!( -12, -10), S!( 3, -2), S!( -26, -23),
46+
S!( -5, -5), S!( -11, 1), S!( -16, 0), S!( -10, -9), S!( -11, -1), S!( -14, -9), S!( -2, -1), S!( -15, -26),
4547
S!( -34, 4), S!( -4, -1), S!( -12, 11), S!( 2, 2), S!( 7, 3), S!( 1, 0), S!( 4, 0), S!( 0, -3),
46-
S!( -4, -5), S!( 25, 5), S!( 7, 7), S!( 19, 18), S!( -1, 0), S!( -1, 0), S!( -1, 0), S!( 19, 2),
47-
S!( 2, -1), S!( 22, 21), S!( 25, 24), S!( 28, 23), S!( -1, 0), S!( -1, 0), S!( 0, 0), S!( 9, 4),
48-
S!( 15, 14), S!( 10, 10), S!( 10, 10), S!( 10, 10), S!( 28, 23), S!( 26, 21), S!( 14, 14), S!( 5, 5),
48+
S!( -4, -5), S!( 29, 5), S!( 7, 7), S!( 22, 20), S!( -1, 0), S!( -1, 0), S!( -1, 0), S!( 21, 4),
49+
S!( 2, -1), S!( 23, 22), S!( 26, 25), S!( 28, 23), S!( -1, 0), S!( -1, 0), S!( 0, 0), S!( 10, 5),
50+
S!( 16, 15), S!( 10, 10), S!( 10, 10), S!( 10, 10), S!( 28, 23), S!( 27, 22), S!( 14, 14), S!( 5, 5),
4951
S!( 21, 18), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0), S!( 0, 0)
5052
];
5153
pub const Q: [Score; 64] = [
52-
S!( -6, -5), S!( -33, -27), S!( -19, -18), S!( -5, -5), S!( -5, -5), S!( -10, -10), S!( -10, -10), S!( -18, -21),
53-
S!( -26, -25), S!( -11, -9), S!( 1, 0), S!( 1, 0), S!( -2, -1), S!( 4, -1), S!( -20, -16), S!( -9, -11),
54-
S!( -23, -19), S!( -7, -2), S!( 0, 6), S!( -5, 6), S!( 2, 7), S!( 3, 6), S!( 6, 4), S!( -2, 0),
54+
S!( -6, -5), S!( -31, -25), S!( -18, -17), S!( -6, -6), S!( -5, -5), S!( -10, -10), S!( -10, -10), S!( -18, -21),
55+
S!( -26, -25), S!( -11, -10), S!( 1, 0), S!( 1, 0), S!( -3, -2), S!( 4, -1), S!( -20, -16), S!( -9, -11),
56+
S!( -22, -18), S!( -7, -2), S!( 0, 6), S!( -5, 6), S!( 2, 7), S!( 1, 4), S!( 5, 3), S!( -3, -1),
5557
S!( -1, -1), S!( -10, -1), S!( -2, 9), S!( 5, 5), S!( 5, 5), S!( 5, 5), S!( -1, 0), S!( 0, -1),
56-
S!( -5, -5), S!( 2, 2), S!( 7, 6), S!( 15, 20), S!( 5, 5), S!( 22, 22), S!( -1, 0), S!( 24, 21),
57-
S!( -9, -10), S!( -3, -2), S!( 6, 5), S!( 5, 5), S!( 5, 5), S!( 74, 71), S!( 0, 0), S!( 0, -1),
58-
S!( -10, -10), S!( 1, 0), S!( -1, 0), S!( -1, 0), S!( 44, 43), S!( 36, 33), S!( -1, 0), S!( 22, 20),
59-
S!( -22, -17), S!( -16, -18), S!( -9, -10), S!( -4, -5), S!( 0, -1), S!( 0, -1), S!( 2, -4), S!( -3, -4)
58+
S!( -5, -5), S!( 2, 2), S!( 7, 6), S!( 16, 21), S!( 5, 5), S!( 22, 22), S!( -1, 0), S!( 24, 21),
59+
S!( -7, -8), S!( -3, -2), S!( 6, 5), S!( 5, 5), S!( 5, 5), S!( 74, 71), S!( 0, 0), S!( 0, -1),
60+
S!( -10, -10), S!( 1, 0), S!( -1, 0), S!( -1, 0), S!( 44, 43), S!( 36, 33), S!( 5, 5), S!( 22, 20),
61+
S!( -22, -17), S!( -19, -21), S!( -9, -10), S!( -4, -5), S!( 0, -2), S!( 0, -1), S!( 2, -4), S!( -3, -4)
6062
];
6163
pub const K: [Score; 64] = [
62-
S!( 22, -62), S!( 34, -35), S!( 23, -25), S!( -73, -18), S!( -11, -35), S!( -11, -35), S!( 41, -31), S!( 38, -57),
63-
S!( 23, -28), S!( 22, -27), S!( -8, -9), S!( -18, -6), S!( -26, -3), S!( -6, -7), S!( 30, -16), S!( 30, -30),
64-
S!( 1, -23), S!( -19, -4), S!( -38, 6), S!( -39, 12), S!( -35, 17), S!( -30, 10), S!( -15, -6), S!( -4, -16),
65-
S!( -20, -26), S!( -25, -3), S!( -36, 22), S!( -52, 32), S!( -47, 35), S!( -36, 26), S!( -17, 3), S!( -12, -18),
66-
S!( -5, -4), S!( -13, 18), S!( -46, 29), S!( -60, 32), S!( -49, 39), S!( -39, 32), S!( -11, 19), S!( -29, -30),
67-
S!( -16, -4), S!( -24, 7), S!( -31, 25), S!( -43, 37), S!( -33, 47), S!( -21, 38), S!( 7, 35), S!( -26, -27),
68-
S!( -30, -30), S!( -19, 0), S!( -29, 2), S!( -41, 8), S!( -15, 36), S!( -4, 32), S!( 27, 40), S!( -10, -9),
69-
S!( -74, -94), S!( -47, -49), S!( -39, -30), S!( -38, -10), S!( -48, -23), S!( -12, -3), S!( -39, -40), S!( -28, -52)
64+
S!( 22, -62), S!( 34, -35), S!( 23, -25), S!( -73, -18), S!( -12, -36), S!( -10, -34), S!( 40, -32), S!( 39, -56),
65+
S!( 23, -28), S!( 23, -25), S!( -7, -7), S!( -18, -6), S!( -26, -3), S!( -6, -7), S!( 30, -16), S!( 29, -31),
66+
S!( 3, -21), S!( -19, -4), S!( -38, 6), S!( -39, 12), S!( -35, 17), S!( -30, 10), S!( -15, -6), S!( -4, -16),
67+
S!( -19, -25), S!( -25, -3), S!( -36, 22), S!( -52, 32), S!( -47, 35), S!( -35, 27), S!( -16, 4), S!( -12, -18),
68+
S!( -5, -4), S!( -12, 19), S!( -46, 29), S!( -60, 32), S!( -47, 41), S!( -39, 32), S!( -8, 22), S!( -29, -30),
69+
S!( -16, -4), S!( -24, 7), S!( -31, 25), S!( -41, 39), S!( -32, 48), S!( -19, 40), S!( 10, 38), S!( -22, -23),
70+
S!( -30, -30), S!( -18, 1), S!( -29, 2), S!( -41, 8), S!( -13, 38), S!( -4, 32), S!( 29, 42), S!( -10, -9),
71+
S!( -74, -94), S!( -47, -48), S!( -39, -30), S!( -35, -7), S!( -48, -23), S!( -12, -3), S!( -39, -40), S!( -28, -52)
7072
];

src/eval/evaluator.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,14 @@ pub fn evaluate(board: &Board) -> i32 {
116116
eval += white_eval.eval();
117117
eval -= black_eval.eval();
118118

119+
//load in extra calculations
120+
let phase = white_eval.calculate_phase();
121+
if board.side_to_move() == Color::White {
122+
eval += TEMPO.eval(phase);
123+
} else {
124+
eval -= TEMPO.eval(phase);
125+
}
126+
119127
if board.side_to_move() == Color::White {
120128
eval
121129
} else {

0 commit comments

Comments
 (0)