RSokoban 0.74 → 0.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/NEWS +33 -1
- data/README.rdoc +21 -14
- data/TODO +6 -12
- data/VERSION +1 -1
- data/bin/rsokoban +40 -3
- data/data/big.xsb +35 -0
- data/lib/rsokoban/config.rb +34 -0
- data/lib/rsokoban/crate.rb +4 -5
- data/lib/rsokoban/exception.rb +2 -0
- data/lib/rsokoban/game/game.rb +153 -0
- data/lib/rsokoban/game/game_curses.rb +11 -0
- data/lib/rsokoban/game/game_factory.rb +23 -0
- data/lib/rsokoban/game/game_gui.rb +27 -0
- data/lib/rsokoban/game/game_portable.rb +10 -0
- data/lib/rsokoban/game/game_tk.rb +11 -0
- data/lib/rsokoban/game/game_ui.rb +81 -0
- data/lib/rsokoban/game.rb +7 -238
- data/lib/rsokoban/install.rb +22 -0
- data/lib/rsokoban/layered_map.rb +139 -0
- data/lib/rsokoban/level.rb +112 -166
- data/lib/rsokoban/level_set.rb +4 -4
- data/lib/rsokoban/man.rb +3 -4
- data/lib/rsokoban/map.rb +91 -15
- data/lib/rsokoban/move_result.rb +2 -2
- data/lib/rsokoban/option.rb +4 -4
- data/lib/rsokoban/position.rb +1 -1
- data/lib/rsokoban/raw_level.rb +11 -2
- data/lib/rsokoban/record.rb +51 -0
- data/lib/rsokoban/set_loader.rb +108 -0
- data/lib/rsokoban/ui/base_ui.rb +1 -0
- data/lib/rsokoban/ui/console.rb +56 -25
- data/lib/rsokoban/ui/curses_console.rb +59 -33
- data/lib/rsokoban/ui/player_action.rb +13 -7
- data/lib/rsokoban/ui/skin.rb +105 -0
- data/lib/rsokoban/ui/tk_dialogs.rb +104 -18
- data/lib/rsokoban/ui/tk_ui.rb +410 -233
- data/lib/rsokoban/ui.rb +1 -0
- data/lib/rsokoban.rb +14 -2
- data/skins/AntiqueDesk/crate.bmp +0 -0
- data/skins/AntiqueDesk/crate_store.bmp +0 -0
- data/skins/AntiqueDesk/floor.bmp +0 -0
- data/skins/AntiqueDesk/man_down.bmp +0 -0
- data/skins/AntiqueDesk/man_left.bmp +0 -0
- data/skins/AntiqueDesk/man_right.bmp +0 -0
- data/skins/AntiqueDesk/man_store_down.bmp +0 -0
- data/skins/AntiqueDesk/man_store_left.bmp +0 -0
- data/skins/AntiqueDesk/man_store_right.bmp +0 -0
- data/skins/AntiqueDesk/man_store_up.bmp +0 -0
- data/skins/AntiqueDesk/man_up.bmp +0 -0
- data/skins/AntiqueDesk/outside.bmp +0 -0
- data/skins/AntiqueDesk/skin.conf +3 -0
- data/skins/AntiqueDesk/store.bmp +0 -0
- data/skins/AntiqueDesk/wall.bmp +0 -0
- data/skins/BlueGranite/outside.bmp +0 -0
- data/skins/BlueGranite/skin.conf +3 -0
- data/skins/HeavyMetal/crate.bmp +0 -0
- data/skins/HeavyMetal/crate_store.bmp +0 -0
- data/skins/HeavyMetal/floor.bmp +0 -0
- data/skins/HeavyMetal/man.bmp +0 -0
- data/skins/HeavyMetal/man_store.bmp +0 -0
- data/skins/HeavyMetal/outside.bmp +0 -0
- data/skins/HeavyMetal/skin.conf +3 -0
- data/skins/HeavyMetal/store.bmp +0 -0
- data/skins/HeavyMetal/wall.bmp +0 -0
- data/skins/HeavyMetal/wall_d.bmp +0 -0
- data/skins/HeavyMetal/wall_dl.bmp +0 -0
- data/skins/HeavyMetal/wall_dlr.bmp +0 -0
- data/skins/HeavyMetal/wall_dr.bmp +0 -0
- data/skins/HeavyMetal/wall_l.bmp +0 -0
- data/skins/HeavyMetal/wall_lr.bmp +0 -0
- data/skins/HeavyMetal/wall_r.bmp +0 -0
- data/skins/HeavyMetal/wall_u.bmp +0 -0
- data/skins/HeavyMetal/wall_ud.bmp +0 -0
- data/skins/HeavyMetal/wall_udl.bmp +0 -0
- data/skins/HeavyMetal/wall_udlr.bmp +0 -0
- data/skins/HeavyMetal/wall_udr.bmp +0 -0
- data/skins/HeavyMetal/wall_ul.bmp +0 -0
- data/skins/HeavyMetal/wall_ulr.bmp +0 -0
- data/skins/HeavyMetal/wall_ur.bmp +0 -0
- data/test/record/original.yaml +2 -0
- data/test/tc_game.rb +24 -15
- data/test/tc_game_factory.rb +40 -0
- data/test/tc_game_gui.rb +26 -0
- data/test/tc_game_ui.rb +153 -0
- data/test/tc_install.rb +12 -0
- data/test/tc_layered_map.rb +105 -0
- data/test/tc_level.rb +109 -107
- data/test/tc_level_set.rb +4 -4
- data/test/tc_map.rb +46 -10
- data/test/tc_record.rb +100 -0
- data/test/{tc_level_loader.rb → tc_set_loader.rb} +25 -24
- data/test/test.rb +9 -2
- data/test/ui/tc_skin.rb +71 -0
- metadata +89 -26
- data/lib/rsokoban/level_loader.rb +0 -81
- data/lib/rsokoban/ui/tk_box.rb +0 -21
- data/skins/default/outside.bmp +0 -0
- data/skins/default/readme +0 -1
- /data/skins/{default → BlueGranite}/crate.bmp +0 -0
- /data/skins/{default → BlueGranite}/crate_store.bmp +0 -0
- /data/skins/{default → BlueGranite}/floor.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_down.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_left.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_right.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_store_down.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_store_left.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_store_right.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_store_up.bmp +0 -0
- /data/skins/{default → BlueGranite}/man_up.bmp +0 -0
- /data/skins/{default → BlueGranite}/store.bmp +0 -0
- /data/skins/{default → BlueGranite}/wall.bmp +0 -0
data/test/tc_level.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
|
2
2
|
class TC_Level < Test::Unit::TestCase
|
3
|
+
include RSokoban
|
3
4
|
|
4
5
|
Text1 = [ '#####',
|
5
6
|
'#.$@#',
|
@@ -18,14 +19,14 @@ class TC_Level < Test::Unit::TestCase
|
|
18
19
|
'####']
|
19
20
|
|
20
21
|
def setup
|
21
|
-
@text_1 =
|
22
|
-
@text_2 =
|
23
|
-
@text_3 =
|
24
|
-
@original_1 =
|
22
|
+
@text_1 = Level.new(RawLevel.new('1', Text1))
|
23
|
+
@text_2 = Level.new(RawLevel.new('1', Text2))
|
24
|
+
@text_3 = Level.new(RawLevel.new('1', Text3))
|
25
|
+
@original_1 = Level.new(RawLevel.new('1', Level1))
|
25
26
|
end
|
26
27
|
|
27
28
|
def test_instance
|
28
|
-
assert_equal true, @text_1.instance_of?(
|
29
|
+
assert_equal true, @text_1.instance_of?(Level), "Must be an instance of Level"
|
29
30
|
end
|
30
31
|
|
31
32
|
def test_move_number
|
@@ -62,7 +63,7 @@ class TC_Level < Test::Unit::TestCase
|
|
62
63
|
end
|
63
64
|
|
64
65
|
def test_crates_contains_some_crate
|
65
|
-
assert_equal true, @text_1.crates[0].instance_of?(
|
66
|
+
assert_equal true, @text_1.crates[0].instance_of?(Crate)
|
66
67
|
end
|
67
68
|
|
68
69
|
def test_crates_with_Text2_must_be_of_size_3
|
@@ -101,7 +102,7 @@ class TC_Level < Test::Unit::TestCase
|
|
101
102
|
end
|
102
103
|
|
103
104
|
def test_storages_contains_some_storage
|
104
|
-
assert_equal true, @text_1.storages[0].instance_of?(
|
105
|
+
assert_equal true, @text_1.storages[0].instance_of?(Storage)
|
105
106
|
end
|
106
107
|
|
107
108
|
def test_storages_positions
|
@@ -124,7 +125,7 @@ class TC_Level < Test::Unit::TestCase
|
|
124
125
|
end
|
125
126
|
|
126
127
|
def test_equality
|
127
|
-
ins =
|
128
|
+
ins = Level.new(RawLevel.new('1', Text3))
|
128
129
|
assert ins == @text_3
|
129
130
|
end
|
130
131
|
|
@@ -141,7 +142,7 @@ class TC_Level < Test::Unit::TestCase
|
|
141
142
|
' #######']
|
142
143
|
|
143
144
|
def test_rawLevel
|
144
|
-
assert_equal Level1, @original_1.
|
145
|
+
assert_equal Level1, @original_1.map_as_array
|
145
146
|
end
|
146
147
|
|
147
148
|
def test_width
|
@@ -152,22 +153,23 @@ class TC_Level < Test::Unit::TestCase
|
|
152
153
|
assert_equal 11, @original_1.height
|
153
154
|
end
|
154
155
|
|
155
|
-
Level1_u = [
|
156
|
-
'
|
157
|
-
'
|
158
|
-
'
|
159
|
-
'
|
160
|
-
'
|
156
|
+
Level1_u = [
|
157
|
+
'oooo#####oooooooooo',
|
158
|
+
'oooo# #oooooooooo',
|
159
|
+
'oooo#$ #oooooooooo',
|
160
|
+
'oo### $##ooooooooo',
|
161
|
+
'oo# $ $ #ooooooooo',
|
162
|
+
'### # ## #ooo######',
|
161
163
|
'# # ## ##### ..#',
|
162
164
|
'# $ $ @ ..#',
|
163
165
|
'##### ### # ## ..#',
|
164
|
-
'
|
165
|
-
'
|
166
|
+
'oooo# #########',
|
167
|
+
'oooo#######oooooooo']
|
166
168
|
|
167
169
|
def test_rawLevel_after_move_up
|
168
170
|
ins = @original_1
|
169
171
|
ins.move(:up)
|
170
|
-
assert_equal Level1_u, ins.
|
172
|
+
assert_equal Level1_u, ins.map_as_array
|
171
173
|
end
|
172
174
|
|
173
175
|
Text4 = [ '####',
|
@@ -177,7 +179,7 @@ class TC_Level < Test::Unit::TestCase
|
|
177
179
|
'####']
|
178
180
|
|
179
181
|
def test_crate_on_storage_at_startup
|
180
|
-
ins =
|
182
|
+
ins = Level.new(RawLevel.new('1', Text4))
|
181
183
|
result = ins.move(:up)
|
182
184
|
assert_equal :win, result[:status]
|
183
185
|
assert_equal 1, result[:move_number]
|
@@ -196,7 +198,7 @@ class TC_Level < Test::Unit::TestCase
|
|
196
198
|
'###']
|
197
199
|
|
198
200
|
def test_CanMoveUp1
|
199
|
-
ins =
|
201
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp1))
|
200
202
|
result = ins.move(:up)
|
201
203
|
assert_equal :ok, result[:status]
|
202
204
|
assert_equal 1, result[:move_number]
|
@@ -205,9 +207,9 @@ class TC_Level < Test::Unit::TestCase
|
|
205
207
|
end
|
206
208
|
|
207
209
|
def test_AfterMoveUp1
|
208
|
-
ins =
|
210
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp1))
|
209
211
|
ins.move(:up)
|
210
|
-
assert_equal AfterMoveUp1, ins.
|
212
|
+
assert_equal AfterMoveUp1, ins.map_as_array
|
211
213
|
end
|
212
214
|
|
213
215
|
CanMoveUp2 = ['###',
|
@@ -221,7 +223,7 @@ class TC_Level < Test::Unit::TestCase
|
|
221
223
|
'###']
|
222
224
|
|
223
225
|
def test_CanMoveUp2
|
224
|
-
ins =
|
226
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp2))
|
225
227
|
result = ins.move(:up)
|
226
228
|
assert_equal :ok, result[:status]
|
227
229
|
assert_equal 1, result[:move_number]
|
@@ -230,9 +232,9 @@ class TC_Level < Test::Unit::TestCase
|
|
230
232
|
end
|
231
233
|
|
232
234
|
def test_AfterMoveUp2
|
233
|
-
ins =
|
235
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp2))
|
234
236
|
ins.move(:up)
|
235
|
-
assert_equal AfterMoveUp2, ins.
|
237
|
+
assert_equal AfterMoveUp2, ins.map_as_array
|
236
238
|
end
|
237
239
|
|
238
240
|
CanMoveUp3 = ['###',
|
@@ -248,7 +250,7 @@ class TC_Level < Test::Unit::TestCase
|
|
248
250
|
'###']
|
249
251
|
|
250
252
|
def test_CanMoveUp3
|
251
|
-
ins =
|
253
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp3))
|
252
254
|
result = ins.move(:up)
|
253
255
|
assert_equal :ok, result[:status]
|
254
256
|
assert_equal 1, result[:move_number]
|
@@ -257,9 +259,9 @@ class TC_Level < Test::Unit::TestCase
|
|
257
259
|
end
|
258
260
|
|
259
261
|
def test_AfterMoveUp3
|
260
|
-
ins =
|
262
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp3))
|
261
263
|
ins.move(:up)
|
262
|
-
assert_equal AfterMoveUp3, ins.
|
264
|
+
assert_equal AfterMoveUp3, ins.map_as_array
|
263
265
|
end
|
264
266
|
|
265
267
|
CanMoveUp4 = ['###',
|
@@ -275,7 +277,7 @@ class TC_Level < Test::Unit::TestCase
|
|
275
277
|
'###']
|
276
278
|
|
277
279
|
def test_CanMoveUp4
|
278
|
-
ins =
|
280
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp4))
|
279
281
|
result = ins.move(:up)
|
280
282
|
assert_equal :win, result[:status]
|
281
283
|
assert_equal 1, result[:move_number]
|
@@ -284,9 +286,9 @@ class TC_Level < Test::Unit::TestCase
|
|
284
286
|
end
|
285
287
|
|
286
288
|
def test_AfterMoveUp4
|
287
|
-
ins =
|
289
|
+
ins = Level.new(RawLevel.new('1', CanMoveUp4))
|
288
290
|
ins.move(:up)
|
289
|
-
assert_equal AfterMoveUp4, ins.
|
291
|
+
assert_equal AfterMoveUp4, ins.map_as_array
|
290
292
|
end
|
291
293
|
|
292
294
|
CannotMoveUp1 = ['###',
|
@@ -294,11 +296,11 @@ class TC_Level < Test::Unit::TestCase
|
|
294
296
|
'###']
|
295
297
|
|
296
298
|
def test_CannotMoveUp1
|
297
|
-
ins =
|
299
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUp1))
|
298
300
|
result = ins.move(:up)
|
299
301
|
assert_equal :error, result[:status]
|
300
302
|
assert_equal 'wall', result[:message]
|
301
|
-
assert_equal CannotMoveUp1, ins.
|
303
|
+
assert_equal CannotMoveUp1, ins.map_as_array
|
302
304
|
end
|
303
305
|
|
304
306
|
CannotMoveUp2 = ['###',
|
@@ -307,11 +309,11 @@ class TC_Level < Test::Unit::TestCase
|
|
307
309
|
'###']
|
308
310
|
|
309
311
|
def test_CannotMoveUp2
|
310
|
-
ins =
|
312
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUp2))
|
311
313
|
result = ins.move(:up)
|
312
314
|
assert_equal :error, result[:status]
|
313
315
|
assert_equal 'wall behind crate', result[:message]
|
314
|
-
assert_equal CannotMoveUp2, ins.
|
316
|
+
assert_equal CannotMoveUp2, ins.map_as_array
|
315
317
|
end
|
316
318
|
|
317
319
|
CannotMoveUp3 = ['###',
|
@@ -322,11 +324,11 @@ class TC_Level < Test::Unit::TestCase
|
|
322
324
|
'###']
|
323
325
|
|
324
326
|
def test_CannotMoveUp3
|
325
|
-
ins =
|
327
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUp3))
|
326
328
|
result = ins.move(:up)
|
327
329
|
assert_equal :error, result[:status]
|
328
330
|
assert_equal 'double crate', result[:message]
|
329
|
-
assert_equal CannotMoveUp3, ins.
|
331
|
+
assert_equal CannotMoveUp3, ins.map_as_array
|
330
332
|
end
|
331
333
|
|
332
334
|
CannotMoveUp4 = ['###',
|
@@ -337,11 +339,11 @@ class TC_Level < Test::Unit::TestCase
|
|
337
339
|
'###']
|
338
340
|
|
339
341
|
def test_CannotMoveUp4
|
340
|
-
ins =
|
342
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUp4))
|
341
343
|
result = ins.move(:up)
|
342
344
|
assert_equal :error, result[:status]
|
343
345
|
assert_equal 'double crate', result[:message]
|
344
|
-
assert_equal CannotMoveUp4, ins.
|
346
|
+
assert_equal CannotMoveUp4, ins.map_as_array
|
345
347
|
end
|
346
348
|
|
347
349
|
CannotMoveUp5 = ['###',
|
@@ -352,11 +354,11 @@ class TC_Level < Test::Unit::TestCase
|
|
352
354
|
'###']
|
353
355
|
|
354
356
|
def test_CannotMoveUp5
|
355
|
-
ins =
|
357
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUp5))
|
356
358
|
result = ins.move(:up)
|
357
359
|
assert_equal :error, result[:status]
|
358
360
|
assert_equal 'double crate', result[:message]
|
359
|
-
assert_equal CannotMoveUp5, ins.
|
361
|
+
assert_equal CannotMoveUp5, ins.map_as_array
|
360
362
|
end
|
361
363
|
|
362
364
|
CannotMoveUp6 = ['###',
|
@@ -367,11 +369,11 @@ class TC_Level < Test::Unit::TestCase
|
|
367
369
|
'###']
|
368
370
|
|
369
371
|
def test_CannotMoveUp6
|
370
|
-
ins =
|
372
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUp6))
|
371
373
|
result = ins.move(:up)
|
372
374
|
assert_equal :error, result[:status]
|
373
375
|
assert_equal 'double crate', result[:message]
|
374
|
-
assert_equal CannotMoveUp6, ins.
|
376
|
+
assert_equal CannotMoveUp6, ins.map_as_array
|
375
377
|
end
|
376
378
|
|
377
379
|
### Move down ##############################################
|
@@ -387,16 +389,16 @@ class TC_Level < Test::Unit::TestCase
|
|
387
389
|
'###']
|
388
390
|
|
389
391
|
def test_CanMoveDown1
|
390
|
-
ins =
|
392
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown1))
|
391
393
|
result = ins.move(:down)
|
392
394
|
assert_equal :ok, result[:status]
|
393
395
|
assert_equal 1, result[:move_number]
|
394
396
|
end
|
395
397
|
|
396
398
|
def test_AfterMoveDown1
|
397
|
-
ins =
|
399
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown1))
|
398
400
|
ins.move(:down)
|
399
|
-
assert_equal AfterMoveDown1, ins.
|
401
|
+
assert_equal AfterMoveDown1, ins.map_as_array
|
400
402
|
end
|
401
403
|
|
402
404
|
CanMoveDown2 = ['###',
|
@@ -410,16 +412,16 @@ class TC_Level < Test::Unit::TestCase
|
|
410
412
|
'###']
|
411
413
|
|
412
414
|
def test_CanMoveDown2
|
413
|
-
ins =
|
415
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown2))
|
414
416
|
result = ins.move(:down)
|
415
417
|
assert_equal :ok, result[:status]
|
416
418
|
assert_equal 1, result[:move_number]
|
417
419
|
end
|
418
420
|
|
419
421
|
def test_AfterMoveDown2
|
420
|
-
ins =
|
422
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown2))
|
421
423
|
ins.move(:down)
|
422
|
-
assert_equal AfterMoveDown2, ins.
|
424
|
+
assert_equal AfterMoveDown2, ins.map_as_array
|
423
425
|
end
|
424
426
|
|
425
427
|
CanMoveDown3 = ['###',
|
@@ -435,16 +437,16 @@ class TC_Level < Test::Unit::TestCase
|
|
435
437
|
'###']
|
436
438
|
|
437
439
|
def test_CanMoveDown3
|
438
|
-
ins =
|
440
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown3))
|
439
441
|
result = ins.move(:down)
|
440
442
|
assert_equal :ok, result[:status]
|
441
443
|
assert_equal 1, result[:move_number]
|
442
444
|
end
|
443
445
|
|
444
446
|
def test_AfterMoveDown3
|
445
|
-
ins =
|
447
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown3))
|
446
448
|
ins.move(:down)
|
447
|
-
assert_equal AfterMoveDown3, ins.
|
449
|
+
assert_equal AfterMoveDown3, ins.map_as_array
|
448
450
|
end
|
449
451
|
|
450
452
|
CanMoveDown4 = ['###',
|
@@ -460,16 +462,16 @@ class TC_Level < Test::Unit::TestCase
|
|
460
462
|
'###']
|
461
463
|
|
462
464
|
def test_CanMoveDown4
|
463
|
-
ins =
|
465
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown4))
|
464
466
|
result = ins.move(:down)
|
465
467
|
assert_equal :win, result[:status]
|
466
468
|
assert_equal 1, result[:move_number]
|
467
469
|
end
|
468
470
|
|
469
471
|
def test_AfterMoveDown4
|
470
|
-
ins =
|
472
|
+
ins = Level.new(RawLevel.new('1', CanMoveDown4))
|
471
473
|
ins.move(:down)
|
472
|
-
assert_equal AfterMoveDown4, ins.
|
474
|
+
assert_equal AfterMoveDown4, ins.map_as_array
|
473
475
|
end
|
474
476
|
|
475
477
|
CannotMoveDown1 = ['###',
|
@@ -477,11 +479,11 @@ class TC_Level < Test::Unit::TestCase
|
|
477
479
|
'###']
|
478
480
|
|
479
481
|
def test_CannotMoveDown1
|
480
|
-
ins =
|
482
|
+
ins = Level.new(RawLevel.new('1', CannotMoveDown1))
|
481
483
|
result = ins.move(:down)
|
482
484
|
assert_equal :error, result[:status]
|
483
485
|
assert_equal 'wall', result[:message]
|
484
|
-
assert_equal CannotMoveDown1, ins.
|
486
|
+
assert_equal CannotMoveDown1, ins.map_as_array
|
485
487
|
end
|
486
488
|
|
487
489
|
CannotMoveDown2 = ['###',
|
@@ -490,11 +492,11 @@ class TC_Level < Test::Unit::TestCase
|
|
490
492
|
'###']
|
491
493
|
|
492
494
|
def test_CannotMoveDown2
|
493
|
-
ins =
|
495
|
+
ins = Level.new(RawLevel.new('1', CannotMoveDown2))
|
494
496
|
result = ins.move(:down)
|
495
497
|
assert_equal :error, result[:status]
|
496
498
|
assert_equal 'wall behind crate', result[:message]
|
497
|
-
assert_equal CannotMoveDown2, ins.
|
499
|
+
assert_equal CannotMoveDown2, ins.map_as_array
|
498
500
|
end
|
499
501
|
|
500
502
|
CannotMoveDown3 = ['###',
|
@@ -505,11 +507,11 @@ class TC_Level < Test::Unit::TestCase
|
|
505
507
|
'###']
|
506
508
|
|
507
509
|
def test_CannotMoveDown3
|
508
|
-
ins =
|
510
|
+
ins = Level.new(RawLevel.new('1', CannotMoveDown3))
|
509
511
|
result = ins.move(:down)
|
510
512
|
assert_equal :error, result[:status]
|
511
513
|
assert_equal 'double crate', result[:message]
|
512
|
-
assert_equal CannotMoveDown3, ins.
|
514
|
+
assert_equal CannotMoveDown3, ins.map_as_array
|
513
515
|
end
|
514
516
|
|
515
517
|
CannotMoveDown4 = ['###',
|
@@ -520,11 +522,11 @@ class TC_Level < Test::Unit::TestCase
|
|
520
522
|
'###']
|
521
523
|
|
522
524
|
def test_CannotMoveDown4
|
523
|
-
ins =
|
525
|
+
ins = Level.new(RawLevel.new('1', CannotMoveDown4))
|
524
526
|
result = ins.move(:down)
|
525
527
|
assert_equal :error, result[:status]
|
526
528
|
assert_equal 'double crate', result[:message]
|
527
|
-
assert_equal CannotMoveDown4, ins.
|
529
|
+
assert_equal CannotMoveDown4, ins.map_as_array
|
528
530
|
end
|
529
531
|
|
530
532
|
CannotMoveDown5 = ['###',
|
@@ -535,11 +537,11 @@ class TC_Level < Test::Unit::TestCase
|
|
535
537
|
'###']
|
536
538
|
|
537
539
|
def test_CannotMoveDown5
|
538
|
-
ins =
|
540
|
+
ins = Level.new(RawLevel.new('1', CannotMoveDown5))
|
539
541
|
result = ins.move(:down)
|
540
542
|
assert_equal :error, result[:status]
|
541
543
|
assert_equal 'double crate', result[:message]
|
542
|
-
assert_equal CannotMoveDown5, ins.
|
544
|
+
assert_equal CannotMoveDown5, ins.map_as_array
|
543
545
|
end
|
544
546
|
|
545
547
|
CannotMoveDown6 = ['###',
|
@@ -550,11 +552,11 @@ class TC_Level < Test::Unit::TestCase
|
|
550
552
|
'###']
|
551
553
|
|
552
554
|
def test_CannotMoveDown6
|
553
|
-
ins =
|
555
|
+
ins = Level.new(RawLevel.new('1', CannotMoveDown6))
|
554
556
|
result = ins.move(:down)
|
555
557
|
assert_equal :error, result[:status]
|
556
558
|
assert_equal 'double crate', result[:message]
|
557
|
-
assert_equal CannotMoveDown6, ins.
|
559
|
+
assert_equal CannotMoveDown6, ins.map_as_array
|
558
560
|
end
|
559
561
|
|
560
562
|
### Move left ##############################################
|
@@ -568,16 +570,16 @@ class TC_Level < Test::Unit::TestCase
|
|
568
570
|
'####']
|
569
571
|
|
570
572
|
def test_CanMoveLeft1
|
571
|
-
ins =
|
573
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft1))
|
572
574
|
result = ins.move(:left)
|
573
575
|
assert_equal :ok, result[:status]
|
574
576
|
assert_equal 1, result[:move_number]
|
575
577
|
end
|
576
578
|
|
577
579
|
def test_AfterMoveLeft1
|
578
|
-
ins =
|
580
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft1))
|
579
581
|
ins.move(:left)
|
580
|
-
assert_equal AfterMoveLeft1, ins.
|
582
|
+
assert_equal AfterMoveLeft1, ins.map_as_array
|
581
583
|
end
|
582
584
|
|
583
585
|
CanMoveLeft2 = ['####',
|
@@ -589,16 +591,16 @@ class TC_Level < Test::Unit::TestCase
|
|
589
591
|
'####']
|
590
592
|
|
591
593
|
def test_CanMoveLeft2
|
592
|
-
ins =
|
594
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft2))
|
593
595
|
result = ins.move(:left)
|
594
596
|
assert_equal :ok, result[:status]
|
595
597
|
assert_equal 1, result[:move_number]
|
596
598
|
end
|
597
599
|
|
598
600
|
def test_AfterMoveLeft2
|
599
|
-
ins =
|
601
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft2))
|
600
602
|
ins.move(:left)
|
601
|
-
assert_equal AfterMoveLeft2, ins.
|
603
|
+
assert_equal AfterMoveLeft2, ins.map_as_array
|
602
604
|
end
|
603
605
|
|
604
606
|
CanMoveLeft3 = ['#####',
|
@@ -610,16 +612,16 @@ class TC_Level < Test::Unit::TestCase
|
|
610
612
|
'#####']
|
611
613
|
|
612
614
|
def test_CanMoveLeft3
|
613
|
-
ins =
|
615
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft3))
|
614
616
|
result = ins.move(:left)
|
615
617
|
assert_equal :ok, result[:status]
|
616
618
|
assert_equal 1, result[:move_number]
|
617
619
|
end
|
618
620
|
|
619
621
|
def test_AfterMoveLeft3
|
620
|
-
ins =
|
622
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft3))
|
621
623
|
ins.move(:left)
|
622
|
-
assert_equal AfterMoveLeft3, ins.
|
624
|
+
assert_equal AfterMoveLeft3, ins.map_as_array
|
623
625
|
end
|
624
626
|
|
625
627
|
CanMoveLeft4 = ['#####',
|
@@ -631,16 +633,16 @@ class TC_Level < Test::Unit::TestCase
|
|
631
633
|
'#####']
|
632
634
|
|
633
635
|
def test_CanMoveLeft4
|
634
|
-
ins =
|
636
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft4))
|
635
637
|
result = ins.move(:left)
|
636
638
|
assert_equal :win, result[:status]
|
637
639
|
assert_equal 1, result[:move_number]
|
638
640
|
end
|
639
641
|
|
640
642
|
def test_AfterMoveLeft4
|
641
|
-
ins =
|
643
|
+
ins = Level.new(RawLevel.new('1', CanMoveLeft4))
|
642
644
|
ins.move(:left)
|
643
|
-
assert_equal AfterMoveLeft4, ins.
|
645
|
+
assert_equal AfterMoveLeft4, ins.map_as_array
|
644
646
|
end
|
645
647
|
|
646
648
|
CannotMoveLeft1 = ['###',
|
@@ -648,11 +650,11 @@ class TC_Level < Test::Unit::TestCase
|
|
648
650
|
'###']
|
649
651
|
|
650
652
|
def test_CannotMoveLeft1
|
651
|
-
ins =
|
653
|
+
ins = Level.new(RawLevel.new('1', CannotMoveLeft1))
|
652
654
|
result = ins.move(:left)
|
653
655
|
assert_equal :error, result[:status]
|
654
656
|
assert_equal 'wall', result[:message]
|
655
|
-
assert_equal CannotMoveLeft1, ins.
|
657
|
+
assert_equal CannotMoveLeft1, ins.map_as_array
|
656
658
|
end
|
657
659
|
|
658
660
|
CannotMoveLeft2 = ['####',
|
@@ -660,11 +662,11 @@ class TC_Level < Test::Unit::TestCase
|
|
660
662
|
'####']
|
661
663
|
|
662
664
|
def test_CannotMoveLeft2
|
663
|
-
ins =
|
665
|
+
ins = Level.new(RawLevel.new('1', CannotMoveLeft2))
|
664
666
|
result = ins.move(:left)
|
665
667
|
assert_equal :error, result[:status]
|
666
668
|
assert_equal 'wall behind crate', result[:message]
|
667
|
-
assert_equal CannotMoveLeft2, ins.
|
669
|
+
assert_equal CannotMoveLeft2, ins.map_as_array
|
668
670
|
end
|
669
671
|
|
670
672
|
CannotMoveLeft3 = ['######',
|
@@ -672,11 +674,11 @@ class TC_Level < Test::Unit::TestCase
|
|
672
674
|
'######']
|
673
675
|
|
674
676
|
def test_CannotMoveLeft3
|
675
|
-
ins =
|
677
|
+
ins = Level.new(RawLevel.new('1', CannotMoveLeft3))
|
676
678
|
result = ins.move(:left)
|
677
679
|
assert_equal :error, result[:status]
|
678
680
|
assert_equal 'double crate', result[:message]
|
679
|
-
assert_equal CannotMoveLeft3, ins.
|
681
|
+
assert_equal CannotMoveLeft3, ins.map_as_array
|
680
682
|
end
|
681
683
|
|
682
684
|
### Move right ##############################################
|
@@ -690,16 +692,16 @@ class TC_Level < Test::Unit::TestCase
|
|
690
692
|
'####']
|
691
693
|
|
692
694
|
def test_CanMoveRight1
|
693
|
-
ins =
|
695
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight1))
|
694
696
|
result = ins.move(:right)
|
695
697
|
assert_equal :ok, result[:status]
|
696
698
|
assert_equal 1, result[:move_number]
|
697
699
|
end
|
698
700
|
|
699
701
|
def test_AfterMoveRight1
|
700
|
-
ins =
|
702
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight1))
|
701
703
|
ins.move(:right)
|
702
|
-
assert_equal AfterMoveRight1, ins.
|
704
|
+
assert_equal AfterMoveRight1, ins.map_as_array
|
703
705
|
end
|
704
706
|
|
705
707
|
CanMoveRight2 = ['####',
|
@@ -711,16 +713,16 @@ class TC_Level < Test::Unit::TestCase
|
|
711
713
|
'####']
|
712
714
|
|
713
715
|
def test_CanMoveRight2
|
714
|
-
ins =
|
716
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight2))
|
715
717
|
result = ins.move(:right)
|
716
718
|
assert_equal :ok, result[:status]
|
717
719
|
assert_equal 1, result[:move_number]
|
718
720
|
end
|
719
721
|
|
720
722
|
def test_AfterMoveRight2
|
721
|
-
ins =
|
723
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight2))
|
722
724
|
ins.move(:right)
|
723
|
-
assert_equal AfterMoveRight2, ins.
|
725
|
+
assert_equal AfterMoveRight2, ins.map_as_array
|
724
726
|
end
|
725
727
|
|
726
728
|
CanMoveRight3 = ['#####',
|
@@ -732,16 +734,16 @@ class TC_Level < Test::Unit::TestCase
|
|
732
734
|
'#####']
|
733
735
|
|
734
736
|
def test_CanMoveRight3
|
735
|
-
ins =
|
737
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight3))
|
736
738
|
result = ins.move(:right)
|
737
739
|
assert_equal :ok, result[:status]
|
738
740
|
assert_equal 1, result[:move_number]
|
739
741
|
end
|
740
742
|
|
741
743
|
def test_AfterMoveRight3
|
742
|
-
ins =
|
744
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight3))
|
743
745
|
ins.move(:right)
|
744
|
-
assert_equal AfterMoveRight3, ins.
|
746
|
+
assert_equal AfterMoveRight3, ins.map_as_array
|
745
747
|
end
|
746
748
|
|
747
749
|
CanMoveRight4 = ['#####',
|
@@ -753,16 +755,16 @@ class TC_Level < Test::Unit::TestCase
|
|
753
755
|
'#####']
|
754
756
|
|
755
757
|
def test_CanMoveRight4
|
756
|
-
ins =
|
758
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight4))
|
757
759
|
result = ins.move(:right)
|
758
760
|
assert_equal :win, result[:status]
|
759
761
|
assert_equal 1, result[:move_number]
|
760
762
|
end
|
761
763
|
|
762
764
|
def test_AfterMoveRight4
|
763
|
-
ins =
|
765
|
+
ins = Level.new(RawLevel.new('1', CanMoveRight4))
|
764
766
|
ins.move(:right)
|
765
|
-
assert_equal AfterMoveRight4, ins.
|
767
|
+
assert_equal AfterMoveRight4, ins.map_as_array
|
766
768
|
end
|
767
769
|
|
768
770
|
CannotMoveRight1 = ['###',
|
@@ -770,11 +772,11 @@ class TC_Level < Test::Unit::TestCase
|
|
770
772
|
'###']
|
771
773
|
|
772
774
|
def test_CannotMoveRight1
|
773
|
-
ins =
|
775
|
+
ins = Level.new(RawLevel.new('1', CannotMoveRight1))
|
774
776
|
result = ins.move(:right)
|
775
777
|
assert_equal :error, result[:status]
|
776
778
|
assert_equal 'wall', result[:message]
|
777
|
-
assert_equal CannotMoveRight1, ins.
|
779
|
+
assert_equal CannotMoveRight1, ins.map_as_array
|
778
780
|
end
|
779
781
|
|
780
782
|
CannotMoveRight2 = ['####',
|
@@ -782,11 +784,11 @@ class TC_Level < Test::Unit::TestCase
|
|
782
784
|
'####']
|
783
785
|
|
784
786
|
def test_CannotMoveRight2
|
785
|
-
ins =
|
787
|
+
ins = Level.new(RawLevel.new('1', CannotMoveRight2))
|
786
788
|
result = ins.move(:right)
|
787
789
|
assert_equal :error, result[:status]
|
788
790
|
assert_equal 'wall behind crate', result[:message]
|
789
|
-
assert_equal CannotMoveRight2, ins.
|
791
|
+
assert_equal CannotMoveRight2, ins.map_as_array
|
790
792
|
end
|
791
793
|
|
792
794
|
CannotMoveRight3 = ['######',
|
@@ -794,11 +796,11 @@ class TC_Level < Test::Unit::TestCase
|
|
794
796
|
'######']
|
795
797
|
|
796
798
|
def test_CannotMoveRight3
|
797
|
-
ins =
|
799
|
+
ins = Level.new(RawLevel.new('1', CannotMoveRight3))
|
798
800
|
result = ins.move(:right)
|
799
801
|
assert_equal :error, result[:status]
|
800
802
|
assert_equal 'double crate', result[:message]
|
801
|
-
assert_equal CannotMoveRight3, ins.
|
803
|
+
assert_equal CannotMoveRight3, ins.map_as_array
|
802
804
|
end
|
803
805
|
|
804
806
|
### WIN ########################################################
|
@@ -808,7 +810,7 @@ class TC_Level < Test::Unit::TestCase
|
|
808
810
|
'#####']
|
809
811
|
|
810
812
|
def test_solution_avec_une_seule_caisse
|
811
|
-
ins =
|
813
|
+
ins = Level.new(RawLevel.new('1', Win1))
|
812
814
|
result = ins.move(:right)
|
813
815
|
assert_equal :win, result[:status]
|
814
816
|
assert_equal 1, result[:move_number]
|
@@ -831,15 +833,15 @@ class TC_Level < Test::Unit::TestCase
|
|
831
833
|
'###']
|
832
834
|
|
833
835
|
def test_bug_first
|
834
|
-
ins =
|
836
|
+
ins = Level.new(RawLevel.new('1', CannotMoveUpBug1))
|
835
837
|
# Changing 'o' to '*'
|
836
838
|
def ins.addStorage
|
837
|
-
@storages.push
|
839
|
+
@layered_map.storages.push Storage.new(1, 1)
|
838
840
|
end
|
839
841
|
ins.addStorage
|
840
842
|
|
841
843
|
# I need to be sure that coord 1, 1 is '*'
|
842
|
-
assert_equal '#*#', ins.
|
844
|
+
assert_equal '#*#', ins.map_as_array[1]
|
843
845
|
|
844
846
|
result = ins.move(:up)
|
845
847
|
assert_equal :error, result[:status]
|