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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +30 -0
- data/Rakefile +57 -0
- data/VERSION +1 -0
- data/bin/elus +8 -0
- data/doc/dev_plan.htm +923 -0
- data/doc/dev_plan_files/colorschememapping.xml +2 -0
- data/doc/dev_plan_files/filelist.xml +6 -0
- data/doc/dev_plan_files/themedata.thmx +0 -0
- data/doc/user_stories.htm +959 -0
- data/doc/user_stories_files/colorschememapping.xml +2 -0
- data/doc/user_stories_files/filelist.xml +6 -0
- data/doc/user_stories_files/themedata.thmx +0 -0
- data/elus.gemspec +91 -0
- data/features/gamer_inputs_state.feature +135 -0
- data/features/gamer_starts_solver.feature +13 -0
- data/features/gamer_updates_state.feature +27 -0
- data/features/solver_shows_hints.feature +36 -0
- data/features/step_definitions/elus_steps.rb +116 -0
- data/features/support/env.rb +5 -0
- data/features/support/stats.rb +32 -0
- data/lib/elus.rb +5 -0
- data/lib/elus/game.rb +74 -0
- data/lib/elus/generator.rb +48 -0
- data/lib/elus/piece.rb +93 -0
- data/lib/elus/rule.rb +36 -0
- data/lib/elus/solver.rb +84 -0
- data/spec/cucumber/stats_spec.rb +13 -0
- data/spec/elus/game_spec.rb +116 -0
- data/spec/elus/generator_spec.rb +124 -0
- data/spec/elus/piece_spec.rb +190 -0
- data/spec/elus/rule_spec.rb +39 -0
- data/spec/elus/solver_spec.rb +203 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +198 -0
- metadata +117 -0
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<a:clrMap xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>
|
Binary file
|
data/elus.gemspec
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{elus}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["arvicco"]
|
12
|
+
s.date = %q{2010-03-11}
|
13
|
+
s.default_executable = %q{elus}
|
14
|
+
s.description = %q{This is a support tool for winning SpaceRangers:Elus}
|
15
|
+
s.email = %q{arvitallian@gmail.com}
|
16
|
+
s.executables = ["elus"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
".gitignore",
|
24
|
+
"LICENSE",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"bin/elus",
|
29
|
+
"doc/dev_plan.htm",
|
30
|
+
"doc/dev_plan_files/colorschememapping.xml",
|
31
|
+
"doc/dev_plan_files/filelist.xml",
|
32
|
+
"doc/dev_plan_files/themedata.thmx",
|
33
|
+
"doc/user_stories.htm",
|
34
|
+
"doc/user_stories_files/colorschememapping.xml",
|
35
|
+
"doc/user_stories_files/filelist.xml",
|
36
|
+
"doc/user_stories_files/themedata.thmx",
|
37
|
+
"elus.gemspec",
|
38
|
+
"features/gamer_inputs_state.feature",
|
39
|
+
"features/gamer_starts_solver.feature",
|
40
|
+
"features/gamer_updates_state.feature",
|
41
|
+
"features/solver_shows_hints.feature",
|
42
|
+
"features/step_definitions/elus_steps.rb",
|
43
|
+
"features/support/env.rb",
|
44
|
+
"features/support/stats.rb",
|
45
|
+
"lib/elus.rb",
|
46
|
+
"lib/elus/game.rb",
|
47
|
+
"lib/elus/generator.rb",
|
48
|
+
"lib/elus/piece.rb",
|
49
|
+
"lib/elus/rule.rb",
|
50
|
+
"lib/elus/solver.rb",
|
51
|
+
"spec/cucumber/stats_spec.rb",
|
52
|
+
"spec/elus/game_spec.rb",
|
53
|
+
"spec/elus/generator_spec.rb",
|
54
|
+
"spec/elus/piece_spec.rb",
|
55
|
+
"spec/elus/rule_spec.rb",
|
56
|
+
"spec/elus/solver_spec.rb",
|
57
|
+
"spec/spec.opts",
|
58
|
+
"spec/spec_helper.rb"
|
59
|
+
]
|
60
|
+
s.homepage = %q{http://github.com/arvicco/elus}
|
61
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
62
|
+
s.require_paths = ["lib"]
|
63
|
+
s.rubygems_version = %q{1.3.5}
|
64
|
+
s.summary = %q{This is a support tool for winning SpaceRangers:Elus}
|
65
|
+
s.test_files = [
|
66
|
+
"spec/cucumber/stats_spec.rb",
|
67
|
+
"spec/elus/game_spec.rb",
|
68
|
+
"spec/elus/generator_spec.rb",
|
69
|
+
"spec/elus/piece_spec.rb",
|
70
|
+
"spec/elus/rule_spec.rb",
|
71
|
+
"spec/elus/solver_spec.rb",
|
72
|
+
"spec/spec_helper.rb"
|
73
|
+
]
|
74
|
+
|
75
|
+
if s.respond_to? :specification_version then
|
76
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
77
|
+
s.specification_version = 3
|
78
|
+
|
79
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
80
|
+
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
81
|
+
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
82
|
+
else
|
83
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
84
|
+
s.add_dependency(%q<cucumber>, [">= 0"])
|
85
|
+
end
|
86
|
+
else
|
87
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
88
|
+
s.add_dependency(%q<cucumber>, [">= 0"])
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
@@ -0,0 +1,135 @@
|
|
1
|
+
Feature: Gamer inputs Game state
|
2
|
+
|
3
|
+
In order to get help with specific Elus game,
|
4
|
+
as Gamer, I want to input Game state
|
5
|
+
|
6
|
+
Description: Gamer enters 3-char sequences representing 3 free Pieces.
|
7
|
+
If the Game just started, he is then prompted for 3 3-char sequences representing Pieces already on the Board.
|
8
|
+
|
9
|
+
Pieces have 3 characteristics: Size: BIG/SMALL, Color: YELLOW/GREEN, Type: DIAMOND/CIRCLE
|
10
|
+
Gamer's input will be in a form BYR, SGC, etc
|
11
|
+
|
12
|
+
Scenario: every correct code results in correct feedback / game state
|
13
|
+
Given new Game just started
|
14
|
+
When I run solver 2,000 times and use 6 correct codes to input state
|
15
|
+
Then I should see all the correct feedback, piece names and game states
|
16
|
+
|
17
|
+
Scenario Outline: every correct code results in correct feedback and game state
|
18
|
+
Given new Game just started
|
19
|
+
When I input code <code>
|
20
|
+
Then I should see "You entered Free Piece (1): <piece>"
|
21
|
+
|
22
|
+
Examples: Big Yellow Diamond
|
23
|
+
| code | piece |
|
24
|
+
| BYR | Big Yellow Diamond |
|
25
|
+
| BYD | Big Yellow Diamond |
|
26
|
+
| bYR | Big Yellow Diamond |
|
27
|
+
| ByR | Big Yellow Diamond |
|
28
|
+
| BYr | Big Yellow Diamond |
|
29
|
+
| byR | Big Yellow Diamond |
|
30
|
+
| bYr | Big Yellow Diamond |
|
31
|
+
| byr | Big Yellow Diamond |
|
32
|
+
| byd | Big Yellow Diamond |
|
33
|
+
| 111 | Big Yellow Diamond |
|
34
|
+
| bdy | Big Yellow Diamond |
|
35
|
+
| dyb | Big Yellow Diamond |
|
36
|
+
| d y b | Big Yellow Diamond |
|
37
|
+
| dby | Big Yellow Diamond |
|
38
|
+
| ybd | Big Yellow Diamond |
|
39
|
+
| ddddyb | Big Yellow Diamond |
|
40
|
+
| dyybb | Big Yellow Diamond |
|
41
|
+
| dxbyxd | Big Yellow Diamond |
|
42
|
+
| by1 | Big Yellow Diamond |
|
43
|
+
|
44
|
+
Examples: Small Yellow Diamond
|
45
|
+
| code | piece |
|
46
|
+
| SYR | Small Yellow Diamond|
|
47
|
+
| SYD | Small Yellow Diamond|
|
48
|
+
| syr | Small Yellow Diamond|
|
49
|
+
| syd | Small Yellow Diamond|
|
50
|
+
| 011 | Small Yellow Diamond|
|
51
|
+
| dys | Small Yellow Diamond|
|
52
|
+
|
53
|
+
Examples: Big Green Diamond
|
54
|
+
| code | piece |
|
55
|
+
| BGR | Big Green Diamond |
|
56
|
+
| BGD | Big Green Diamond |
|
57
|
+
| bgr | Big Green Diamond |
|
58
|
+
| bgd | Big Green Diamond |
|
59
|
+
| BgR | Big Green Diamond |
|
60
|
+
| 101 | Big Green Diamond |
|
61
|
+
|
62
|
+
Examples: Small Green Diamond
|
63
|
+
| code | piece |
|
64
|
+
| SGR | Small Green Diamond |
|
65
|
+
| SGD | Small Green Diamond |
|
66
|
+
| sgd | Small Green Diamond |
|
67
|
+
| 001 | Small Green Diamond |
|
68
|
+
|
69
|
+
Examples: Big Yellow Circle
|
70
|
+
| code | piece |
|
71
|
+
| BYC | Big Yellow Circle |
|
72
|
+
| byc | Big Yellow Circle |
|
73
|
+
| byC | Big Yellow Circle |
|
74
|
+
| bYC | Big Yellow Circle |
|
75
|
+
| bYc | Big Yellow Circle |
|
76
|
+
| Byc | Big Yellow Circle |
|
77
|
+
| ByC | Big Yellow Circle |
|
78
|
+
| BYC | Big Yellow Circle |
|
79
|
+
| BYc | Big Yellow Circle |
|
80
|
+
| 110 | Big Yellow Circle |
|
81
|
+
|
82
|
+
Examples: Small Yellow Diamond
|
83
|
+
| code | piece |
|
84
|
+
| SYC | Small Yellow Circle |
|
85
|
+
| syc | Small Yellow Circle |
|
86
|
+
| 010 | Small Yellow Circle |
|
87
|
+
|
88
|
+
Examples: Big Green Circle
|
89
|
+
| code | piece |
|
90
|
+
| BGC | Big Green Circle |
|
91
|
+
| bgc | Big Green Circle |
|
92
|
+
| 100 | Big Green Circle |
|
93
|
+
|
94
|
+
Examples: Small Green Circle
|
95
|
+
| code | piece |
|
96
|
+
| SGC | Small Green Circle |
|
97
|
+
| sgc | Small Green Circle |
|
98
|
+
| 000 | Small Green Circle |
|
99
|
+
|
100
|
+
Scenario Outline: wrong codes results in error message
|
101
|
+
Given new Game just started
|
102
|
+
When I input code <code>
|
103
|
+
Then I should see "Invalid code: <code>"
|
104
|
+
|
105
|
+
Examples: Ambiguous codes
|
106
|
+
| code |
|
107
|
+
| BSYR |
|
108
|
+
| BYgD |
|
109
|
+
| bYRc |
|
110
|
+
| Bydc |
|
111
|
+
| BsYgr |
|
112
|
+
| bygRc |
|
113
|
+
| bsYrc |
|
114
|
+
| bsygcr |
|
115
|
+
|
116
|
+
Examples: Not enough meaningful codes
|
117
|
+
| code |
|
118
|
+
| _ |
|
119
|
+
| !@# |
|
120
|
+
| B |
|
121
|
+
| gb |
|
122
|
+
| gr |
|
123
|
+
| sca |
|
124
|
+
| bgt |
|
125
|
+
| thd |
|
126
|
+
|
127
|
+
Examples: Numeric code errors (not enough, too much, wrong numbers)
|
128
|
+
| code |
|
129
|
+
| 0 |
|
130
|
+
| 1 |
|
131
|
+
| 01 |
|
132
|
+
| 11 |
|
133
|
+
| 1111 |
|
134
|
+
| 112 |
|
135
|
+
| 101231|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Gamer starts Solver
|
2
|
+
|
3
|
+
In order to win multiple Elus games,
|
4
|
+
as Gamer, I want to start Solver
|
5
|
+
|
6
|
+
Description: Gamer opens up a shell, types a command, and sees a welcome message and a prompt to input Game state.
|
7
|
+
|
8
|
+
Scenario: start Solver
|
9
|
+
Given I have not started yet
|
10
|
+
When I start Solver
|
11
|
+
Then I should see "Welcome to Elus Solver!"
|
12
|
+
And I should see "Enter Game state:"
|
13
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: Gamer updates state
|
2
|
+
|
3
|
+
In order to get relevant help as the Elus game progress,
|
4
|
+
as Gamer, I want to update Game state, making moves and reporting its results
|
5
|
+
|
6
|
+
Description: In response to "Please make your move:" prompt, Gamer enters 3-char code of the
|
7
|
+
Piece he is going to move (it should be one of 3 free Pieces). Gamer then gets feedback
|
8
|
+
either confirming the move or error message and prompt for the correct move. Once the move
|
9
|
+
is confirmed, Gamer is asked for move result (was the move right or wrong) and a new set of
|
10
|
+
free Game pieces if the result was right.
|
11
|
+
|
12
|
+
Scenario Outline: Gamer makes moves
|
13
|
+
Given Elus Game state is <state>
|
14
|
+
And Game started with <generator>
|
15
|
+
And Game state inputed
|
16
|
+
When I move <piece>
|
17
|
+
Then I should see "<feedback>"
|
18
|
+
And I should see "<next prompt>"
|
19
|
+
|
20
|
+
Examples:
|
21
|
+
| state | generator | piece | feedback | next prompt |
|
22
|
+
| BGC sgd syc BYD SYD BGD | Turn1Generator | SGD | You moved: Small Green Diamond | Was the move right(Y/N)?:|
|
23
|
+
| BGC sgd syc BYD SYD BGD | Turn1Generator | BGC | You moved: Big Green Circle | Was the move right(Y/N)?:|
|
24
|
+
| BGC sgd syc BYD SYD BGD | Turn1Generator | SYC | You moved: Small Yellow Circle | Was the move right(Y/N)?:|
|
25
|
+
| BGC sgd syc BYD SYD BGD | Turn1Generator | | Wrong move (no piece given) | Make your move: |
|
26
|
+
| BGC sgd syc BYD SYD BGD | Turn1Generator | SYD | Wrong move (not in free set): Small Yellow Diamond | Make your move: |
|
27
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
Feature: Solver shows hints
|
2
|
+
|
3
|
+
In order to get some help with Elus game
|
4
|
+
as Gamer, I want the Solver to show hints
|
5
|
+
|
6
|
+
Description: Once the Gamer inputs/updates valid Elus Game state,
|
7
|
+
Solver tries to figure out WHAT Rules may be possible under current Game state,
|
8
|
+
produces hints regarding possible rules and next moves by the Gamer and displays hints to the Gamer.
|
9
|
+
|
10
|
+
Scenario Outline: Solver shows hints after initial Game state input
|
11
|
+
Given Elus Game state is <state>
|
12
|
+
And Game started with <generator>
|
13
|
+
When I input Game state and prepare to move
|
14
|
+
Then I should see "<moves>"
|
15
|
+
And I should see "<rules>"
|
16
|
+
|
17
|
+
Examples: Invalid Game states:
|
18
|
+
| generator | state | moves | rules |
|
19
|
+
| EmptyGenerator | BYD BYD BYD BYD BYD BYD | Moves(0): | Rules(0): |
|
20
|
+
| Turn1Generator | BYD BYD BYD BYD BYD BYD | Moves(0): | Rules(0): |
|
21
|
+
| Turn2Generator | BYD BYD BYD BYD BYD BYD | Moves(0): | Rules(0): |
|
22
|
+
| Turn3Generator | BYD BYD BYD BYD BYD BYD | Moves(0): | Rules(0): |
|
23
|
+
|
24
|
+
Examples: Valid Game states:
|
25
|
+
| generator | state | moves | rules |
|
26
|
+
| Turn1Generator | BGC sgd syc BYD SYD BGD | Moves(1): | Rules(2): |
|
27
|
+
|
28
|
+
Scenario Outline: Solver shows hints after Gamer makes his move state input
|
29
|
+
Given Elus Game state is <code1>,<code2>,<code3>,<code4>,<code5>,<code6>
|
30
|
+
And Game started with <generator>
|
31
|
+
And initial Game state was already input
|
32
|
+
When I move this <piece>
|
33
|
+
Then I should see "<moves>"
|
34
|
+
And I should see "<rules>"
|
35
|
+
|
36
|
+
|
@@ -0,0 +1,116 @@
|
|
1
|
+
def stdout
|
2
|
+
@stdout ||= StringIO.new # STDOUT is an instance of IO. The StringIO object is very much like an IO object.
|
3
|
+
end
|
4
|
+
|
5
|
+
def stdin(input=nil)
|
6
|
+
@stdin ||= StringIO.new # STDIN is an instance of IO. The StringIO object is very much like an IO object.
|
7
|
+
@stdin.reopen input if input
|
8
|
+
@stdin
|
9
|
+
end
|
10
|
+
|
11
|
+
def solver
|
12
|
+
@solver ||= Elus::Solver.new(stdin, stdout) # Elus::Solver expects STDOUT, but we're giving it our StringIO @stdout instead
|
13
|
+
end
|
14
|
+
|
15
|
+
def solver_restart_and_input(input_codes)
|
16
|
+
@stdin = StringIO.new
|
17
|
+
@stdout = StringIO.new
|
18
|
+
stdin input_codes.join("\n")+"\n\n"
|
19
|
+
@solver = Elus::Solver.new(stdin, stdout)
|
20
|
+
solver.start generator
|
21
|
+
solver.input_state
|
22
|
+
end
|
23
|
+
|
24
|
+
def generator
|
25
|
+
@generator ||= stub('generator', :generate_rules => [])
|
26
|
+
end
|
27
|
+
|
28
|
+
def fixnum_from(string)
|
29
|
+
string.scan(/\d/).join.to_i
|
30
|
+
end
|
31
|
+
|
32
|
+
def messages_should_include(message)
|
33
|
+
@stdout.string.split("\n" ).should include(message)
|
34
|
+
end
|
35
|
+
|
36
|
+
def messages_include?(message)
|
37
|
+
@stdout.string.split("\n").include?(message)
|
38
|
+
end
|
39
|
+
|
40
|
+
def outputs_count(string, options={})
|
41
|
+
pattern = Regexp.new(options[:regex]? string : Regexp.escape(string))
|
42
|
+
@stdout.string.scan(pattern).size
|
43
|
+
end
|
44
|
+
|
45
|
+
def outputs_count_should_be_correct_for input_codes
|
46
|
+
# For each unique name corresponding to one of the input_codes
|
47
|
+
input_codes.map {|code| @code_names[code]}.uniq.each do |name|
|
48
|
+
repeats = input_codes.count {|code| @code_names[code]==name}
|
49
|
+
name_feedback = Regexp.escape('You entered ') + '.*' + Regexp.escape(": #{name}")
|
50
|
+
outputs_count(name_feedback, :regex => true).should == repeats
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
Given /^I have not started yet$/ do
|
55
|
+
end
|
56
|
+
|
57
|
+
When /^I start Solver$/ do
|
58
|
+
solver.start generator
|
59
|
+
end
|
60
|
+
|
61
|
+
Then /^I should see "([^\"]*)"$/ do |message|
|
62
|
+
messages_should_include(message)
|
63
|
+
end
|
64
|
+
|
65
|
+
Given /^new Game just started$/ do
|
66
|
+
solver.start generator
|
67
|
+
end
|
68
|
+
|
69
|
+
When /^I input code (.*)$/ do |code|
|
70
|
+
stdin "#{code}\n"+"BYR\n"*6+"\n"
|
71
|
+
solver.input_state
|
72
|
+
end
|
73
|
+
|
74
|
+
When /^I run solver (.*) times and use (.*) correct codes to input state/ do |times, num_codes|
|
75
|
+
@times = fixnum_from(times)
|
76
|
+
@num_codes = fixnum_from(num_codes)
|
77
|
+
@code_names = ElusTest::CODES
|
78
|
+
end
|
79
|
+
|
80
|
+
Then /^I should see all the correct feedback, piece names and game states$/ do
|
81
|
+
@times.times do
|
82
|
+
#@code_names.keys.combination(@num_codes) do |input_codes| # Takes too long to complete!
|
83
|
+
input_codes = Array.new(@num_codes) {|i| @code_names.keys[rand(@code_names.size)]}
|
84
|
+
solver_restart_and_input input_codes
|
85
|
+
|
86
|
+
outputs_count_should_be_correct_for input_codes
|
87
|
+
# outputs_count('Free:').should == 1
|
88
|
+
# outputs_count('Board:').should == 1
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
Given /^Elus Game state is (.*)$/ do |state|
|
94
|
+
stdin state.split(' ').join("\n")+"\n\n"
|
95
|
+
end
|
96
|
+
|
97
|
+
Given /^Game started with (.*)$/ do |gen_type|
|
98
|
+
Generator = Elus.const_get gen_type
|
99
|
+
solver.start Generator.new
|
100
|
+
end
|
101
|
+
|
102
|
+
When /^I input Game state and prepare to move$/ do
|
103
|
+
solver.input_state
|
104
|
+
@stdin.reopen "\n\n" # Inputing zero code for first move
|
105
|
+
solver.make_move
|
106
|
+
end
|
107
|
+
|
108
|
+
Given /^Game state inputed$/ do
|
109
|
+
solver.input_state
|
110
|
+
end
|
111
|
+
|
112
|
+
When /^I move (.*)$/ do |piece|
|
113
|
+
@stdin.reopen(piece+"\nY\nSYC\nSYD\nBYC\n")
|
114
|
+
solver.make_move
|
115
|
+
end
|
116
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#module ElusTest
|
2
|
+
# class Stats
|
3
|
+
# def initialize(strings)
|
4
|
+
# @strings = strings
|
5
|
+
# @input_names.unique.each {|name| @counters[name]=0 }
|
6
|
+
## @input_names = @input_codes.map {|code| codetable[code]}
|
7
|
+
## @counters = {}
|
8
|
+
##
|
9
|
+
## @counters["Free:"] = 0
|
10
|
+
## @counters["Board:"] = 0
|
11
|
+
# end
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# def puts(message)
|
15
|
+
# @counters.each do |name, counter|
|
16
|
+
#
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# def count_for(code_or_name)
|
21
|
+
#
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# def correct?
|
25
|
+
# # @feedback.should == @runs
|
26
|
+
# # @piece.should == @runs
|
27
|
+
# # @free.should == @runs
|
28
|
+
# # @board.should == @runs
|
29
|
+
# end
|
30
|
+
#
|
31
|
+
# end
|
32
|
+
#end
|