Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
zmx0142857
GitHub Repository: zmx0142857/mini-games
Path: blob/master/c/sokoban/0.2/level.c
362 views
1
#include "Sokoban.h"
2
3
//�ؿ�1~14
4
void Lv1()
5
{
6
int i;
7
for(i=3; i<=14; i++) Map[3][i] = Map[11][i] = WALL;
8
for(i=4; i<=10; i++) Map[i][3] = Map[i][14] = WALL;
9
10
Hero_r = 7;
11
Hero_c = 6;
12
13
Map[7][8] = BOX;
14
15
Map[7][10] = MapCopy[7][10] = STAR;
16
17
Door_r = 5;
18
Door_c = 11;
19
}
20
21
void Lv2()
22
{
23
int i;
24
for(i=4; i<=13; i++) Map[2][i] = WALL;
25
for(i=4; i<=9; i++) Map[11][i] = WALL;
26
for(i=9; i<=13; i++) Map[8][i] = WALL;
27
for(i=3; i<=11; i++) Map[i][4] = WALL;
28
for(i=8; i<=11; i++) Map[i][9] = WALL;
29
for(i=2; i<=8; i++) Map[i][13] = WALL;
30
31
Hero_r = 9;
32
Hero_c = 7;
33
34
Map[6][6] = BOX;
35
Map[7][9] = BOX;
36
37
Map[4][6] = MapCopy[4][6] = STAR;
38
Map[4][11] = MapCopy[4][11] = STAR;
39
40
Door_r = 9;
41
Door_c = 6;
42
}
43
44
void Lv3()
45
{
46
int i;
47
for(i=6; i<=9; i++) Map[3][i] = WALL;
48
for(i=9; i<=11; i++) Map[8][i] = WALL;
49
for(i=6; i<=9; i++) Map[9][i] = WALL;
50
for(i=3; i<=9; i++) Map[i][6] = WALL;
51
for(i=5; i<=8; i++) Map[i][11] = WALL;
52
53
Map[4][9] = WALL;
54
Map[5][9] = WALL;
55
Map[5][10] = WALL;
56
57
Hero_r = 6;
58
Hero_c = 8;
59
60
Map[6][7] = BOX_ON_STAR;
61
Map[7][9] = BOX;
62
63
Map[4][8] = MapCopy[4][8] = STAR;
64
MapCopy[6][7] = STAR;
65
66
Door_r = 8;
67
Door_c = 7;
68
}
69
70
void Lv4()
71
{
72
int i;
73
for(i=6; i<=9; i++) Map[3][i] = WALL;
74
for(i=4; i<=6; i++) Map[4][i] = WALL;
75
for(i=9; i<=12; i++) Map[4][i] = WALL;
76
for(i=4; i<=12; i++) Map[8][i] = WALL;
77
for(i=5; i<=8; i++) Map[i][4] = WALL;
78
for(i=5; i<=8; i++) Map[i][12] = WALL;
79
Map[6][6] = WALL;
80
Map[6][9] = WALL;
81
Map[7][9] = WALL;
82
83
Hero_r = 7;
84
Hero_c = 10;
85
86
Map[6][10] = BOX;
87
Map[5][10] = BOX;
88
89
Map[7][6] = MapCopy[7][6] = STAR;
90
Map[7][8] = MapCopy[7][8] = STAR;
91
92
Door_r = 4;
93
Door_c = 7;
94
}
95
96
void Lv5()
97
{
98
int i;
99
for(i=3; i<=14; i++) Map[4][i] = (i!=9);
100
for(i=8; i<=10; i++) Map[5][i] = WALL;
101
for(i=7; i<=14; i++) Map[8][i] = WALL;
102
for(i=3; i<=7; i++) Map[9][i] = WALL;
103
for(i=4; i<=9; i++) Map[i][3] = WALL;
104
for(i=4; i<=8; i++) Map[i][14] = WALL;
105
Map[6][12] = WALL;
106
Map[7][7] = WALL;
107
108
Hero_r = 6;
109
Hero_c = 13;
110
111
for(i=8; i<=10; i++) Map[7][i] = MapCopy[7][i] = STAR;
112
113
Map[6][5] = BOX;
114
Map[6][6] = BOX;
115
Map[7][5] = BOX;
116
117
Door_r = 6;
118
Door_c = 5;
119
}
120
121
void Lv6()
122
{
123
int i;
124
for(i=6; i<=9; i++) Map[2][i] = WALL;
125
for(i=10; i<=12; i++) Map[6][i] = Map[9][i] = WALL;
126
for(i=7; i<=10; i++) Map[10][i] = WALL;
127
for(i=2; i<=6; i++) Map[i][6] = WALL;
128
for(i=6; i<=10; i++) Map[i][7] = WALL;
129
for(i=6; i<=9; i++) Map[i][12] = WALL;
130
Map[3][9] = WALL;
131
Map[3][10] = WALL;
132
Map[4][10] = WALL;
133
Map[5][10] = WALL;
134
135
Hero_r = 4;
136
Hero_c = 8;
137
138
Map[6][8] = BOX;
139
Map[5][9] = BOX;
140
Map[7][9] = BOX;
141
142
for(i=3; i<=5; i++) Map[i][7] = MapCopy[i][7] = STAR;
143
144
Door_r = 8;
145
Door_c = 10;
146
}
147
148
void Lv7()
149
{
150
int i;
151
for(i=2; i<=5; i++) Map[4][i] = WALL;
152
for(i=5; i<=8; i++) Map[i][2] = Map[i][16] = WALL;
153
for(i=2; i<=16; i++) Map[8][i] = WALL;
154
for(i=5; i<=16; i++) Map[5][i] = WALL;
155
156
Hero_r=6;
157
Hero_c=14;
158
159
for(i=4; i<=12; i+=2) Map[6][i] = BOX;
160
161
for(i=4; i<=8; i++) Map[7][i] = MapCopy[7][i] = STAR;
162
163
Door_r=5;
164
Door_c=3;
165
}
166
167
void Lv8()
168
{
169
int i,j;
170
for(i=5; i<=8; i++) Map[3][i] = WALL;
171
for(i=4; i<=8; i++){ Map[6][i] = (i!=7);
172
Map[9][i] = WALL;
173
}
174
for(i=3; i<=5; i++) Map[i][5] = WALL;
175
Map[7][4] = WALL;
176
Map[8][4] = WALL;
177
178
Hero_r = 4;
179
Hero_c = 8;
180
181
Map[5][7] = BOX;
182
Map[7][7] = BOX;
183
184
//�Գƴ���
185
for(i=3; i<=9; i++)
186
for(j=4; j<=8; j++)
187
Map[i][17-j] = Map[i][j];
188
189
Map[7][8] = MapCopy[7][8] = STAR;
190
Map[7][9] = MapCopy[7][9] = STAR;
191
Map[8][8] = MapCopy[8][8] = STAR;
192
Map[8][9] = MapCopy[8][9] = STAR;
193
194
Door_r = 4;
195
Door_c = 9;
196
}
197
198
void Lv9()
199
{
200
int i,j;
201
for(i=5; i<=8; i++) Map[3][i] = WALL;
202
for(i=4; i<=6; i++) Map[i][5] = WALL;
203
204
Hero_r = 4;
205
Hero_c = 6;
206
207
Map[5][8] = BOX;
208
Map[6][7] = BOX;
209
210
Map[5][7] = MapCopy[5][7] = STAR;
211
Map[6][8] = MapCopy[6][8] = STAR;
212
213
//�Գƴ���
214
for(i=3; i<=6; i++)
215
{
216
for(j=5; j<=8; j++)
217
{
218
Map[i][17-j] = Map[13-i][j] = Map[13-i][17-j] = Map[i][j];
219
if(Map[i][j] == STAR)
220
MapCopy[i][17-j] = MapCopy[13-i][j] = MapCopy[13-i][17-j] = MapCopy[i][j];
221
}
222
}
223
224
Door_r=9;
225
Door_c=11;
226
}
227
228
void Lv10()
229
{
230
int i;
231
for(i=6; i<=9; i++) Map[3][i] = WALL;
232
for(i=2; i<=6; i++) Map[4][i] = WALL;
233
for(i=9; i<=15; i++) Map[5][i] = WALL;
234
for(i=1; i<=14; i++) Map[9][i] = (i!=8 && i!=9 && i!=11);
235
for(i=7; i<=10; i++) Map[10][i] = WALL;
236
for(i=5; i<=9; i++) Map[i][15] = WALL;
237
Map[4][9]=WALL;
238
Map[5][2]=WALL;
239
Map[6][1]=WALL;
240
Map[6][2]=WALL;
241
Map[6][4]=WALL;
242
Map[6][5]=WALL;
243
Map[6][9]=WALL;
244
Map[7][1]=WALL;
245
Map[7][7]=WALL;
246
Map[8][1]=WALL;
247
Map[8][10]=WALL;
248
Map[8][11]=WALL;
249
Map[8][12]=WALL;
250
251
Hero_r=7;
252
Hero_c=11;
253
254
Map[7][3]=BOX;
255
Map[7][5]=BOX;
256
Map[7][6]=BOX;
257
Map[7][8]=BOX;
258
Map[5][8]=BOX;
259
260
Map[6][7] = MapCopy[6][7] = STAR;
261
Map[6][8] = MapCopy[6][8] = STAR;
262
Map[6][12]= MapCopy[6][12] = STAR;
263
Map[6][13]= MapCopy[6][13] = STAR;
264
Map[6][14]= MapCopy[6][14] = STAR;
265
266
Door_r=4;
267
Door_c=8;
268
}
269
270
void Lv11()
271
{
272
int i,j;
273
for(i=3; i<=8; i++) Map[1][i]=WALL;
274
for(i=1; i<=3; i++) Map[2][i]=WALL;
275
for(i=5; i<=7; i++) Map[8][i]=WALL;
276
for(i=4; i<=6; i++) Map[11][i]=WALL;
277
for(i=6; i<=8; i++) Map[12][i]=WALL;
278
Map[3][2]=WALL;
279
Map[3][3]=WALL;
280
Map[4][3]=WALL;
281
Map[4][4]=WALL;
282
Map[5][4]=WALL;
283
Map[5][5]=WALL;
284
Map[5][7]=WALL;
285
Map[6][5]=WALL;
286
Map[7][5]=WALL;
287
Map[9][4]=WALL;
288
Map[9][5]=WALL;
289
Map[10][4]=WALL;
290
291
Hero_r=7;
292
Hero_c=8;
293
294
for(i=2; i<=5; i++) Map[i][8]=BOX;
295
Map[3][5]=BOX;
296
Map[5][6]=BOX;
297
Map[6][7]=BOX;
298
Map[9][7]=BOX;
299
Map[10][8]=BOX;
300
301
Map[2][4] = MapCopy[2][4] = STAR;
302
Map[2][7] = MapCopy[2][7] = STAR;
303
Map[4][6] = MapCopy[4][6] = STAR;
304
Map[4][7] = MapCopy[4][7] = STAR;
305
Map[6][6] = MapCopy[6][6] = STAR;
306
Map[10][5]= MapCopy[10][5] = STAR;
307
Map[11][8]= MapCopy[11][8] = STAR;
308
309
//�Գƴ���
310
for(i=1; i<=12; i++)
311
{
312
for(j=1; j<=7; j++)
313
{
314
Map[i][16-j] = Map[i][j];
315
MapCopy[i][16-j] = MapCopy[i][j];
316
}
317
}
318
319
Door_r=8;
320
Door_c=8;
321
}
322
323
void Lv12()
324
{
325
int i;
326
for(i=4; i<=12; i++) Map[2][i] = WALL;
327
for(i=7; i<=9; i++) Map[5][i] = WALL;
328
for(i=8; i<=10; i++) Map[9][i] = WALL;
329
for(i=5; i<=8; i++) Map[10][i]= WALL;
330
for(i=3; i<=5; i++) Map[i][4] = Map[i][12] = WALL;
331
for(i=5; i<=9; i++) Map[i][5] = WALL;
332
Map[6][11] = WALL;
333
Map[6][12] = WALL;
334
Map[7][10] = WALL;
335
Map[7][11] = WALL;
336
Map[8][10] = WALL;
337
338
Hero_r = 5;
339
Hero_c = 10;
340
341
Map[4][6] = BOX;
342
Map[6][8] = BOX;
343
Map[7][8] = BOX;
344
Map[8][8] = BOX;
345
Map[7][7] = BOX;
346
347
Map[3][5] = MapCopy[3][5] = STAR;
348
Map[4][5] = MapCopy[4][5] = STAR;
349
Map[3][7] = MapCopy[3][7] = STAR;
350
Map[4][7] = MapCopy[4][7] = STAR;
351
Map[4][8] = MapCopy[4][8] = STAR;
352
353
Door_r = 6;
354
Door_c = 7;
355
}
356
357
void Lv13()
358
{
359
int i;
360
for(i=5; i<=11; i++) Map[3][i] = WALL;
361
for(i=4; i<=9; i++) Map[9][i] = WALL;
362
for(i=9; i<=13; i++) Map[10][i]= WALL;
363
for(i=4; i<=9; i++) Map[i][4] = WALL;
364
for(i=6; i<=10; i++) Map[i][13]= WALL;
365
for(i=3; i<=6; i++) Map[i][11]= WALL;
366
Map[4][5] = WALL;
367
Map[6][9] = WALL;
368
Map[6][12]= WALL;
369
Map[7][6] = WALL;
370
Map[8][8] = WALL;
371
Map[8][9] = WALL;
372
Map[8][11]= WALL;
373
374
Hero_r = 7;
375
Hero_c = 8;
376
377
Map[5][7] = BOX_ON_STAR;
378
Map[6][7] = BOX_ON_STAR;
379
Map[7][7] = BOX;
380
Map[7][9] = BOX;
381
Map[7][10]= BOX;
382
Map[5][9] = BOX;
383
384
Map[6][8] = MapCopy[6][8] = STAR;
385
Map[5][8] = MapCopy[5][8] = STAR;
386
Map[5][10]= MapCopy[5][10]= STAR;
387
Map[6][10]= MapCopy[6][10]= STAR;
388
MapCopy[6][7] = STAR;
389
MapCopy[5][7] = STAR;
390
391
Door_r = 4;
392
Door_c = 6;
393
}
394
395
void Lv14()
396
{
397
int i;
398
for(i=5; i<=8; i++) Map[2][i] = WALL;
399
for(i=3; i<=5; i++) Map[3][i] = WALL;
400
for(i=8; i<=11;i++) Map[3][i] = WALL;
401
for(i=3; i<=7; i++) Map[i][3] = WALL;
402
for(i=11;i<=13;i++) Map[5][i] = WALL;
403
for(i=5; i<=9; i++) Map[i][13]= WALL;
404
for(i=5; i<=8; i++) Map[9][i] = WALL;
405
for(i=11;i<=13;i++) Map[9][i] = WALL;
406
for(i=8; i<=11;i++) Map[10][i]= WALL;
407
Map[4][3] = WALL;
408
Map[4][11]= WALL;
409
Map[5][5] = WALL;
410
Map[5][9] = WALL;
411
Map[7][4] = WALL;
412
Map[7][5] = WALL;
413
Map[7][7] = WALL;
414
Map[7][9] = WALL;
415
Map[7][11]= WALL;
416
Map[8][5] = WALL;
417
418
Hero_r = 4;
419
Hero_c = 7;
420
421
for(i=5; i<=11; i++)
422
{
423
if(i==8)
424
continue;
425
Map[6][i] = BOX;
426
}
427
428
Map[5][6] = MapCopy[5][6] = STAR;
429
Map[5][8] = MapCopy[5][8] = STAR;
430
Map[5][10]= MapCopy[5][10]= STAR;
431
Map[7][6] = MapCopy[7][6] = STAR;
432
Map[7][8] = MapCopy[7][8] = STAR;
433
Map[7][10]= MapCopy[7][10]= STAR;
434
435
Door_r=9;
436
Door_c=10;
437
}
438
439