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 Marco Costalba
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
36 static const Value MP = PawnValueMidgame;
37 static const Value MK = KnightValueMidgame;
38 static const Value MB = BishopValueMidgame;
39 static const Value MR = RookValueMidgame;
40 static const Value MQ = QueenValueMidgame;
42 static const int MgPST[][64] = {
46 0, 0, 0, 0, 0, 0, 0, 0,
47 MP-38, MP-12, MP- 0, MP+12, MP+12, MP- 0, MP-12, MP-38,
48 MP-38, MP-12, MP+ 6, MP+38, MP+38, MP+ 6, MP-12, MP-38,
49 MP-38, MP-12, MP+16, MP+64, MP+64, MP+16, MP-12, MP-38,
50 MP-38, MP-12, MP+16, MP+38, MP+38, MP+16, MP-12, MP-38,
51 MP-38, MP-12, MP+ 6, MP+12, MP+12, MP+ 6, MP-12, MP-38,
52 MP-38, MP-12, MP- 0, MP+12, MP+12, MP- 0, MP-12, MP-38,
53 0, 0, 0, 0, 0, 0, 0, 0
57 MK-128, MK-102, MK-76, MK-64, MK-64, MK-76, MK-102, MK-128,
58 MK- 89, MK- 64, MK-38, MK-25, MK-25, MK-38, MK- 64, MK- 89,
59 MK- 51, MK- 25, MK- 0, MK+12, MK+12, MK- 0, MK- 25, MK- 51,
60 MK- 25, MK- 0, MK+25, MK+38, MK+38, MK+25, MK- 0, MK- 25,
61 MK- 12, MK+ 12, MK+38, MK+51, MK+51, MK+38, MK+ 12, MK- 12,
62 MK- 12, MK+ 12, MK+38, MK+51, MK+51, MK+38, MK+ 12, MK- 12,
63 MK- 51, MK- 25, MK- 0, MK+12, MK+12, MK- 0, MK- 25, MK- 51,
64 MK-182, MK- 64, MK-38, MK-25, MK-25, MK-38, MK- 64, MK-182
68 MB-46, MB-46, MB-40, MB-35, MB-35, MB-40, MB-46, MB-46,
69 MB-20, MB- 0, MB- 5, MB- 0, MB- 0, MB- 5, MB- 0, MB-20,
70 MB-15, MB- 5, MB+10, MB+ 5, MB+ 5, MB+10, MB- 5, MB-15,
71 MB-10, MB- 0, MB+ 5, MB+20, MB+20, MB+ 5, MB- 0, MB-10,
72 MB-10, MB- 0, MB+ 5, MB+20, MB+20, MB+ 5, MB- 0, MB-10,
73 MB-15, MB- 5, MB+10, MB+ 5, MB+ 5, MB+10, MB- 5, MB-15,
74 MB-20, MB- 0, MB- 5, MB- 0, MB- 0, MB- 5, MB- 0, MB-20,
75 MB-20, MB-20, MB-15, MB-10, MB-10, MB-15, MB-20, MB-20
79 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
80 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
81 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
82 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
83 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
84 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
85 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18,
86 MR-18, MR-10, MR-3, MR+4, MR+4, MR-3, MR-10, MR-18
90 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
91 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
92 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
93 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
94 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
95 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
96 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ,
97 MQ, MQ, MQ, MQ, MQ, MQ, MQ, MQ
101 302, 328, 276, 225, 225, 276, 328, 302,
102 276, 302, 251, 200, 200, 251, 302, 276,
103 225, 251, 200, 149, 149, 200, 251, 225,
104 200, 225, 175, 124, 124, 175, 225, 200,
105 175, 200, 149, 98, 98, 149, 200, 175,
106 149, 175, 124, 72, 72, 124, 175, 149,
107 124, 149, 98, 47, 47, 98, 149, 124,
108 98, 124, 72, 21, 21, 72, 124, 98
112 static const Value EP = PawnValueEndgame;
113 static const Value EK = KnightValueEndgame;
114 static const Value EB = BishopValueEndgame;
115 static const Value ER = RookValueEndgame;
116 static const Value EQ = QueenValueEndgame;
118 static const int EgPST[][64] = {
122 0, 0, 0, 0, 0, 0, 0, 0,
123 EP, EP, EP, EP, EP, EP, EP, EP,
124 EP, EP, EP, EP, EP, EP, EP, EP,
125 EP, EP, EP, EP, EP, EP, EP, EP,
126 EP, EP, EP, EP, EP, EP, EP, EP,
127 EP, EP, EP, EP, EP, EP, EP, EP,
128 EP, EP, EP, EP, EP, EP, EP, EP,
129 0, 0, 0, 0, 0, 0, 0, 0
133 EK-102, EK-76, EK-51, EK-38, EK-38, EK-51, EK-76, EK-102,
134 EK- 76, EK-51, EK-25, EK-12, EK-12, EK-25, EK-51, EK-76,
135 EK- 51, EK-25, EK- 0, EK+12, EK+12, EK- 0, EK-25, EK-51,
136 EK- 38, EK-12, EK+12, EK+25, EK+25, EK+12, EK-12, EK-38,
137 EK- 38, EK-12, EK+12, EK+25, EK+25, EK+12, EK-12, EK-38,
138 EK- 51, EK-25, EK- 0, EK+12, EK+12, EK- 0, EK-25, EK-51,
139 EK- 76, EK-51, EK-25, EK-12, EK-12, EK-25, EK-51, EK-76,
140 EK-102, EK-76, EK-51, EK-38, EK-38, EK-51, EK-76, EK-102
144 EB-46, EB-30, EB-23, EB-15, EB-15, EB-23, EB-30, EB-46,
145 EB-30, EB-15, EB- 7, EB- 0, EB- 0, EB- 7, EB-15, EB-30,
146 EB-23, EB- 7, EB- 0, EB+ 7, EB+ 7, EB- 0, EB- 7, EB-23,
147 EB-15, EB- 0, EB+ 7, EB+15, EB+15, EB+ 7, EB- 0, EB-15,
148 EB-15, EB- 0, EB+ 7, EB+15, EB+15, EB+ 7, EB- 0, EB-15,
149 EB-23, EB- 7, EB- 0, EB+ 7, EB+ 7, EB- 0, EB- 7, EB-23,
150 EB-30, EB-15, EB- 7, EB- 0, EB- 0, EB- 7, EB-15, EB-30,
151 EB-46, EB-30, EB-23, EB-15, EB-15, EB-23, EB-30, EB-46
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-61, EQ-40, EQ-30, EQ-20, EQ-20, EQ-30, EQ-40, EQ-61,
167 EQ-40, EQ-20, EQ-10, EQ- 0, EQ- 0, EQ-10, EQ-20, EQ-40,
168 EQ-30, EQ-10, EQ- 0, EQ+10, EQ+10, EQ- 0, EQ-10, EQ-30,
169 EQ-20, EQ- 0, EQ+10, EQ+20, EQ+20, EQ+10, EQ- 0, EQ-20,
170 EQ-20, EQ- 0, EQ+10, EQ+20, EQ+20, EQ+10, EQ- 0, EQ-20,
171 EQ-30, EQ-10, EQ- 0, EQ+10, EQ+10, EQ- 0, EQ-10, EQ-30,
172 EQ-40, EQ-20, EQ-10, EQ- 0, EQ- 0, EQ-10, EQ-20, EQ-40,
173 EQ-61, EQ-40, EQ-30, EQ-20, EQ-20, EQ-30, EQ-40, EQ-61
177 16, 78, 108, 139, 139, 108, 78, 16,
178 78, 139, 170, 200, 200, 170, 139, 78,
179 108, 170, 200, 230, 230, 200, 170, 108,
180 139, 200, 230, 261, 261, 230, 200, 139,
181 139, 200, 230, 261, 261, 230, 200, 139,
182 108, 170, 200, 230, 230, 200, 170, 108,
183 78, 139, 170, 200, 200, 170, 139, 78,
184 16, 78, 108, 139, 139, 108, 78, 16
189 #endif // !defined(PSQTAB_H_INCLUDED)