3 ## Copyright (C) 2004 NABEYA Kenichi (aka nanami@2ch)
4 ## Copyright (C) 2007-2008 Daigo Moriwaki (daigo at debian dot org)
6 ## This program 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 2 of the License, or
9 ## (at your option) any later version.
11 ## This program 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, write to the Free Software
18 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 require 'shogi_server/board'
22 module ShogiServer # for a namespace
24 # Handicapped game eliminating KY.
26 class HCKYBoard < Board
28 PieceKY::new(self, 1, 1, false)
29 PieceKE::new(self, 2, 1, false)
30 PieceGI::new(self, 3, 1, false)
31 PieceKI::new(self, 4, 1, false)
32 PieceOU::new(self, 5, 1, false)
33 PieceKI::new(self, 6, 1, false)
34 PieceGI::new(self, 7, 1, false)
35 PieceKE::new(self, 8, 1, false)
36 PieceKY::new(self, 9, 1, false)
37 PieceKA::new(self, 2, 2, false)
38 PieceHI::new(self, 8, 2, false)
40 PieceFU::new(self, i, 3, false)
43 PieceKY::new(self, 1, 9, true)
44 PieceKE::new(self, 2, 9, true)
45 PieceGI::new(self, 3, 9, true)
46 PieceKI::new(self, 4, 9, true)
47 PieceOU::new(self, 5, 9, true)
48 PieceKI::new(self, 6, 9, true)
49 PieceGI::new(self, 7, 9, true)
50 PieceKE::new(self, 8, 9, true)
51 #PieceKY::new(self, 9, 9, true)
52 PieceKA::new(self, 8, 8, true)
53 PieceHI::new(self, 2, 8, true)
55 PieceFU::new(self, i, 7, true)
61 # Handicapped game eliminating KA.
63 class HCKABoard < Board
65 PieceKY::new(self, 1, 1, false)
66 PieceKE::new(self, 2, 1, false)
67 PieceGI::new(self, 3, 1, false)
68 PieceKI::new(self, 4, 1, false)
69 PieceOU::new(self, 5, 1, false)
70 PieceKI::new(self, 6, 1, false)
71 PieceGI::new(self, 7, 1, false)
72 PieceKE::new(self, 8, 1, false)
73 PieceKY::new(self, 9, 1, false)
74 PieceKA::new(self, 2, 2, false)
75 PieceHI::new(self, 8, 2, false)
77 PieceFU::new(self, i, 3, false)
80 PieceKY::new(self, 1, 9, true)
81 PieceKE::new(self, 2, 9, true)
82 PieceGI::new(self, 3, 9, true)
83 PieceKI::new(self, 4, 9, true)
84 PieceOU::new(self, 5, 9, true)
85 PieceKI::new(self, 6, 9, true)
86 PieceGI::new(self, 7, 9, true)
87 PieceKE::new(self, 8, 9, true)
88 PieceKY::new(self, 9, 9, true)
89 #PieceKA::new(self, 8, 8, true)
90 PieceHI::new(self, 2, 8, true)
92 PieceFU::new(self, i, 7, true)
98 # Handicapped game eliminating HI.
100 class HCHIBoard < Board
102 PieceKY::new(self, 1, 1, false)
103 PieceKE::new(self, 2, 1, false)
104 PieceGI::new(self, 3, 1, false)
105 PieceKI::new(self, 4, 1, false)
106 PieceOU::new(self, 5, 1, false)
107 PieceKI::new(self, 6, 1, false)
108 PieceGI::new(self, 7, 1, false)
109 PieceKE::new(self, 8, 1, false)
110 PieceKY::new(self, 9, 1, false)
111 PieceKA::new(self, 2, 2, false)
112 PieceHI::new(self, 8, 2, false)
114 PieceFU::new(self, i, 3, false)
117 PieceKY::new(self, 1, 9, true)
118 PieceKE::new(self, 2, 9, true)
119 PieceGI::new(self, 3, 9, true)
120 PieceKI::new(self, 4, 9, true)
121 PieceOU::new(self, 5, 9, true)
122 PieceKI::new(self, 6, 9, true)
123 PieceGI::new(self, 7, 9, true)
124 PieceKE::new(self, 8, 9, true)
125 PieceKY::new(self, 9, 9, true)
126 PieceKA::new(self, 8, 8, true)
127 #PieceHI::new(self, 2, 8, true)
129 PieceFU::new(self, i, 7, true)
135 # Handicapped game eliminating HI and KY.
137 class HCHIKYBoard < Board
139 PieceKY::new(self, 1, 1, false)
140 PieceKE::new(self, 2, 1, false)
141 PieceGI::new(self, 3, 1, false)
142 PieceKI::new(self, 4, 1, false)
143 PieceOU::new(self, 5, 1, false)
144 PieceKI::new(self, 6, 1, false)
145 PieceGI::new(self, 7, 1, false)
146 PieceKE::new(self, 8, 1, false)
147 PieceKY::new(self, 9, 1, false)
148 PieceKA::new(self, 2, 2, false)
149 PieceHI::new(self, 8, 2, false)
151 PieceFU::new(self, i, 3, false)
154 PieceKY::new(self, 1, 9, true)
155 PieceKE::new(self, 2, 9, true)
156 PieceGI::new(self, 3, 9, true)
157 PieceKI::new(self, 4, 9, true)
158 PieceOU::new(self, 5, 9, true)
159 PieceKI::new(self, 6, 9, true)
160 PieceGI::new(self, 7, 9, true)
161 PieceKE::new(self, 8, 9, true)
162 #PieceKY::new(self, 9, 9, true)
163 PieceKA::new(self, 8, 8, true)
164 #PieceHI::new(self, 2, 8, true)
166 PieceFU::new(self, i, 7, true)
172 # Handicapped game eliminating HI and KA.
174 class HC2PBoard < Board
176 PieceKY::new(self, 1, 1, false)
177 PieceKE::new(self, 2, 1, false)
178 PieceGI::new(self, 3, 1, false)
179 PieceKI::new(self, 4, 1, false)
180 PieceOU::new(self, 5, 1, false)
181 PieceKI::new(self, 6, 1, false)
182 PieceGI::new(self, 7, 1, false)
183 PieceKE::new(self, 8, 1, false)
184 PieceKY::new(self, 9, 1, false)
185 PieceKA::new(self, 2, 2, false)
186 PieceHI::new(self, 8, 2, false)
188 PieceFU::new(self, i, 3, false)
191 PieceKY::new(self, 1, 9, true)
192 PieceKE::new(self, 2, 9, true)
193 PieceGI::new(self, 3, 9, true)
194 PieceKI::new(self, 4, 9, true)
195 PieceOU::new(self, 5, 9, true)
196 PieceKI::new(self, 6, 9, true)
197 PieceGI::new(self, 7, 9, true)
198 PieceKE::new(self, 8, 9, true)
199 PieceKY::new(self, 9, 9, true)
200 #PieceKA::new(self, 8, 8, true)
201 #PieceHI::new(self, 2, 8, true)
203 PieceFU::new(self, i, 7, true)
209 # Handicapped game eliminating HI, KA and two KYs.
211 class HC4PBoard < Board
213 PieceKY::new(self, 1, 1, false)
214 PieceKE::new(self, 2, 1, false)
215 PieceGI::new(self, 3, 1, false)
216 PieceKI::new(self, 4, 1, false)
217 PieceOU::new(self, 5, 1, false)
218 PieceKI::new(self, 6, 1, false)
219 PieceGI::new(self, 7, 1, false)
220 PieceKE::new(self, 8, 1, false)
221 PieceKY::new(self, 9, 1, false)
222 PieceKA::new(self, 2, 2, false)
223 PieceHI::new(self, 8, 2, false)
225 PieceFU::new(self, i, 3, false)
228 #PieceKY::new(self, 1, 9, true)
229 PieceKE::new(self, 2, 9, true)
230 PieceGI::new(self, 3, 9, true)
231 PieceKI::new(self, 4, 9, true)
232 PieceOU::new(self, 5, 9, true)
233 PieceKI::new(self, 6, 9, true)
234 PieceGI::new(self, 7, 9, true)
235 PieceKE::new(self, 8, 9, true)
236 #PieceKY::new(self, 9, 9, true)
237 #PieceKA::new(self, 8, 8, true)
238 #PieceHI::new(self, 2, 8, true)
240 PieceFU::new(self, i, 7, true)
246 # Handicapped game eliminating HI, KA, two KYs and two KE.
248 class HC6PBoard < Board
250 PieceKY::new(self, 1, 1, false)
251 PieceKE::new(self, 2, 1, false)
252 PieceGI::new(self, 3, 1, false)
253 PieceKI::new(self, 4, 1, false)
254 PieceOU::new(self, 5, 1, false)
255 PieceKI::new(self, 6, 1, false)
256 PieceGI::new(self, 7, 1, false)
257 PieceKE::new(self, 8, 1, false)
258 PieceKY::new(self, 9, 1, false)
259 PieceKA::new(self, 2, 2, false)
260 PieceHI::new(self, 8, 2, false)
262 PieceFU::new(self, i, 3, false)
265 #PieceKY::new(self, 1, 9, true)
266 #PieceKE::new(self, 2, 9, true)
267 PieceGI::new(self, 3, 9, true)
268 PieceKI::new(self, 4, 9, true)
269 PieceOU::new(self, 5, 9, true)
270 PieceKI::new(self, 6, 9, true)
271 PieceGI::new(self, 7, 9, true)
272 #PieceKE::new(self, 8, 9, true)
273 #PieceKY::new(self, 9, 9, true)
274 #PieceKA::new(self, 8, 8, true)
275 #PieceHI::new(self, 2, 8, true)
277 PieceFU::new(self, i, 7, true)
283 # Handicapped game eliminating HI, KA, two KYs, two KE and two GIs
285 class HC8PBoard < Board
287 PieceKY::new(self, 1, 1, false)
288 PieceKE::new(self, 2, 1, false)
289 PieceGI::new(self, 3, 1, false)
290 PieceKI::new(self, 4, 1, false)
291 PieceOU::new(self, 5, 1, false)
292 PieceKI::new(self, 6, 1, false)
293 PieceGI::new(self, 7, 1, false)
294 PieceKE::new(self, 8, 1, false)
295 PieceKY::new(self, 9, 1, false)
296 PieceKA::new(self, 2, 2, false)
297 PieceHI::new(self, 8, 2, false)
299 PieceFU::new(self, i, 3, false)
302 #PieceKY::new(self, 1, 9, true)
303 #PieceKE::new(self, 2, 9, true)
304 #PieceGI::new(self, 3, 9, true)
305 PieceKI::new(self, 4, 9, true)
306 PieceOU::new(self, 5, 9, true)
307 PieceKI::new(self, 6, 9, true)
308 #PieceGI::new(self, 7, 9, true)
309 #PieceKE::new(self, 8, 9, true)
310 #PieceKY::new(self, 9, 9, true)
311 #PieceKA::new(self, 8, 8, true)
312 #PieceHI::new(self, 2, 8, true)
314 PieceFU::new(self, i, 7, true)
320 # Handicapped game eliminating HI, KA, two KYs, two KE, two GIs and two KIs.
322 class HC10PBoard < Board
324 PieceKY::new(self, 1, 1, false)
325 PieceKE::new(self, 2, 1, false)
326 PieceGI::new(self, 3, 1, false)
327 PieceKI::new(self, 4, 1, false)
328 PieceOU::new(self, 5, 1, false)
329 PieceKI::new(self, 6, 1, false)
330 PieceGI::new(self, 7, 1, false)
331 PieceKE::new(self, 8, 1, false)
332 PieceKY::new(self, 9, 1, false)
333 PieceKA::new(self, 2, 2, false)
334 PieceHI::new(self, 8, 2, false)
336 PieceFU::new(self, i, 3, false)
339 #PieceKY::new(self, 1, 9, true)
340 #PieceKE::new(self, 2, 9, true)
341 #PieceGI::new(self, 3, 9, true)
342 #PieceKI::new(self, 4, 9, true)
343 PieceOU::new(self, 5, 9, true)
344 #PieceKI::new(self, 6, 9, true)
345 #PieceGI::new(self, 7, 9, true)
346 #PieceKE::new(self, 8, 9, true)
347 #PieceKY::new(self, 9, 9, true)
348 #PieceKA::new(self, 8, 8, true)
349 #PieceHI::new(self, 2, 8, true)
351 PieceFU::new(self, i, 7, true)