elus 0.1.0

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.
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format nested
@@ -0,0 +1,198 @@
1
+ $LOAD_PATH << File.join(File.dirname(__FILE__),".." ,"lib" )
2
+
3
+ #require 'rubygems'
4
+ #require 'spec'
5
+ require 'elus'
6
+
7
+ module ElusTest
8
+ PIECE_CHARS = '01=!.'
9
+ NONDOT_CHARS = '01!='
10
+
11
+ def random_chars_twice(n=1, string=PIECE_CHARS)
12
+ chars = string.split(//)
13
+ n.times { yield chars.sample(3).join(''), chars.sample(3).join('') }
14
+ end
15
+
16
+ def all_chars(string=PIECE_CHARS)
17
+ chars = string.split(//)
18
+ chars.product(chars,chars).each {|code_chars| yield code_chars.join('') }
19
+ end
20
+
21
+ def all_chars_twice(string1=PIECE_CHARS, string2=string1)
22
+ all_chars(string1) {|code1| all_chars(string2) {|code2| yield code1, code2 } }
23
+ end
24
+
25
+ def permutate(string=NONDOT_CHARS)
26
+ string.split(//).product(['.'],['.']).each do |set|
27
+ set.permutation.to_a.uniq.each do |code_chars|
28
+ yield code_chars.join('')
29
+ end
30
+ end
31
+ end
32
+
33
+ def should_be_equal(p1, p2)
34
+ (p1 == p2).should be_true
35
+ (p1 >= p2).should be_true
36
+ (p1 <= p2).should be_true
37
+ (p1 > p2).should be_false
38
+ (p1 < p2).should be_false
39
+ end
40
+
41
+
42
+
43
+ BYD = 'Big Yellow Diamond'
44
+ WRONG_RULES = [
45
+ ["B", 'BY', 'BSYC'],
46
+ ['BYG', 'BYCD'],
47
+ ['BGX', 'ZXC', 1],
48
+ ['ZXAQWET1234567890', ''],
49
+ [1, 2],
50
+ [1, 2, 3],
51
+ ['...', '..1', 3]
52
+ ]
53
+ RULES = {
54
+ ['...', '.!.'] => 'If last Piece is Any Piece, Different color Piece is next',
55
+ ['...', '..='] => 'If last Piece is Any Piece, Same shape Piece is next',
56
+ ['...', '1..'] => 'If last Piece is Any Piece, Big Piece is next',
57
+ ['...', '.!1'] => 'If last Piece is Any Piece, Different color Diamond Piece is next',
58
+ ['..1', '1..', '0..'] => 'If last Piece is Diamond Piece, Big Piece is next, otherwise Small Piece is next',
59
+ ['1..', '.0.', '.1.'] => 'If last Piece is Big Piece, Green Piece is next, otherwise Yellow Piece is next',
60
+ ['..1', '=..', '!..'] => 'If last Piece is Diamond Piece, Same size Piece is next, otherwise Different size Piece is next',
61
+ ['.1.', '..!', '0..'] => 'If last Piece is Yellow Piece, Different shape Piece is next, otherwise Small Piece is next'
62
+ }
63
+
64
+
65
+ WRONG_CODES = ["B", 'BY', 'BSYC', 'BYG', 'BYCD', 'BGX', 'ZXC', 'ZXAQWET1234567890', " "]
66
+
67
+ SPECIAL_CODES = {
68
+ '...' => 'Any',
69
+ '1..' => 'Big',
70
+ '0..' => 'Small',
71
+ '.1.' => 'Yellow',
72
+ '.0.' => 'Green',
73
+ '..1' => 'Diamond',
74
+ '..0' => 'Circle',
75
+ '11.' => 'Big Yellow',
76
+ '10.' => 'Big Green',
77
+ '01.' => 'Small Yellow',
78
+ '00.' => 'Small Green',
79
+ '1.1' => 'Big Diamond',
80
+ '1.0' => 'Big Circle',
81
+ '0.1' => 'Small Diamond',
82
+ '0.0' => 'Small Circle',
83
+ '.11' => 'Yellow Diamond',
84
+ '.10' => 'Yellow Circle',
85
+ '.01' => 'Green Diamond',
86
+ '.00' => 'Green Circle',
87
+ '!..' => 'Different size',
88
+ '=..' => 'Same size',
89
+ '.!.' => 'Different color',
90
+ '.=.' => 'Same color',
91
+ '..!' => 'Different shape',
92
+ '..=' => 'Same shape',
93
+ '!!.' => 'Different size Different color',
94
+ '!=.' => 'Different size Same color',
95
+ '=!.' => 'Same size Different color',
96
+ '==.' => 'Same size Same color',
97
+ '!.!' => 'Different size Different shape',
98
+ '!.=' => 'Different size Same shape',
99
+ '=.!' => 'Same size Different shape',
100
+ '=.=' => 'Same size Same shape',
101
+ '.!!' => 'Different color Different shape',
102
+ '.!=' => 'Different color Same shape',
103
+ '.=!' => 'Same color Different shape',
104
+ '.==' => 'Same color Same shape',
105
+ '!!1' => 'Different size Different color Diamond',
106
+ '!=1' => 'Different size Same color Diamond',
107
+ '=!1' => 'Same size Different color Diamond',
108
+ '==1' => 'Same size Same color Diamond',
109
+ '!1!' => 'Different size Yellow Different shape',
110
+ '!1=' => 'Different size Yellow Same shape',
111
+ '=1!' => 'Same size Yellow Different shape',
112
+ '=1=' => 'Same size Yellow Same shape',
113
+ '1!!' => 'Big Different color Different shape',
114
+ '1!=' => 'Big Different color Same shape',
115
+ '1=!' => 'Big Same color Different shape',
116
+ '1==' => 'Big Same color Same shape',
117
+ '!!0' => 'Different size Different color Circle',
118
+ '!=0' => 'Different size Same color Circle',
119
+ '=!0' => 'Same size Different color Circle',
120
+ '==0' => 'Same size Same color Circle',
121
+ '!0!' => 'Different size Green Different shape',
122
+ '!0=' => 'Different size Green Same shape',
123
+ '=0!' => 'Same size Green Different shape',
124
+ '=0=' => 'Same size Green Same shape',
125
+ '0!!' => 'Small Different color Different shape',
126
+ '0!=' => 'Small Different color Same shape',
127
+ '0=!' => 'Small Same color Different shape',
128
+ '0==' => 'Small Same color Same shape',
129
+ '!!!' => 'All Different',
130
+ '===' => 'All Same',
131
+ 'B!0' => 'Big Different color Circle',
132
+ '!g0' => 'Different size Green Circle',
133
+ '0!0' => 'Small Different color Circle',
134
+ '=10' => 'Same size Yellow Circle',
135
+ '!0d' => 'Different size Green Diamond',
136
+ '!00' => 'Different size Green Circle',
137
+ '=01' => 'Same size Green Diamond',
138
+ '=gc' => 'Same size Green Circle',
139
+ '0y!' => 'Small Yellow Different shape',
140
+ '00=' => 'Small Green Same shape',
141
+ '0Y!' => 'Small Yellow Different shape',
142
+ 's1=' => 'Small Yellow Same shape',
143
+ }
144
+ CODES = {
145
+ "BYR"=>BYD,
146
+ "BYD"=>BYD,
147
+ "bYR"=>BYD,
148
+ "ByR"=>BYD,
149
+ "BYr"=>BYD,
150
+ "byR"=>BYD,
151
+ "bYr"=>BYD,
152
+ "byr"=>BYD,
153
+ "byd"=>BYD,
154
+ "111"=>BYD,
155
+ "bdy"=>BYD,
156
+ "B YD"=>BYD,
157
+ "dyb"=>BYD,
158
+ "bY R"=>BYD,
159
+ "B y R"=>BYD,
160
+ " b y R "=>BYD,
161
+ "bYr "=>BYD,
162
+ " byr"=>BYD,
163
+ "1 1 1"=>BYD,
164
+ "SYR"=>"Small Yellow Diamond",
165
+ "SYD"=>"Small Yellow Diamond",
166
+ "syr"=>"Small Yellow Diamond",
167
+ "syd"=>"Small Yellow Diamond",
168
+ "011"=>"Small Yellow Diamond",
169
+ "dys"=>"Small Yellow Diamond",
170
+ "BGR"=>"Big Green Diamond",
171
+ "BGD"=>"Big Green Diamond",
172
+ "bgr"=>"Big Green Diamond",
173
+ "bgd"=>"Big Green Diamond",
174
+ "BgR"=>"Big Green Diamond",
175
+ "101"=>"Big Green Diamond",
176
+ "SGR"=>"Small Green Diamond",
177
+ "SGD"=>"Small Green Diamond",
178
+ "sgd"=>"Small Green Diamond",
179
+ "001"=>"Small Green Diamond",
180
+ "BYC"=>"Big Yellow Circle",
181
+ "byc"=>"Big Yellow Circle",
182
+ "byC"=>"Big Yellow Circle",
183
+ "bYC"=>"Big Yellow Circle",
184
+ "bYc"=>"Big Yellow Circle",
185
+ "Byc"=>"Big Yellow Circle",
186
+ "ByC"=>"Big Yellow Circle",
187
+ "BYc"=>"Big Yellow Circle",
188
+ "110"=>"Big Yellow Circle",
189
+ "SYC"=>"Small Yellow Circle",
190
+ "syc"=>"Small Yellow Circle",
191
+ "010"=>"Small Yellow Circle",
192
+ "BGC"=>"Big Green Circle",
193
+ "bgc"=>"Big Green Circle",
194
+ "100"=>"Big Green Circle",
195
+ "SGC"=>"Small Green Circle",
196
+ "sgc"=>"Small Green Circle",
197
+ "000"=>"Small Green Circle" }
198
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: elus
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - arvicco
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-03-11 00:00:00 +03:00
13
+ default_executable: elus
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.2.9
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: cucumber
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: This is a support tool for winning SpaceRangers:Elus
36
+ email: arvitallian@gmail.com
37
+ executables:
38
+ - elus
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - LICENSE
43
+ - README.rdoc
44
+ files:
45
+ - .document
46
+ - .gitignore
47
+ - LICENSE
48
+ - README.rdoc
49
+ - Rakefile
50
+ - VERSION
51
+ - bin/elus
52
+ - doc/dev_plan.htm
53
+ - doc/dev_plan_files/colorschememapping.xml
54
+ - doc/dev_plan_files/filelist.xml
55
+ - doc/dev_plan_files/themedata.thmx
56
+ - doc/user_stories.htm
57
+ - doc/user_stories_files/colorschememapping.xml
58
+ - doc/user_stories_files/filelist.xml
59
+ - doc/user_stories_files/themedata.thmx
60
+ - elus.gemspec
61
+ - features/gamer_inputs_state.feature
62
+ - features/gamer_starts_solver.feature
63
+ - features/gamer_updates_state.feature
64
+ - features/solver_shows_hints.feature
65
+ - features/step_definitions/elus_steps.rb
66
+ - features/support/env.rb
67
+ - features/support/stats.rb
68
+ - lib/elus.rb
69
+ - lib/elus/game.rb
70
+ - lib/elus/generator.rb
71
+ - lib/elus/piece.rb
72
+ - lib/elus/rule.rb
73
+ - lib/elus/solver.rb
74
+ - spec/cucumber/stats_spec.rb
75
+ - spec/elus/game_spec.rb
76
+ - spec/elus/generator_spec.rb
77
+ - spec/elus/piece_spec.rb
78
+ - spec/elus/rule_spec.rb
79
+ - spec/elus/solver_spec.rb
80
+ - spec/spec.opts
81
+ - spec/spec_helper.rb
82
+ has_rdoc: true
83
+ homepage: http://github.com/arvicco/elus
84
+ licenses: []
85
+
86
+ post_install_message:
87
+ rdoc_options:
88
+ - --charset=UTF-8
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: "0"
96
+ version:
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: "0"
102
+ version:
103
+ requirements: []
104
+
105
+ rubyforge_project:
106
+ rubygems_version: 1.3.5
107
+ signing_key:
108
+ specification_version: 3
109
+ summary: This is a support tool for winning SpaceRangers:Elus
110
+ test_files:
111
+ - spec/cucumber/stats_spec.rb
112
+ - spec/elus/game_spec.rb
113
+ - spec/elus/generator_spec.rb
114
+ - spec/elus/piece_spec.rb
115
+ - spec/elus/rule_spec.rb
116
+ - spec/elus/solver_spec.rb
117
+ - spec/spec_helper.rb