]> Shamusworld >> Repos - warehouse-man-deluxe/blob - src/boards.cpp
Added board titles.
[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 //   - = Do not draw anything here
25 //
26
27 static const struct {
28         unsigned int width, height;
29         unsigned char state[5 * 5 + 40 + 1]; } board001 = { 5, 5,
30 //      const char * state; } board001 = { 5, 5,
31         "@@@@@"
32         "@o  @"
33         "@ X @"
34         "@ . @"
35         "@@@@@"
36         "Neophyte"
37 };
38
39
40 static const struct {
41         unsigned int width, height;
42         unsigned char state[7 * 7 + 40 + 1]; } board002 = { 7, 7,
43         "@@@@@@@"
44         "@     @"
45         "@ X.X @"
46         "@ .@. @"
47         "@ X.X @"
48         "@o    @"
49         "@@@@@@@"
50         "A Little Bit Harder..."
51 };
52
53
54 static const struct {
55         unsigned int width, height;
56         unsigned char state[7 * 5 + 40 + 1]; } board003 = { 7, 5,
57         "@@@@@@@"
58         "@. X .@"
59         "@ XoX @"
60         "@. X .@"
61         "@@@@@@@"
62         "Boxed In"
63 };
64
65
66 static const struct {
67         unsigned int width, height;
68         unsigned char state[8 * 5 + 40 + 1]; } board004 = { 8, 5,
69         "@@@@@@@@"
70         "@  ..X @"
71         "@ Xo X @"
72         "@ X..  @"
73         "@@@@@@@@"
74         "Edging Out"
75 };
76
77
78 static const struct {
79         unsigned int width, height;
80         unsigned char state[8 * 7 + 40 + 1]; } board005 = { 8, 7,
81         "-@@@@@@@"
82         "-@     @"
83         "@@ .X. @"
84         "@o X X @"
85         "@  .X. @"
86         "@@     @"
87         "-@@@@@@@"
88         "Rotation"
89 };
90
91
92 static const struct {
93         unsigned int width, height;
94         unsigned char state[8 * 8 + 40 + 1]; } board006 = { 8, 8,
95         "-@@@@@--"
96         "@@   @@@"
97         "@  @   @"
98         "@ @  @ @"
99         "@ X X@ @"
100         "@.@    @"
101         "@. o@@@@"
102         "@@@@@---"
103         "Headless Chicken"
104 };
105
106
107 static const struct {
108         unsigned int width, height;
109         unsigned char state[8 * 6 + 40 + 1]; } board007 = { 8, 6,
110         "@@@@@@@@"
111         "@ X. X.@"
112         "@o.X X.@"
113         "@ X. X.@"
114         "@ .X X.@"
115         "@@@@@@@@"
116         "Two Lines"
117 };
118
119
120 static const struct {
121         unsigned int width, height;
122         unsigned char state[10 * 8 + 40 + 1]; } board008 = { 10, 8,
123         "---@@@@@@@"
124         "--@@  @ o@"
125         "--@   @  @"
126         "--@X X X @"
127         "--@ X@@  @"
128         "@@@ X @ @@"
129         "@.....  @-"
130         "@@@@@@@@@-"
131         "Easy Does It"
132 };
133
134
135 static const struct {
136         unsigned int width, height;
137         unsigned char state[9 * 7 + 40 + 1]; } board009 = { 9, 7,
138         "@@@@@@@@@"
139         "@   +   @"
140         "@ X.@.X @"
141         "@  X.X  @"
142         "@@@.X.@@@"
143         "--@@o@@--"
144         "---@@@---"
145         "Claustrophobia"
146 };
147
148
149 static const struct {
150         unsigned int width, height;
151         unsigned char state[7 * 7 + 40 + 1]; } board010 = { 7, 7,
152         "--@@@@@"
153         "@@@   @"
154         "@o .X.@"
155         "@  X X@"
156         "@@@.X.@"
157         "--@   @"
158         "--@@@@@"
159         "Tight Squeeze"
160 };
161
162
163 static const struct {
164         unsigned int width, height;
165         unsigned char state[10 * 8 + 40 + 1]; } board011 = { 10, 8,
166         "--@@@@----"
167         "--@  @----"
168         "@@@  @@@@@"
169         "@  ..X   @"
170         "@oX.. X  @"
171         "@@@ X@@@@@"
172         "--@  @----"
173         "--@@@@----"
174         "Crossroads"
175 };
176
177
178 static const struct {
179         unsigned int width, height;
180         unsigned char state[10 * 6 + 40 + 1]; } board012 = { 10, 6,
181         "-@@@@@@@@@"
182         "@@       @"
183         "@   @X@X @"
184         "@ XX  .X.@"
185         "@ o@@@...@"
186         "@@@@-@@@@@"
187         "In The Corner"
188 };
189
190
191 static const struct {
192         unsigned int width, height;
193         unsigned char state[9 * 7 + 40 + 1]; } board013 = { 9, 7,
194         "---@@@@@-"
195         "@@@@   @@"
196         "@ X X X @"
197         "@o......@"
198         "@ X X X @"
199         "@@@@   @@"
200         "---@@@@@-"
201         "Get In Line"
202 };
203
204
205 static const struct {
206         unsigned int width, height;
207         unsigned char state[8 * 7 + 40 + 1]; } board014 = { 8, 7,
208         "--@@@@@-"
209         "@@@  o@-"
210         "@  X. @@"
211         "@  .X. @"
212         "@@@ +X @"
213         "--@   @@"
214         "--@@@@@-"
215         "Tighter Squeeze"
216 };
217
218
219 static const struct {
220         unsigned int width, height;
221         unsigned char state[8 * 7 + 40 + 1]; } board015 = { 8, 7,
222         "@@@@@@@-"
223         "@ .X. @@"
224         "@ X X  @"
225         "@ .X.  @"
226         "@ @@@ @@"
227         "@  o  @-"
228         "@@@@@@@-"
229         "Rotation #2"
230 };
231
232
233 static const struct {
234         unsigned int width, height;
235         unsigned char state[10 * 7 + 40 + 1]; } board016 = { 10, 7,
236         "---@@@@@@-"
237         "-@@@    @-"
238         "@@. X@@ @@"
239         "@..X X  o@"
240         "@.. X X @@"
241         "@@@@@@  @-"
242         "-----@@@@-"
243         "Up Against A Wall"
244 };
245
246
247 static const struct {
248         unsigned int width, height;
249         unsigned char state[7 * 7 + 40 + 1]; } board017 = { 7, 7,
250         "-@@@@@-"
251         "@@ . @@"
252         "@ X.X @"
253         "@  .Xo@"
254         "@ X.X @"
255         "@@ . @@"
256         "-@@@@@-"
257         "Lizard Eye"
258 };
259
260
261 static const struct {
262         unsigned int width, height;
263         unsigned char state[12 * 6 + 40 + 1]; } board018 = { 12, 6,
264         "-@@@@@@@@@@-"
265         "@@   @o   @@"
266         "@ X ....X  @"
267         "@  X@@@@ X @"
268         "@   @--@  @@"
269         "@@@@@--@@@@-"
270         "Two Rooms"
271 };
272
273
274 const void * boards[] = {
275         &board001, &board002, &board003, &board004, &board005, &board006, &board007, &board008,
276         &board009, &board010, &board011, &board012, &board013, &board014, &board015, &board016,
277         &board017, &board018, //&board019, &board020, &board021, &board022, &board023, &board024,
278 };
279