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/>.
20 #if !defined(PSQTAB_H_INCLUDED)
21 #define PSQTAB_H_INCLUDED
28 //// Constants modified by Joona Kiiski
31 const Value MP = PawnValueMidgame;
32 const Value MK = KnightValueMidgame;
33 const Value MB = BishopValueMidgame;
34 const Value MR = RookValueMidgame;
35 const Value MQ = QueenValueMidgame;
37 const Value EP = PawnValueEndgame;
38 const Value EK = KnightValueEndgame;
39 const Value EB = BishopValueEndgame;
40 const Value ER = RookValueEndgame;
41 const Value EQ = QueenValueEndgame;
43 const int MgPST[][64] = {
47 0, 0, 0, 0, 0, 0, 0, 0,
48 MP-28, MP-6, MP+ 4, MP+14, MP+14, MP+ 4, MP-6, MP-28,
49 MP-28, MP-6, MP+ 9, MP+36, MP+36, MP+ 9, MP-6, MP-28,
50 MP-28, MP-6, MP+17, MP+58, MP+58, MP+17, MP-6, MP-28,
51 MP-28, MP-6, MP+17, MP+36, MP+36, MP+17, MP-6, MP-28,
52 MP-28, MP-6, MP+ 9, MP+14, MP+14, MP+ 9, MP-6, MP-28,
53 MP-28, MP-6, MP+ 4, MP+14, MP+14, MP+ 4, MP-6, MP-28,
54 0, 0, 0, 0, 0, 0, 0, 0
58 MK-135, MK-107, MK-80, MK-67, MK-67, MK-80, MK-107, MK-135,
59 MK- 93, MK- 67, MK-39, MK-25, MK-25, MK-39, MK- 67, MK- 93,
60 MK- 53, MK- 25, MK+ 1, MK+13, MK+13, MK+ 1, MK- 25, MK- 53,
61 MK- 25, MK+ 1, MK+27, MK+41, MK+41, MK+27, MK+ 1, MK- 25,
62 MK- 11, MK+ 13, MK+41, MK+55, MK+55, MK+41, MK+ 13, MK- 11,
63 MK- 11, MK+ 13, MK+41, MK+55, MK+55, MK+41, MK+ 13, MK- 11,
64 MK- 53, MK- 25, MK+ 1, MK+13, MK+13, MK+ 1, MK- 25, MK- 53,
65 MK-193, MK- 67, MK-39, MK-25, MK-25, MK-39, MK- 67, MK-193
69 MB-40, MB-40, MB-35, MB-30, MB-30, MB-35, MB-40, MB-40,
70 MB-17, MB+ 0, MB- 4, MB+ 0, MB+ 0, MB- 4, MB+ 0, MB-17,
71 MB-13, MB- 4, MB+ 8, MB+ 4, MB+ 4, MB+ 8, MB- 4, MB-13,
72 MB- 8, MB+ 0, MB+ 4, MB+17, MB+17, MB+ 4, MB+ 0, MB- 8,
73 MB- 8, MB+ 0, MB+ 4, MB+17, MB+17, MB+ 4, MB+ 0, MB- 8,
74 MB-13, MB- 4, MB+ 8, MB+ 4, MB+ 4, MB+ 8, MB- 4, MB-13,
75 MB-17, MB+ 0, MB- 4, MB+ 0, MB+ 0, MB- 4, MB+ 0, MB-17,
76 MB-17, MB-17, MB-13, MB- 8, MB- 8, MB-13, MB-17, MB-17
80 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
81 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
82 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
83 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
84 MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
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
91 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
92 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
93 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
94 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
95 MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
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
102 287, 311, 262, 214, 214, 262, 311, 287,
103 262, 287, 238, 190, 190, 238, 287, 262,
104 214, 238, 190, 142, 142, 190, 238, 214,
105 190, 214, 167, 119, 119, 167, 214, 190,
106 167, 190, 142, 94, 94, 142, 190, 167,
107 142, 167, 119, 69, 69, 119, 167, 142,
108 119, 142, 94, 46, 46, 94, 142, 119,
109 94, 119, 69, 21, 21, 69, 119, 94
113 const int EgPST[][64] = {
117 0, 0, 0, 0, 0, 0, 0, 0,
118 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
119 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
120 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
121 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
122 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
123 EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
124 0, 0, 0, 0, 0, 0, 0, 0
128 EK-104, EK-79, EK-55, EK-42, EK-42, EK-55, EK-79, EK-104,
129 EK- 79, EK-55, EK-30, EK-17, EK-17, EK-30, EK-55, EK- 79,
130 EK- 55, EK-30, EK- 6, EK+ 5, EK+ 5, EK- 6, EK-30, EK- 55,
131 EK- 42, EK-17, EK+ 5, EK+18, EK+18, EK+ 5, EK-17, EK- 42,
132 EK- 42, EK-17, EK+ 5, EK+18, EK+18, EK+ 5, EK-17, EK- 42,
133 EK- 55, EK-30, EK- 6, EK+ 5, EK+ 5, EK- 6, EK-30, EK- 55,
134 EK- 79, EK-55, EK-30, EK-17, EK-17, EK-30, EK-55, EK- 79,
135 EK-104, EK-79, EK-55, EK-42, EK-42, EK-55, EK-79, EK-104
139 EB-59, EB-42, EB-35, EB-26, EB-26, EB-35, EB-42, EB-59,
140 EB-42, EB-26, EB-18, EB-11, EB-11, EB-18, EB-26, EB-42,
141 EB-35, EB-18, EB-11, EB- 4, EB- 4, EB-11, EB-18, EB-35,
142 EB-26, EB-11, EB- 4, EB+ 4, EB+ 4, EB- 4, EB-11, EB-26,
143 EB-26, EB-11, EB- 4, EB+ 4, EB+ 4, EB- 4, EB-11, EB-26,
144 EB-35, EB-18, EB-11, EB- 4, EB- 4, EB-11, EB-18, EB-35,
145 EB-42, EB-26, EB-18, EB-11, EB-11, EB-18, EB-26, EB-42,
146 EB-59, EB-42, EB-35, EB-26, EB-26, EB-35, EB-42, EB-59
150 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
151 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
152 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
153 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
154 ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
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
161 EQ-80, EQ-54, EQ-42, EQ-30, EQ-30, EQ-42, EQ-54, EQ-80,
162 EQ-54, EQ-30, EQ-18, EQ- 6, EQ- 6, EQ-18, EQ-30, EQ-54,
163 EQ-42, EQ-18, EQ- 6, EQ+ 6, EQ+ 6, EQ- 6, EQ-18, EQ-42,
164 EQ-30, EQ- 6, EQ+ 6, EQ+18, EQ+18, EQ+ 6, EQ- 6, EQ-30,
165 EQ-30, EQ- 6, EQ+ 6, EQ+18, EQ+18, EQ+ 6, EQ- 6, EQ-30,
166 EQ-42, EQ-18, EQ- 6, EQ+ 6, EQ+ 6, EQ- 6, EQ-18, EQ-42,
167 EQ-54, EQ-30, EQ-18, EQ- 6, EQ- 6, EQ-18, EQ-30, EQ-54,
168 EQ-80, EQ-54, EQ-42, EQ-30, EQ-30, EQ-42, EQ-54, EQ-80
172 18, 77, 105, 135, 135, 105, 77, 18,
173 77, 135, 165, 193, 193, 165, 135, 77,
174 105, 165, 193, 222, 222, 193, 165, 105,
175 135, 193, 222, 251, 251, 222, 193, 135,
176 135, 193, 222, 251, 251, 222, 193, 135,
177 105, 165, 193, 222, 222, 193, 165, 105,
178 77, 135, 165, 193, 193, 165, 135, 77,
179 18, 77, 105, 135, 135, 105, 77, 18
185 #endif // !defined(PSQTAB_H_INCLUDED)