]> Shamusworld >> Repos - warehouse-man-deluxe/blob - src/boards.cpp
Added MOAR boards.
[warehouse-man-deluxe] / src / boards.cpp
1 //
2 // boards.cpp: Actual playable (we hope!) game boards
3 //
4 // by James Hammons
5 // © 2014 Underground Software
6 //
7 // JLH = James Hammons <jlhamm@acm.org>
8 //
9 // Who  When        What
10 // ---  ----------  ------------------------------------------------------------
11 // JLH  03/03/2014  Created this file
12 //
13
14 //
15 // We use anonymous structs to create these, to keep things simple. :-)
16 //
17 // Legend:
18 //   @ = Wall
19 //     = Space
20 //   X = Box
21 //   . = Spot to move box to
22 //   + = Spot to move box to, that already has a box on it
23 //   o = Player initial position
24 //   * = Player initial position, that has a spot under it
25 //   - = Do not draw anything here
26 //
27
28 static const struct {
29         unsigned int width, height;
30         unsigned char state[5 * 5 + 40 + 1]; } board001 = { 5, 5,
31 //      const char * state; } board001 = { 5, 5,
32         "@@@@@"
33         "@o  @"
34         "@ X @"
35         "@ . @"
36         "@@@@@"
37         "Neophyte"
38 };
39
40
41 static const struct {
42         unsigned int width, height;
43         unsigned char state[7 * 7 + 40 + 1]; } board002 = { 7, 7,
44         "@@@@@@@"
45         "@     @"
46         "@ X.X @"
47         "@ .@. @"
48         "@ X.X @"
49         "@o    @"
50         "@@@@@@@"
51         "A Little Bit Harder..."
52 };
53
54
55 static const struct {
56         unsigned int width, height;
57         unsigned char state[7 * 5 + 40 + 1]; } board003 = { 7, 5,
58         "@@@@@@@"
59         "@. X .@"
60         "@ XoX @"
61         "@. X .@"
62         "@@@@@@@"
63         "Boxed In"
64 };
65
66
67 static const struct {
68         unsigned int width, height;
69         unsigned char state[8 * 5 + 40 + 1]; } board004 = { 8, 5,
70         "@@@@@@@@"
71         "@  ..X @"
72         "@ Xo X @"
73         "@ X..  @"
74         "@@@@@@@@"
75         "Edging Out"
76 };
77
78
79 static const struct {
80         unsigned int width, height;
81         unsigned char state[8 * 7 + 40 + 1]; } board005 = { 8, 7,
82         "-@@@@@@@"
83         "-@     @"
84         "@@ .X. @"
85         "@o X X @"
86         "@  .X. @"
87         "@@     @"
88         "-@@@@@@@"
89         "Rotation"
90 };
91
92
93 static const struct {
94         unsigned int width, height;
95         unsigned char state[8 * 8 + 40 + 1]; } board006 = { 8, 8,
96         "-@@@@@--"
97         "@@   @@@"
98         "@  @   @"
99         "@ @  @ @"
100         "@ X X@ @"
101         "@.@    @"
102         "@. o@@@@"
103         "@@@@@---"
104         "Headless Chicken"
105 };
106
107
108 static const struct {
109         unsigned int width, height;
110         unsigned char state[8 * 6 + 40 + 1]; } board007 = { 8, 6,
111         "@@@@@@@@"
112         "@ X. X.@"
113         "@o.X X.@"
114         "@ X. X.@"
115         "@ .X X.@"
116         "@@@@@@@@"
117         "Two Lines"
118 };
119
120
121 static const struct {
122         unsigned int width, height;
123         unsigned char state[10 * 8 + 40 + 1]; } board008 = { 10, 8,
124         "---@@@@@@@"
125         "--@@  @ o@"
126         "--@   @  @"
127         "--@X X X @"
128         "--@ X@@  @"
129         "@@@ X @ @@"
130         "@.....  @-"
131         "@@@@@@@@@-"
132         "Easy Does It"
133 };
134
135
136 static const struct {
137         unsigned int width, height;
138         unsigned char state[9 * 7 + 40 + 1]; } board009 = { 9, 7,
139         "@@@@@@@@@"
140         "@   +   @"
141         "@ X.@.X @"
142         "@  X.X  @"
143         "@@@.X.@@@"
144         "--@@o@@--"
145         "---@@@---"
146         "Claustrophobia"
147 };
148
149
150 static const struct {
151         unsigned int width, height;
152         unsigned char state[7 * 7 + 40 + 1]; } board010 = { 7, 7,
153         "--@@@@@"
154         "@@@   @"
155         "@o .X.@"
156         "@  X X@"
157         "@@@.X.@"
158         "--@   @"
159         "--@@@@@"
160         "Tight Squeeze"
161 };
162
163
164 static const struct {
165         unsigned int width, height;
166         unsigned char state[10 * 8 + 40 + 1]; } board011 = { 10, 8,
167         "--@@@@----"
168         "--@  @----"
169         "@@@  @@@@@"
170         "@  ..X   @"
171         "@oX.. X  @"
172         "@@@ X@@@@@"
173         "--@  @----"
174         "--@@@@----"
175         "Crossroads"
176 };
177
178
179 static const struct {
180         unsigned int width, height;
181         unsigned char state[10 * 6 + 40 + 1]; } board012 = { 10, 6,
182         "-@@@@@@@@@"
183         "@@       @"
184         "@   @X@X @"
185         "@ XX  .X.@"
186         "@ o@@@...@"
187         "@@@@-@@@@@"
188         "In The Corner"
189 };
190
191
192 static const struct {
193         unsigned int width, height;
194         unsigned char state[9 * 7 + 40 + 1]; } board013 = { 9, 7,
195         "---@@@@@-"
196         "@@@@   @@"
197         "@ X X X @"
198         "@o......@"
199         "@ X X X @"
200         "@@@@   @@"
201         "---@@@@@-"
202         "Get In Line"
203 };
204
205
206 static const struct {
207         unsigned int width, height;
208         unsigned char state[8 * 7 + 40 + 1]; } board014 = { 8, 7,
209         "--@@@@@-"
210         "@@@  o@-"
211         "@  X. @@"
212         "@  .X. @"
213         "@@@ +X @"
214         "--@   @@"
215         "--@@@@@-"
216         "Tighter Squeeze"
217 };
218
219
220 static const struct {
221         unsigned int width, height;
222         unsigned char state[8 * 7 + 40 + 1]; } board015 = { 8, 7,
223         "@@@@@@@-"
224         "@ .X. @@"
225         "@ X X  @"
226         "@ .X.  @"
227         "@ @@@ @@"
228         "@  o  @-"
229         "@@@@@@@-"
230         "Rotation #2"
231 };
232
233
234 static const struct {
235         unsigned int width, height;
236         unsigned char state[10 * 7 + 40 + 1]; } board016 = { 10, 7,
237         "---@@@@@@-"
238         "-@@@    @-"
239         "@@. X@@ @@"
240         "@..X X  o@"
241         "@.. X X @@"
242         "@@@@@@  @-"
243         "-----@@@@-"
244         "Up Against A Wall"
245 };
246
247
248 static const struct {
249         unsigned int width, height;
250         unsigned char state[7 * 7 + 40 + 1]; } board017 = { 7, 7,
251         "-@@@@@-"
252         "@@ . @@"
253         "@ X.X @"
254         "@  .Xo@"
255         "@ X.X @"
256         "@@ . @@"
257         "-@@@@@-"
258         "Lizard Eye"
259 };
260
261
262 static const struct {
263         unsigned int width, height;
264         unsigned char state[12 * 6 + 40 + 1]; } board018 = { 12, 6,
265         "-@@@@@@@@@@-"
266         "@@   @o   @@"
267         "@ X ....X  @"
268         "@  X@@@@ X @"
269         "@   @--@  @@"
270         "@@@@@--@@@@-"
271         "Two Rooms"
272 };
273
274
275 static const struct {
276         unsigned int width, height;
277         unsigned char state[10 * 7 + 40 + 1]; } board019 = { 10, 7,
278         "-@@@@@@@--"
279         "-@     @@@"
280         "@@X@@@   @"
281         "@ o X  X @"
282         "@ ..@ X @@"
283         "@@..@   @-"
284         "-@@@@@@@@-"
285         "Untitled1"
286 };
287
288
289 static const struct {
290         unsigned int width, height;
291         unsigned char state[8 * 6 + 40 + 1]; } board020 = { 8, 6,
292         "---@@@@@"
293         "@@@@  .@"
294         "@   X +@"
295         "@ XX X.@"
296         "@@o@@..@"
297         "-@@@@@@@"
298         "Untitled2"
299 };
300
301
302 static const struct {
303         unsigned int width, height;
304         unsigned char state[7 * 7 + 40 + 1]; } board021 = { 7, 7,
305         "@@@@@@@"
306         "@.   .@"
307         "@ X@X @"
308         "@.XoX.@"
309         "@ X@X @"
310         "@.   .@"
311         "@@@@@@@"
312         "Cornered"
313 };
314
315
316 static const struct {
317         unsigned int width, height;
318         unsigned char state[7 * 7 + 40 + 1]; } board022 = { 7, 7,
319         "@@@@@@@"
320         "@  .  @"
321         "@ X@X @"
322         "@. + .@"
323         "@ X@X @"
324         "@  .o @"
325         "@@@@@@@"
326         "Diamond"
327 };
328
329
330 static const struct {
331         unsigned int width, height;
332         unsigned char state[9 * 7 + 40 + 1]; } board023 = { 9, 7,
333         "@@@@@@@@-"
334         "@    o @-"
335         "@ X..  @@"
336         "@@@..@  @"
337         "--@@XXX @"
338         "---@    @"
339         "---@@@@@@"
340         "Untitled3"
341 };
342
343
344 static const struct {
345         unsigned int width, height;
346         unsigned char state[8 * 8 + 40 + 1]; } board024 = { 8, 8,
347         "@@@@@@@@"
348         "@   o  @"
349         "@ XX@  @"
350         "@@  X @@"
351         "-@.X  @-"
352         "-@@. @@-"
353         "--@..@--"
354         "--@@@@--"
355         "Untitled4"
356 };
357
358
359 static const struct {
360         unsigned int width, height;
361         unsigned char state[8 * 8 + 40 + 1]; } board025 = { 8, 8,
362         "-@@@@@@-"
363         "-@. ..@-"
364         "-@. X.@-"
365         "@@@  X@@"
366         "@ X  X @"
367         "@ @X@@ @"
368         "@   o  @"
369         "@@@@@@@@"
370         "Untitled5"
371 };
372
373
374 static const struct {
375         unsigned int width, height;
376         unsigned char state[7 * 7 + 40 + 1]; } board026 = { 7, 7,
377         "-@@@@@@"
378         "@@ . o@"
379         "@ X X @"
380         "@. + .@"
381         "@ X X @"
382         "@@ . @@"
383         "-@@@@@-"
384         "Untitled6"
385 };
386
387
388 static const struct {
389         unsigned int width, height;
390         unsigned char state[8 * 7 + 40 + 1]; } board027 = { 8, 7,
391         "--@@@@@@"
392         "--@    @"
393         "@@@XXX @"
394         "@o X.. @"
395         "@ X...@@"
396         "@@@@  @-"
397         "---@@@@-"
398         "Untitled7"
399 };
400
401
402 static const struct {
403         unsigned int width, height;
404         unsigned char state[12 * 5 + 40 + 1]; } board028 = { 12, 5,
405         "@@@@@@@@@@@@"
406         "@    ... X @"
407         "@ XXX+++ Xo@"
408         "@    ... X @"
409         "@@@@@@@@@@@@"
410         "Untitled8"
411 };
412
413
414 static const struct {
415         unsigned int width, height;
416         unsigned char state[8 * 7 + 40 + 1]; } board029 = { 8, 7,
417         "@@@@@@@@"
418         "@  @   @"
419         "@ X..X @"
420         "@oX.+ @@"
421         "@ X..X @"
422         "@  @   @"
423         "@@@@@@@@"
424         "Untitled9"
425 };
426
427
428 static const struct {
429         unsigned int width, height;
430         unsigned char state[11 * 9 + 40 + 1]; } board030 = { 11, 9,
431         "--@@@@@----"
432         "--@   @----"
433         "@@@X.X@@@@@"
434         "@   . X   @"
435         "@ @@X@@ o @"
436         "@   . @@@@@"
437         "@@@ . @----"
438         "--@   @----"
439         "--@@@@@----"
440         "Untitled10"
441 };
442
443
444 static const struct {
445         unsigned int width, height;
446         unsigned char state[11 * 7 + 40 + 1]; } board031 = { 11, 7,
447         "---@@@@@@@@"
448         "@@@@    . @"
449         "@  X X X. @"
450         "@  .@@@@.@@"
451         "@ X.X X o@-"
452         "@  .  @@@@-"
453         "@@@@@@@----"
454         "Untitled11"
455 };
456
457
458 static const struct {
459         unsigned int width, height;
460         unsigned char state[8 * 7 + 40 + 1]; } board032 = { 8, 7,
461         "-@@@@@--"
462         "-@   @@@"
463         "@@X@o .@"
464         "@  XX@.@"
465         "@ @X  .@"
466         "@     .@"
467         "@@@@@@@@"
468         "Untitled12"
469 };
470
471
472 static const struct {
473         unsigned int width, height;
474         unsigned char state[9 * 8 + 40 + 1]; } board033 = { 9, 8,
475         "---@@@@@-"
476         "@@@@.  @@"
477         "@ X.X.  @"
478         "@oX@ @X @"
479         "@ X. .  @"
480         "@@@@X@X @"
481         "--@. .  @"
482         "--@@@@@@@"
483         "Untitled13"
484 };
485
486
487 static const struct {
488         unsigned int width, height;
489         unsigned char state[9 * 8 + 40 + 1]; } board034 = { 9, 8,
490         "---@@@@@-"
491         "---@ o @-"
492         "---@XXX@-"
493         "@@@@   @-"
494         "@   .@X@@"
495         "@ X.X. .@"
496         "@  @.@.@@"
497         "@@@@@@@@-"
498         "Untitled14"
499 };
500
501
502 static const struct {
503         unsigned int width, height;
504         unsigned char state[9 * 8 + 40 + 1]; } board035 = { 9, 8,
505         "@@@@@@---"
506         "@    @---"
507         "@ X  @@@@"
508         "@ X+..+ @"
509         "@ +..+X @"
510         "@@@@  X @"
511         "---@ o  @"
512         "---@@@@@@"
513         "Untitled15"
514 };
515
516
517 static const struct {
518         unsigned int width, height;
519         unsigned char state[7 * 6 + 40 + 1]; } board036 = { 7, 6,
520         "@@@@@@@"
521         "@  +  @"
522         "@ .+. @"
523         "@ XXX @"
524         "@ o.  @"
525         "@@@@@@@"
526         "Untitled16"
527 };
528
529
530 static const struct {
531         unsigned int width, height;
532         unsigned char state[8 * 7 + 40 + 1]; } board037 = { 8, 7,
533         "@@@@@@@@"
534         "@..    @"
535         "@..X Xo@"
536         "@X@XXX@@"
537         "@..X X @"
538         "@..    @"
539         "@@@@@@@@"
540         "Untitled17"
541 };
542
543
544 static const struct {
545         unsigned int width, height;
546         unsigned char state[9 * 8 + 40 + 1]; } board038 = { 9, 8,
547         "---@@@@@@"
548         "@@@@.  o@"
549         "@  XXX  @"
550         "@.@@.@@.@"
551         "@   X   @"
552         "@  X.@ @@"
553         "@@@@   @-"
554         "---@@@@@-"
555         "Untitled18"
556 };
557
558
559 static const struct {
560         unsigned int width, height;
561         unsigned char state[12 * 7 + 40 + 1]; } board039 = { 12, 7,
562         "--@@@@@@@@@@"
563         "@@@   .    @"
564         "@   @@X@@  @"
565         "@ oX. . .X@@"
566         "@@ X@@X@@ @ "
567         "-@    .   @ "
568         "-@@@@@@@@@@ "
569         "Untitled19"
570 };
571
572
573 static const struct {
574         unsigned int width, height;
575         unsigned char state[9 * 7 + 40 + 1]; } board040 = { 9, 7,
576         "@@@@@@@@@"
577         "@.  .  .@"
578         "@@XXXXX@@"
579         "@..o+ ..@"
580         "@@XXXXX@@"
581         "@.  .  .@"
582         "@@@@@@@@@"
583         "Untitled20"
584 };
585
586
587 static const struct {
588         unsigned int width, height;
589         unsigned char state[8 * 7 + 40 + 1]; } board041 = { 8, 7,
590         "@@@@@---"
591         "@   @---"
592         "@  X@@@@"
593         "@.+*+  @"
594         "@ XX+  @"
595         "@   .  @"
596         "@@@@@@@@"
597         "Untitled21"
598 };
599
600
601 static const struct {
602         unsigned int width, height;
603         unsigned char state[9 * 7 + 40 + 1]; } board042 = { 9, 7,
604         "-@@@@@@@-"
605         "@@.X X.@@"
606         "@.+ X +.@"
607         "@  XoX  @"
608         "@.+ X +.@"
609         "@@.X X.@@"
610         "-@@@@@@@-"
611         "Untitled22"
612 };
613
614
615 const void * boards[] = {
616         &board001, &board002, &board003, &board004, &board005, &board006, &board007, &board008,
617         &board009, &board010, &board011, &board012, &board013, &board014, &board015, &board016,
618         &board017, &board018, &board019, &board020, &board021, &board022, &board023, &board024,
619         &board025, &board026, &board027, &board028, &board029, &board030, &board031, &board032,
620         &board033, &board034, &board035, &board036, &board037, &board038, &board039, &board040,
621         &board041, &board042, //&board043, &board044, &board045, &board046, &board047, &board048,
622 //      &board049, &board050, &board051, &board052, &board053, &board054, &board055, &board056,
623 //      &board057, &board058, &board059, &board060, &board061, &board062, &board063, &board064,
624 //      &board065, &board066, &board067, &board068, &board069, &board070, &board071, &board072,
625 //      &board073, &board074, &board075, &board076, &board077, &board078, &board079, &board080,
626 //      &board081, &board082, &board083, &board084, &board085, &board086, &board087, &board088,
627 //      &board089, &board090, &board091, &board092, &board093, &board094, &board095, &board096,
628 //      &board097, &board098, &board099, &board100, &board101, &board102, &board103, &board104,
629 };
630