@@ -16,6 +16,8 @@ inline Value mopUpEdgeDistWeight = 10;
1616inline Value spaceWeight = 2 ;
1717inline Value bishopPairMg = 25 ;
1818inline Value bishopPairEg = 50 ;
19+ inline Value developedMg = 8 ;
20+ inline Value developedEg = 4 ;
1921inline Value rookOpenFileMg = 25 ;
2022inline Value rookOpenFileEg = 20 ;
2123inline Value rookSemiOpenFileMg = 15 ;
@@ -33,98 +35,6 @@ inline Value kqkEdgeWeight = 15;
3335inline Value krkDistWeight = 5 ;
3436inline Value krkEdgeWeight = 10 ;
3537inline Value kpkWeight = 15 ;
36- inline Value mgMobilityCnt[7 ][8 ] = {
37- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
38- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
39- { -15 , -8 , -2 , 4 , 10 , 16 , 22 , 28 },
40- { -20 , -12 , -4 , 5 , 14 , 23 , 32 , 40 },
41- { -25 , -15 , -5 , 5 , 15 , 25 , 35 , 45 },
42- { -30 , -18 , -6 , 6 , 18 , 30 , 42 , 55 },
43- { -10 , -5 , 0 , 5 , 10 , 15 , 20 , 25 }
44- };
45- inline Value egMobilityCnt[7 ][8 ] = {
46- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
47- { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
48- { -20 , -12 , -4 , 5 , 14 , 23 , 32 , 40 },
49- { -25 , -15 , -5 , 5 , 16 , 27 , 38 , 50 },
50- { -30 , -18 , -6 , 6 , 18 , 30 , 42 , 55 },
51- { -35 , -22 , -8 , 8 , 22 , 35 , 48 , 60 },
52- { -15 , -8 , -2 , 4 , 10 , 16 , 22 , 28 }
53- };
54- inline Value kingTropismMg[7 ] = { 0 , 0 , 3 , 2 , 2 , 5 , 0 };
55- inline Value kingTropismEg[7 ] = { 0 , 0 , 2 , 2 , 3 , 4 , 0 };
56- inline Value passedBonusMg[7 ] = { 0 , 5 , 15 , 40 , 80 , 140 , 200 };
57- inline Value passedBonusEg[7 ] = { 0 , 10 , 30 , 70 , 140 , 230 , 350 };
58- inline Value mg_knight_table[64 ] = { -50 , -40 , -30 , -30 , -30 , -30 , -40 , -50 , -40 , -20 , 0 , 5 , 5 , 0 , -20 , -40 ,
59- -30 , 5 , 10 , 15 , 15 , 10 , 5 , -30 , -30 , 0 , 15 , 20 , 20 , 15 , 0 , -30 ,
60- -30 , 5 , 15 , 20 , 20 , 15 , 5 , -30 , -30 , 0 , 10 , 15 , 15 , 10 , 0 , -30 ,
61- -40 , -20 , 0 , 0 , 0 , 0 , -20 , -40 , -50 , -40 , -30 , -30 , -30 , -30 , -40 , -50 };
62- inline Value mg_bishop_table[64 ] = { -20 , -10 , -10 , -10 , -10 , -10 , -10 , -20 , -10 , 0 , 0 , 0 , 0 , 0 , 0 , -10 ,
63- -10 , 0 , 10 , 10 , 10 , 10 , 0 , -10 , -10 , 0 , 5 , 10 , 10 , 5 , 0 , -10 ,
64- -10 , 5 , 5 , 10 , 10 , 5 , 5 , -10 , -10 , 0 , 10 , 10 , 10 , 10 , 0 , -10 ,
65- -10 , 0 , 0 , 0 , 0 , 0 , 0 , -10 , -20 , -10 , -10 , -10 , -10 , -10 , -10 , -20 };
66- inline Value mg_rook_table[64 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 ,
67- 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 ,
68- 5 , 5 , 5 , 0 , 10 , 15 , 15 , 15 , 15 , 15 , 15 , 10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };
69- inline Value mg_king_table[64 ] = { -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 , -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 ,
70- -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 , -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 ,
71- -20 , -30 , -30 , -40 , -40 , -30 , -30 , -20 , -10 , -20 , -20 , -20 , -20 , -20 , -20 , -10 ,
72- 20 , 20 , 0 , 0 , 0 , 0 , 20 , 20 , 20 , 30 , 10 , 0 , 0 , 10 , 30 , 20 };
73- inline Value mg_queen_table[64 ] = { -20 , -10 , -10 , -5 , -5 , -10 , -10 , -20 , -10 , 0 , 5 , 0 , 0 , 0 , 0 , -10 ,
74- -10 , 5 , 5 , 5 , 5 , 5 , 0 , -10 , 0 , 0 , 5 , 5 , 5 , 5 , 0 , -5 ,
75- -5 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -10 , 0 , 5 , 5 , 5 , 5 , 0 , -10 ,
76- -10 , 0 , 0 , 0 , 0 , 0 , 0 , -10 , -20 , -10 , -10 , -5 , -5 , -10 , -10 , -20 };
77- inline Value eg_knight_table[64 ] = { -50 , -40 , -20 , -20 , -20 , -20 , -40 , -50 , -40 , -10 , 5 , 10 , 10 , 5 , -10 , -40 ,
78- -30 , 10 , 20 , 25 , 25 , 20 , 10 , -30 , -30 , 15 , 25 , 30 , 30 , 25 , 15 , -30 ,
79- -30 , 15 , 25 , 30 , 30 , 25 , 15 , -30 , -30 , 10 , 20 , 25 , 25 , 20 , 10 , -30 ,
80- -40 , -10 , 5 , 10 , 10 , 5 , -10 , -40 , -50 , -40 , -20 , -20 , -20 , -20 , -40 , -50 };
81- inline Value eg_bishop_table[64 ] = { -10 , -5 , -5 , -5 , -5 , -5 , -5 , -10 , -5 , 5 , 10 , 10 , 10 , 10 , 5 , -5 , -5 , 10 , 15 , 20 , 20 , 15 ,
82- 10 , -5 , -5 , 10 , 20 , 25 , 25 , 20 , 10 , -5 , -5 , 10 , 20 , 25 , 25 , 20 , 10 , -5 , -5 , 10 , 15 , 20 ,
83- 20 , 15 , 10 , -5 , -5 , 5 , 10 , 10 , 10 , 10 , 5 , -5 , -10 , -5 , -5 , -5 , -5 , -5 , -5 , -10 };
84- inline Value eg_rook_table[64 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 10 , 15 , 15 , 10 , 5 , 0 , 0 , 5 , 10 , 15 , 15 , 10 ,
85- 5 , 0 , 0 , 5 , 10 , 15 , 15 , 10 , 5 , 0 , 10 , 15 , 20 , 25 , 25 , 20 , 15 , 10 , 10 , 15 , 20 , 25 ,
86- 25 , 20 , 15 , 10 , 20 , 25 , 30 , 35 , 35 , 30 , 25 , 20 , 0 , 0 , 0 , 5 , 5 , 0 , 0 , 0 };
87- inline Value eg_king_table[64 ] = { -50 , -40 , -30 , -20 , -20 , -30 , -40 , -50 , -40 , -20 , 0 , 10 , 10 , 0 , -20 , -40 ,
88- -30 , 0 , 20 , 30 , 30 , 20 , 0 , -30 , -20 , 10 , 30 , 40 , 40 , 30 , 10 , -20 ,
89- -20 , 10 , 30 , 40 , 40 , 30 , 10 , -20 , -30 , 0 , 20 , 30 , 30 , 20 , 0 , -30 ,
90- -40 , -20 , 0 , 10 , 10 , 0 , -20 , -40 , -50 , -40 , -30 , -20 , -20 , -30 , -40 , -50 };
91- inline Value eg_queen_table[64 ] = { -10 , -5 , -5 , 0 , 0 , -5 , -5 , -10 , -5 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -5 , 5 , 10 , 15 , 15 , 10 ,
92- 5 , -5 , -5 , 10 , 15 , 20 , 20 , 15 , 10 , -5 , -5 , 10 , 15 , 20 , 20 , 15 , 10 , -5 , -5 , 5 , 10 , 15 ,
93- 15 , 10 , 5 , -5 , -5 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -10 , -5 , -5 , 0 , 0 , -5 , -5 , -10 };
94- inline Value mg_pawn_table[56 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -5 , -2 , 2 ,
95- 5 , 5 , 2 , -2 , -5 , -10 , -5 , 10 , 20 , 20 , 10 , -5 , -10 , -20 , -10 , 25 , 40 , 40 , 25 ,
96- -10 , -20 , -35 , -20 , 50 , 80 , 80 , 50 , -20 , -35 , -55 , -40 , 90 , 130 , 130 , 90 , -40 , -55 };
97- inline Value eg_pawn_table[56 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -5 , -2 , 2 ,
98- 5 , 5 , 2 , -2 , -5 , -10 , -5 , 10 , 20 , 20 , 10 , -5 , -10 , -20 , -10 , 30 , 55 , 55 , 30 ,
99- -10 , -20 , -35 , -20 , 70 , 110 , 110 , 70 , -20 , -35 , -60 , -45 , 120 , 180 , 180 , 120 , -45 , -60 };
100- inline Value developedMg = 8 ;
101- inline Value developedEg = 4 ;
102- inline Value outpostBonusKnight[2 ] = { 15 , 30 };
103- inline Value outpostBonusBishop[2 ] = { 10 , 25 };
104- inline Value kingProtector[6 ][2 ] = {
105- { 0 , 0 },
106- { 8 , 12 },
107- { 5 , 10 },
108- { 10 , 15 },
109- { 3 , 5 },
110- { 0 , 0 }
111- };
112- inline Value threatByMinor[7 ][2 ] = {
113- { 0 , 0 },
114- { 0 , 0 },
115- { 15 , 25 },
116- { 15 , 25 },
117- { 25 , 35 },
118- { 35 , 50 }
119- };
120- inline Value threatByRook[7 ][2 ] = {
121- { 0 , 0 },
122- { 0 , 0 },
123- { 10 , 15 },
124- { 10 , 15 },
125- { 20 , 25 },
126- { 25 , 35 }
127- };
12838inline Value hangingScore = 70 ;
12939inline Value overloadScore = 25 ;
13040inline Value threatByRankScore = 10 ;
@@ -135,5 +45,28 @@ inline Value queenImWt = 50;
13545inline Value rammedPawnPenalty = 10 ;
13646inline Value rookOnSeventhBonus = 30 ;
13747inline Value earlyQueenPenalty = 5 ;
48+ inline Value mgMobilityCnt[7 ][8 ] = { { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { -15 , -8 , -2 , 4 , 10 , 16 , 22 , 28 }, { -20 , -12 , -4 , 5 , 14 , 23 , 32 , 40 }, { -25 , -15 , -5 , 5 , 15 , 25 , 35 , 45 }, { -30 , -18 , -6 , 6 , 18 , 30 , 42 , 55 }, { -10 , -5 , 0 , 5 , 10 , 15 , 20 , 25 } };
49+ inline Value egMobilityCnt[7 ][8 ] = { { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { -20 , -12 , -4 , 5 , 14 , 23 , 32 , 40 }, { -25 , -15 , -5 , 5 , 16 , 27 , 38 , 50 }, { -30 , -18 , -6 , 6 , 18 , 30 , 42 , 55 }, { -35 , -22 , -8 , 8 , 22 , 35 , 48 , 60 }, { -15 , -8 , -2 , 4 , 10 , 16 , 22 , 28 } };
50+ inline Value kingTropismMg[7 ] = { 0 , 0 , 3 , 2 , 2 , 5 , 0 };
51+ inline Value kingTropismEg[7 ] = { 0 , 0 , 2 , 2 , 3 , 4 , 0 };
52+ inline Value passedBonusMg[7 ] = { 0 , 5 , 15 , 40 , 80 , 140 , 200 };
53+ inline Value passedBonusEg[7 ] = { 0 , 10 , 30 , 70 , 140 , 230 , 350 };
54+ inline Value mg_knight_table[64 ] = { -50 , -40 , -30 , -30 , -30 , -30 , -40 , -50 , -40 , -20 , 0 , 5 , 5 , 0 , -20 , -40 , -30 , 5 , 10 , 15 , 15 , 10 , 5 , -30 , -30 , 0 , 15 , 20 , 20 , 15 , 0 , -30 , -30 , 5 , 15 , 20 , 20 , 15 , 5 , -30 , -30 , 0 , 10 , 15 , 15 , 10 , 0 , -30 , -40 , -20 , 0 , 0 , 0 , 0 , -20 , -40 , -50 , -40 , -30 , -30 , -30 , -30 , -40 , -50 };
55+ inline Value mg_bishop_table[64 ] = { -20 , -10 , -10 , -10 , -10 , -10 , -10 , -20 , -10 , 0 , 0 , 0 , 0 , 0 , 0 , -10 , -10 , 0 , 10 , 10 , 10 , 10 , 0 , -10 , -10 , 0 , 5 , 10 , 10 , 5 , 0 , -10 , -10 , 5 , 5 , 10 , 10 , 5 , 5 , -10 , -10 , 0 , 10 , 10 , 10 , 10 , 0 , -10 , -10 , 0 , 0 , 0 , 0 , 0 , 0 , -10 , -20 , -10 , -10 , -10 , -10 , -10 , -10 , -20 };
56+ inline Value mg_rook_table[64 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 0 , 5 , 5 , 5 , 5 , 5 , 5 , 0 , 10 , 15 , 15 , 15 , 15 , 15 , 15 , 10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };
57+ inline Value mg_king_table[64 ] = { -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 , -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 , -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 , -30 , -40 , -40 , -50 , -50 , -40 , -40 , -30 , -20 , -30 , -30 , -40 , -40 , -30 , -30 , -20 , -10 , -20 , -20 , -20 , -20 , -20 , -20 , -10 , 20 , 20 , 0 , 0 , 0 , 0 , 20 , 20 , 20 , 30 , 10 , 0 , 0 , 10 , 30 , 20 };
58+ inline Value mg_queen_table[64 ] = { -20 , -10 , -10 , -5 , -5 , -10 , -10 , -20 , -10 , 0 , 5 , 0 , 0 , 0 , 0 , -10 , -10 , 5 , 5 , 5 , 5 , 5 , 0 , -10 , 0 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -5 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -10 , 0 , 5 , 5 , 5 , 5 , 0 , -10 , -10 , 0 , 0 , 0 , 0 , 0 , 0 , -10 , -20 , -10 , -10 , -5 , -5 , -10 , -10 , -20 };
59+ inline Value eg_knight_table[64 ] = { -50 , -40 , -20 , -20 , -20 , -20 , -40 , -50 , -40 , -10 , 5 , 10 , 10 , 5 , -10 , -40 , -30 , 10 , 20 , 25 , 25 , 20 , 10 , -30 , -30 , 15 , 25 , 30 , 30 , 25 , 15 , -30 , -30 , 15 , 25 , 30 , 30 , 25 , 15 , -30 , -30 , 10 , 20 , 25 , 25 , 20 , 10 , -30 , -40 , -10 , 5 , 10 , 10 , 5 , -10 , -40 , -50 , -40 , -20 , -20 , -20 , -20 , -40 , -50 };
60+ inline Value eg_bishop_table[64 ] = { -10 , -5 , -5 , -5 , -5 , -5 , -5 , -10 , -5 , 5 , 10 , 10 , 10 , 10 , 5 , -5 , -5 , 10 , 15 , 20 , 20 , 15 , 10 , -5 , -5 , 10 , 20 , 25 , 25 , 20 , 10 , -5 , -5 , 10 , 20 , 25 , 25 , 20 , 10 , -5 , -5 , 10 , 15 , 20 , 20 , 15 , 10 , -5 , -5 , 5 , 10 , 10 , 10 , 10 , 5 , -5 , -10 , -5 , -5 , -5 , -5 , -5 , -5 , -10 };
61+ inline Value eg_rook_table[64 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 10 , 15 , 15 , 10 , 5 , 0 , 0 , 5 , 10 , 15 , 15 , 10 , 5 , 0 , 0 , 5 , 10 , 15 , 15 , 10 , 5 , 0 , 10 , 15 , 20 , 25 , 25 , 20 , 15 , 10 , 10 , 15 , 20 , 25 , 25 , 20 , 15 , 10 , 20 , 25 , 30 , 35 , 35 , 30 , 25 , 20 , 0 , 0 , 0 , 5 , 5 , 0 , 0 , 0 };
62+ inline Value eg_king_table[64 ] = { -50 , -40 , -30 , -20 , -20 , -30 , -40 , -50 , -40 , -20 , 0 , 10 , 10 , 0 , -20 , -40 , -30 , 0 , 20 , 30 , 30 , 20 , 0 , -30 , -20 , 10 , 30 , 40 , 40 , 30 , 10 , -20 , -20 , 10 , 30 , 40 , 40 , 30 , 10 , -20 , -30 , 0 , 20 , 30 , 30 , 20 , 0 , -30 , -40 , -20 , 0 , 10 , 10 , 0 , -20 , -40 , -50 , -40 , -30 , -20 , -20 , -30 , -40 , -50 };
63+ inline Value eg_queen_table[64 ] = { -10 , -5 , -5 , 0 , 0 , -5 , -5 , -10 , -5 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -5 , 5 , 10 , 15 , 15 , 10 , 5 , -5 , -5 , 10 , 15 , 20 , 20 , 15 , 10 , -5 , -5 , 10 , 15 , 20 , 20 , 15 , 10 , -5 , -5 , 5 , 10 , 15 , 15 , 10 , 5 , -5 , -5 , 0 , 5 , 5 , 5 , 5 , 0 , -5 , -10 , -5 , -5 , 0 , 0 , -5 , -5 , -10 };
64+ inline Value mg_pawn_table[56 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -5 , -2 , 2 , 5 , 5 , 2 , -2 , -5 , -10 , -5 , 10 , 20 , 20 , 10 , -5 , -10 , -20 , -10 , 25 , 40 , 40 , 25 , -10 , -20 , -35 , -20 , 50 , 80 , 80 , 50 , -20 , -35 , -55 , -40 , 90 , 130 , 130 , 90 , -40 , -55 };
65+ inline Value eg_pawn_table[56 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -5 , -2 , 2 , 5 , 5 , 2 , -2 , -5 , -10 , -5 , 10 , 20 , 20 , 10 , -5 , -10 , -20 , -10 , 30 , 55 , 55 , 30 , -10 , -20 , -35 , -20 , 70 , 110 , 110 , 70 , -20 , -35 , -60 , -45 , 120 , 180 , 180 , 120 , -45 , -60 };
66+ inline Value outpostBonusKnight[2 ] = { 15 , 30 };
67+ inline Value outpostBonusBishop[2 ] = { 10 , 25 };
68+ inline Value kingProtector[6 ][2 ] = { { 0 , 0 }, { 8 , 12 }, { 5 , 10 }, { 10 , 15 }, { 3 , 5 }, { 0 , 0 } };
69+ inline Value threatByMinor[7 ][2 ] = { { 0 , 0 }, { 0 , 0 }, { 15 , 25 }, { 15 , 25 }, { 25 , 35 }, { 35 , 50 }, { 0 , 0 } };
70+ inline Value threatByRook[7 ][2 ] = { { 0 , 0 }, { 0 , 0 }, { 10 , 15 }, { 10 , 15 }, { 20 , 25 }, { 25 , 35 }, { 0 , 0 } };
13871} // namespace engine::eval
13972#endif
0 commit comments