sokoban 0.0.9
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/LICENSE +339 -0
- data/README.md +47 -0
- data/Rakefile +7 -0
- data/bin/sokoban +3 -0
- data/lib/sokoban.rb +308 -0
- data/lib/sokoban/version.rb +3 -0
- data/sokoban.gemspec +25 -0
- data/sokoban_levels.txt +760 -0
- data/spec/lib/sokoban_spec.rb +31 -0
- data/spec/spec_helper.rb +1 -0
- metadata +103 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.expand_path('../../spec_helper.rb', __FILE__)
|
2
|
+
include Sokoban
|
3
|
+
|
4
|
+
describe Level do
|
5
|
+
it "should default to level 1" do
|
6
|
+
Level.new.lnum.should == 1
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should set @lnum to the given level" do
|
10
|
+
Level.new(42).lnum.should == 42
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should raise RangeError when level is out of range" do
|
14
|
+
expect { Level.new(54) }.to raise_error(RangeError)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should play level 1" do
|
18
|
+
level = Level.new
|
19
|
+
level.count_free_boxes.should == 6
|
20
|
+
s = "WAAAWWWAWAASSWAASSSDDDDDDDDDDDDDSDWAAAAAAAAAWWWAWAASSSWWAASSSDDDD"
|
21
|
+
s << "DDDDDDDDWDSASDWAAAAAAAAWWWAAWASSSWWAASSSDDDDDDDDDDDDSDWAAAAAAAAWW"
|
22
|
+
s << "WAWAWWDSSWWAASSSSSWWAASSSDDDDDDDDDDDWDSASDWAAAAAAAWWWAAWASSSWWAAS"
|
23
|
+
s << "SSDDDDDDDDDDDDDAAAAAAAAAAAAAWAASDDDDDDDDDDDDD\n"
|
24
|
+
s.each_char {|c| level.parse_move(c.downcase) }
|
25
|
+
level.parse_move('d') #if rand(0..1).zero? # hehehe
|
26
|
+
level.count_free_boxes.should == 0
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Game do
|
31
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.expand_path('../../lib/sokoban.rb', __FILE__)
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sokoban
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.9
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Boohbah
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-09-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
description: A classic warehouse puzzle game by Hiroyuki Imabayashi
|
56
|
+
email:
|
57
|
+
- boohbah@gmail.com
|
58
|
+
executables:
|
59
|
+
- sokoban
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- .gitignore
|
64
|
+
- Gemfile
|
65
|
+
- LICENSE
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- bin/sokoban
|
69
|
+
- lib/sokoban.rb
|
70
|
+
- lib/sokoban/version.rb
|
71
|
+
- sokoban.gemspec
|
72
|
+
- sokoban_levels.txt
|
73
|
+
- spec/lib/sokoban_spec.rb
|
74
|
+
- spec/spec_helper.rb
|
75
|
+
homepage: http://rubygems.org/gems/sokoban
|
76
|
+
licenses:
|
77
|
+
- GPL
|
78
|
+
metadata: {}
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
- bin
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
requirements: []
|
95
|
+
rubyforge_project:
|
96
|
+
rubygems_version: 2.0.3
|
97
|
+
signing_key:
|
98
|
+
specification_version: 4
|
99
|
+
summary: A classic warehouse puzzle game
|
100
|
+
test_files:
|
101
|
+
- spec/lib/sokoban_spec.rb
|
102
|
+
- spec/spec_helper.rb
|
103
|
+
has_rdoc:
|