2 Stockfish, a UCI chess playing engine derived from Glaurung 2.1
3 Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
4 Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
6 Stockfish is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 Stockfish is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #if !defined(PSQTAB_H_INCLUDED)
22 #define PSQTAB_H_INCLUDED
33 //// Constants modified by Joona Kiiski
36 const Value MP = PawnValueMidgame;
37 const Value MK = KnightValueMidgame;
38 const Value MB = BishopValueMidgame;
39 const Value MR = RookValueMidgame;
40 const Value MQ = QueenValueMidgame;
42 const Value EP = PawnValueEndgame;
43 const Value EK = KnightValueEndgame;
44 const Value EB = BishopValueEndgame;
45 const Value ER = RookValueEndgame;
46 const Value EQ = QueenValueEndgame;
48 const int MgPST[][64] = {
52 0, 0, 0, 0, 0, 0, 0, 0,
53 MP-28, MP-6, MP+ 4, MP+14, MP+14, MP+ 4, MP-6, MP-28,
54 MP-28, MP-6, MP+ 9, MP+36, MP+36, MP+ 9, MP-6, MP-28,
55 MP-28, MP-6, MP+17, MP+58, MP+58, MP+17, MP-6, MP-28,
56 MP-28, MP-6, MP+17, MP+36, MP+36, MP+17, MP-6, MP-28,
57 MP-28, MP-6, MP+ 9, MP+14, MP+14, MP+ 9, MP-6, MP-28,
58 MP-28, MP-6, MP+ 4, MP+14, MP+14, MP+ 4, MP-6, MP-28,
59 0, 0, 0, 0, 0, 0, 0, 0
63 MK-135, MK-107, MK-80, MK-67, MK-67, MK-80, MK-107, MK-135,
64 MK- 93, MK- 67, MK-39, MK-25, MK-25, MK-39, MK- 67, MK- 93,
65 MK- 53, MK- 25, MK+ 1, MK+13, MK+13, MK+ 1, MK- 25, MK- 53,
66 MK- 25, MK+ 1, MK+27, MK+41, MK+41, MK+27, MK+ 1, MK- 25,
67 MK- 11, MK+ 13, MK+41, MK+55, MK+55, MK+41, MK+ 13, MK- 11,
68 MK- 11, MK+ 13, MK+41, MK+55, MK+55, MK+41, MK+ 13, MK- 11,
69 MK- 53, MK- 25, MK+ 1, MK+13, MK+13, MK+ 1, MK- 25, MK- 53,
70 MK-193, MK- 67, MK-39, MK-25, MK-25, MK-39, MK- 67, MK-193
74 MB-40, MB-40, MB-35, MB-30, MB-30, MB-35, MB-40, MB-40,
75 MB-17, MB+ 0, MB- 4, MB+ 0, MB+ 0, MB- 4, MB+ 0, MB-17,
76 MB-13, MB- 4, MB+ 8, MB+ 4, MB+ 4, MB+ 8, MB- 4, MB-13,
77 MB- 8, MB+ 0, MB+ 4, MB+17, MB+17, MB+ 4, MB+ 0, MB- 8,
78 MB- 8, MB+ 0, MB+ 4, MB+17, MB+17, MB+ 4, MB+ 0, MB- 8,
79 MB-13, MB- 4, MB+ 8, MB+ 4, MB+ 4, MB+ 8, MB- 4, MB-13,
80 MB-17, MB+ 0, MB- 4, MB+ 0, MB+ 0, MB- 4, MB+ 0, MB-17,
81 MB-17, MB-17, MB-13, MB- 8, MB- 8, MB-13, MB-17, MB-17
85 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
86 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
87 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
88 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
89 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
90 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
91 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
92 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12
96 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
97 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
98 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
99 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
100 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
101 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
102 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
103 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8
107 287, 311, 262, 214, 214, 262, 311, 287,
108 262, 287, 238, 190, 190, 238, 287, 262,
109 214, 238, 190, 142, 142, 190, 238, 214,
110 190, 214, 167, 119, 119, 167, 214, 190,
111 167, 190, 142, 94, 94, 142, 190, 167,
112 142, 167, 119, 69, 69, 119, 167, 142,
113 119, 142, 94, 46, 46, 94, 142, 119,
114 94, 119, 69, 21, 21, 69, 119, 94
118 const int EgPST[][64] = {
122 0, 0, 0, 0, 0, 0, 0, 0,
123 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
124 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
125 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
126 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
127 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
128 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
129 0, 0, 0, 0, 0, 0, 0, 0
133 EK-104, EK-79, EK-55, EK-42, EK-42, EK-55, EK-79, EK-104,
134 EK- 79, EK-55, EK-30, EK-17, EK-17, EK-30, EK-55, EK- 79,
135 EK- 55, EK-30, EK- 6, EK+ 5, EK+ 5, EK- 6, EK-30, EK- 55,
136 EK- 42, EK-17, EK+ 5, EK+18, EK+18, EK+ 5, EK-17, EK- 42,
137 EK- 42, EK-17, EK+ 5, EK+18, EK+18, EK+ 5, EK-17, EK- 42,
138 EK- 55, EK-30, EK- 6, EK+ 5, EK+ 5, EK- 6, EK-30, EK- 55,
139 EK- 79, EK-55, EK-30, EK-17, EK-17, EK-30, EK-55, EK- 79,
140 EK-104, EK-79, EK-55, EK-42, EK-42, EK-55, EK-79, EK-104
144 EB-59, EB-42, EB-35, EB-26, EB-26, EB-35, EB-42, EB-59,
145 EB-42, EB-26, EB-18, EB-11, EB-11, EB-18, EB-26, EB-42,
146 EB-35, EB-18, EB-11, EB- 4, EB- 4, EB-11, EB-18, EB-35,
147 EB-26, EB-11, EB- 4, EB+ 4, EB+ 4, EB- 4, EB-11, EB-26,
148 EB-26, EB-11, EB- 4, EB+ 4, EB+ 4, EB- 4, EB-11, EB-26,
149 EB-35, EB-18, EB-11, EB- 4, EB- 4, EB-11, EB-18, EB-35,
150 EB-42, EB-26, EB-18, EB-11, EB-11, EB-18, EB-26, EB-42,
151 EB-59, EB-42, EB-35, EB-26, EB-26, EB-35, EB-42, EB-59
155 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
156 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
157 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
158 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
159 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
160 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
161 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
162 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3
166 EQ-80, EQ-54, EQ-42, EQ-30, EQ-30, EQ-42, EQ-54, EQ-80,
167 EQ-54, EQ-30, EQ-18, EQ- 6, EQ- 6, EQ-18, EQ-30, EQ-54,
168 EQ-42, EQ-18, EQ- 6, EQ+ 6, EQ+ 6, EQ- 6, EQ-18, EQ-42,
169 EQ-30, EQ- 6, EQ+ 6, EQ+18, EQ+18, EQ+ 6, EQ- 6, EQ-30,
170 EQ-30, EQ- 6, EQ+ 6, EQ+18, EQ+18, EQ+ 6, EQ- 6, EQ-30,
171 EQ-42, EQ-18, EQ- 6, EQ+ 6, EQ+ 6, EQ- 6, EQ-18, EQ-42,
172 EQ-54, EQ-30, EQ-18, EQ- 6, EQ- 6, EQ-18, EQ-30, EQ-54,
173 EQ-80, EQ-54, EQ-42, EQ-30, EQ-30, EQ-42, EQ-54, EQ-80
177 18, 77, 105, 135, 135, 105, 77, 18,
178 77, 135, 165, 193, 193, 165, 135, 77,
179 105, 165, 193, 222, 222, 193, 165, 105,
180 135, 193, 222, 251, 251, 222, 193, 135,
181 135, 193, 222, 251, 251, 222, 193, 135,
182 105, 165, 193, 222, 222, 193, 165, 105,
183 77, 135, 165, 193, 193, 165, 135, 77,
184 18, 77, 105, 135, 135, 105, 77, 18
190 #endif // !defined(PSQTAB_H_INCLUDED)