connect_n_game 0.0.2 → 0.0.4
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 +4 -4
- data/README.md +11 -0
- data/bin/connect_n_game +1 -8
- data/connect_n_game.gemspec +1 -1
- data/lib/cli/process_options.rb +3 -1
- data/lib/cli/select_players.rb +1 -1
- data/lib/connect_n_game/players/basic.rb +1 -1
- data/lib/connect_n_game/players/middle.rb +1 -1
- data/lib/connect_n_game/players/prudent.rb +1 -1
- data/lib/connect_n_game/version.rb +1 -1
- data/tests/test_rack.rb +222 -222
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13851d1ad1c10ceeccbfa2fbb9d2d809c402b5f0
|
4
|
+
data.tar.gz: cc31ac550cc1f48c86e3d8a5658693008a249dc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54da2ed6be1edd0c0c4fe2dcc6390d1d936f4b3d966838b9bbbf8fe5608e48162dd2ddae0b9803474569ce55ecb8ffcc8b6fa1c6aea44ee300e067ba88e48fa5
|
7
|
+
data.tar.gz: 92432f988aad1058ee850fc3a5b2dc52c1f5d76031d3ec831d1d072c2d00c35404c85eb146bf9cdfbd223e30d87a46cdeefa1e7cdcb8ed1dc3c644cfa816f68b
|
data/README.md
CHANGED
@@ -72,3 +72,14 @@ Player Selection:
|
|
72
72
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
73
73
|
4. Push to the branch (`git push origin my-new-feature`)
|
74
74
|
5. Create a new Pull Request
|
75
|
+
|
76
|
+
## License
|
77
|
+
|
78
|
+
The gem is available as open source under the terms of the
|
79
|
+
[MIT License](./LICENSE.txt).
|
80
|
+
|
81
|
+
## Code of Conduct
|
82
|
+
|
83
|
+
Everyone interacting in the fully_freeze project’s codebases, issue trackers,
|
84
|
+
chat rooms and mailing lists is expected to follow the
|
85
|
+
[code of conduct](./CODE_OF_CONDUCT.md).
|
data/bin/connect_n_game
CHANGED
@@ -3,14 +3,7 @@
|
|
3
3
|
|
4
4
|
#Run the Connect N Game from the command line.
|
5
5
|
|
6
|
-
|
7
|
-
begin
|
8
|
-
require 'connect_n_game'
|
9
|
-
rescue LoadError
|
10
|
-
require_relative '../lib/connect_n_game'
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
6
|
+
require_relative '../lib/connect_n_game'
|
14
7
|
require_relative '../lib/cli/cli'
|
15
8
|
|
16
9
|
ConnectNGame::CLI.new.main
|
data/connect_n_game.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
-
spec.add_development_dependency "rake", "
|
22
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
23
23
|
spec.add_development_dependency 'minitest', "~> 5.5.1"
|
24
24
|
spec.add_development_dependency 'rdoc', "~> 4.0.1"
|
25
25
|
|
data/lib/cli/process_options.rb
CHANGED
@@ -32,11 +32,13 @@ module ConnectNGame
|
|
32
32
|
when "--debug"
|
33
33
|
puts "Debug mode is enabled."
|
34
34
|
$game_debug = true
|
35
|
-
|
35
|
+
when "--help"
|
36
36
|
fail ""
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
fail "Invalid args #{ARGV.join(" ")}" unless ARGV.empty?
|
41
|
+
|
40
42
|
rescue => err
|
41
43
|
puts err.message
|
42
44
|
show_help
|
data/lib/cli/select_players.rb
CHANGED
data/tests/test_rack.rb
CHANGED
@@ -1,222 +1,222 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require_relative '../lib/connect_n_game'
|
4
|
-
gem 'minitest'
|
5
|
-
require 'minitest/autorun'
|
6
|
-
|
7
|
-
#Test the standard fOOrth library.
|
8
|
-
class RackTester < Minitest::Test
|
9
|
-
|
10
|
-
#Test that this test was run!
|
11
|
-
def test_dummy
|
12
|
-
assert_equal(ConnectNGame::VERSION.class, String)
|
13
|
-
end
|
14
|
-
|
15
|
-
#Test that we can create racks.
|
16
|
-
def test_creating_racks
|
17
|
-
assert_raises { ConnectNGame::Rack.new(3) }
|
18
|
-
|
19
|
-
tr = ConnectNGame::Rack.new(4)
|
20
|
-
assert_equal(4, tr.order)
|
21
|
-
assert_equal(6, tr.depth)
|
22
|
-
assert_equal(7, tr.width)
|
23
|
-
assert_equal([[],[],[],[],[],[],[]], tr.rack)
|
24
|
-
assert_equal(%w(A B C D E F G), tr.channel_names)
|
25
|
-
assert_equal([0.0078125, 0.03125, 0.125, 0.5, 0.25, 0.0625,
|
26
|
-
0.015625], tr.weights)
|
27
|
-
|
28
|
-
tr = ConnectNGame::Rack.new(5)
|
29
|
-
assert_equal(5, tr.order)
|
30
|
-
assert_equal(7, tr.depth)
|
31
|
-
assert_equal(9, tr.width)
|
32
|
-
assert_equal([[],[],[],[],[],[],[],[],[]], tr.rack)
|
33
|
-
assert_equal(%w(A B C D E F G H I), tr.channel_names)
|
34
|
-
assert_equal([0.001953125, 0.0078125, 0.03125, 0.125, 0.5,
|
35
|
-
0.25, 0.0625, 0.015625, 0.00390625], tr.weights)
|
36
|
-
|
37
|
-
tr = ConnectNGame::Rack.new(6)
|
38
|
-
assert_equal(6, tr.order)
|
39
|
-
assert_equal(9, tr.depth)
|
40
|
-
assert_equal(11, tr.width)
|
41
|
-
assert_equal([[],[],[],[],[],[],[],[],[],[],[]], tr.rack)
|
42
|
-
assert_equal(%w(A B C D E F G H I J K), tr.channel_names)
|
43
|
-
assert_equal([0.00048828125, 0.001953125, 0.0078125, 0.03125,
|
44
|
-
0.125, 0.5, 0.25, 0.0625, 0.015625, 0.00390625,
|
45
|
-
0.0009765625], tr.weights)
|
46
|
-
|
47
|
-
tr = ConnectNGame::Rack.new(7)
|
48
|
-
assert_equal(7, tr.order)
|
49
|
-
assert_equal(10, tr.depth)
|
50
|
-
assert_equal(11, tr.width)
|
51
|
-
assert_equal([[],[],[],[],[],[],[],[],[],[],[]], tr.rack)
|
52
|
-
assert_equal(%w(A B C D E F G H I J K), tr.channel_names)
|
53
|
-
assert_equal([0.00048828125, 0.001953125, 0.0078125, 0.03125,
|
54
|
-
0.125, 0.5, 0.25, 0.0625, 0.015625, 0.00390625,
|
55
|
-
0.0009765625], tr.weights)
|
56
|
-
|
57
|
-
tr = ConnectNGame::Rack.new(8)
|
58
|
-
assert_equal(8, tr.order)
|
59
|
-
assert_equal(12, tr.depth)
|
60
|
-
assert_equal(13, tr.width)
|
61
|
-
assert_equal([[],[],[],[],[],[],[],[],[],[],[],[],[]], tr.rack)
|
62
|
-
assert_equal(%w(A B C D E F G H I J K L M), tr.channel_names)
|
63
|
-
assert_equal([0.0001220703125, 0.00048828125, 0.001953125,
|
64
|
-
0.0078125, 0.03125, 0.125, 0.5, 0.25, 0.0625,
|
65
|
-
0.015625, 0.00390625, 0.0009765625,
|
66
|
-
0.000244140625], tr.weights)
|
67
|
-
|
68
|
-
assert_raises { ConnectNGame::Rack.new(9) }
|
69
|
-
end
|
70
|
-
|
71
|
-
#Test that it can retrieve channels
|
72
|
-
def test_get_channel
|
73
|
-
(4..8).each do |order|
|
74
|
-
tr = ConnectNGame::Rack.new(order)
|
75
|
-
|
76
|
-
(1..(tr.width)).each do |ch|
|
77
|
-
assert_equal([], tr.get_channel(ch))
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
#Test that it knows when a channel is full
|
83
|
-
def test_channel_and_rack_full
|
84
|
-
(4..8).each do |order|
|
85
|
-
tr = ConnectNGame::Rack.new(order)
|
86
|
-
|
87
|
-
#The channels are being filled.
|
88
|
-
(1..tr.depth).each do | _depth |
|
89
|
-
|
90
|
-
refute(tr.rack_full?)
|
91
|
-
|
92
|
-
(1..tr.width).each do | channel |
|
93
|
-
|
94
|
-
refute(tr.channel_full?(channel))
|
95
|
-
|
96
|
-
tr.get_channel(channel) << 1
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
#Now all the channels should be full.
|
101
|
-
(1..tr.width).each do | channel |
|
102
|
-
assert(tr.channel_full?(channel))
|
103
|
-
end
|
104
|
-
|
105
|
-
assert(tr.rack_full?)
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
#Test that we can query individual cells
|
110
|
-
def test_get_cell
|
111
|
-
tr = ConnectNGame::Rack.new(4)
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
tr.get_channel(1) << 1
|
117
|
-
assert_equal(1, tr.get_cell(1,1))
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
tr.get_channel(1) << 2
|
122
|
-
assert_equal(1, tr.get_cell(1,1))
|
123
|
-
assert_equal(2, tr.get_cell(1,2))
|
124
|
-
|
125
|
-
|
126
|
-
tr.get_channel(1) << 1
|
127
|
-
assert_equal(1, tr.get_cell(1,1))
|
128
|
-
assert_equal(2, tr.get_cell(1,2))
|
129
|
-
assert_equal(1, tr.get_cell(1,3))
|
130
|
-
end
|
131
|
-
|
132
|
-
#Test that we can play a channel.
|
133
|
-
def test_play_channel
|
134
|
-
tr = ConnectNGame::Rack.new(4)
|
135
|
-
|
136
|
-
assert_equal(1, tr.play_channel(1, 1))
|
137
|
-
assert_equal(2, tr.play_channel(1, 1))
|
138
|
-
assert_equal(3, tr.play_channel(1, 1))
|
139
|
-
assert_equal(4, tr.play_channel(1, 1))
|
140
|
-
assert_equal(5, tr.play_channel(1, 1))
|
141
|
-
assert_equal(6, tr.play_channel(1, 1))
|
142
|
-
|
143
|
-
#Playing a full channel has no effect or score.
|
144
|
-
assert_equal(6, tr.get_channel(1).length)
|
145
|
-
assert_equal(-9, tr.play_channel(1, 1))
|
146
|
-
assert_equal(6, tr.get_channel(1).length)
|
147
|
-
end
|
148
|
-
|
149
|
-
#Test getting the free row for a channel
|
150
|
-
def test_channel_to_row
|
151
|
-
tr = ConnectNGame::Rack.new(4)
|
152
|
-
|
153
|
-
assert_equal(1, tr.channel_to_row(1))
|
154
|
-
|
155
|
-
tr.play_channel(1,1)
|
156
|
-
assert_equal(2, tr.channel_to_row(1))
|
157
|
-
|
158
|
-
tr.play_channel(1,1)
|
159
|
-
assert_equal(3, tr.channel_to_row(1))
|
160
|
-
|
161
|
-
tr.play_channel(1,1)
|
162
|
-
assert_equal(4, tr.channel_to_row(1))
|
163
|
-
|
164
|
-
tr.play_channel(1,1)
|
165
|
-
assert_equal(5, tr.channel_to_row(1))
|
166
|
-
|
167
|
-
tr.play_channel(1,1)
|
168
|
-
assert_equal(6, tr.channel_to_row(1))
|
169
|
-
|
170
|
-
tr.play_channel(1,1)
|
171
|
-
|
172
|
-
end
|
173
|
-
|
174
|
-
#Test that we can count cells around a position.
|
175
|
-
def test_score_move
|
176
|
-
tr = ConnectNGame::Rack.new(4)
|
177
|
-
#.......
|
178
|
-
#.......
|
179
|
-
#.......
|
180
|
-
#.......
|
181
|
-
|
182
|
-
assert_equal(1, tr.play_channel(3,1))
|
183
|
-
#.......
|
184
|
-
#.......
|
185
|
-
#.......
|
186
|
-
#..X....
|
187
|
-
|
188
|
-
assert_equal(2, tr.play_channel(4,1))
|
189
|
-
#.......
|
190
|
-
#.......
|
191
|
-
#.......
|
192
|
-
#..XX...
|
193
|
-
|
194
|
-
assert_equal(2, tr.play_channel(4,1))
|
195
|
-
#.......
|
196
|
-
#.......
|
197
|
-
#...X...
|
198
|
-
#..XX...
|
199
|
-
|
200
|
-
assert_equal(2, tr.play_channel(3,1))
|
201
|
-
#.......
|
202
|
-
#.......
|
203
|
-
#..XX...
|
204
|
-
#..XX...
|
205
|
-
|
206
|
-
assert_equal(3, tr.play_channel(3,1))
|
207
|
-
#.......
|
208
|
-
#..X....
|
209
|
-
#..XX...
|
210
|
-
#..XX...
|
211
|
-
|
212
|
-
assert_equal(4, tr.play_channel(3,1))
|
213
|
-
#..X....
|
214
|
-
#..X....
|
215
|
-
#..XX...
|
216
|
-
#..XX...
|
217
|
-
|
218
|
-
#It should not hang either!
|
219
|
-
assert_raises { tr.score_move(3, nil) }
|
220
|
-
end
|
221
|
-
|
222
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require_relative '../lib/connect_n_game'
|
4
|
+
gem 'minitest'
|
5
|
+
require 'minitest/autorun'
|
6
|
+
|
7
|
+
#Test the standard fOOrth library.
|
8
|
+
class RackTester < Minitest::Test
|
9
|
+
|
10
|
+
#Test that this test was run!
|
11
|
+
def test_dummy
|
12
|
+
assert_equal(ConnectNGame::VERSION.class, String)
|
13
|
+
end
|
14
|
+
|
15
|
+
#Test that we can create racks.
|
16
|
+
def test_creating_racks
|
17
|
+
assert_raises { ConnectNGame::Rack.new(3) }
|
18
|
+
|
19
|
+
tr = ConnectNGame::Rack.new(4)
|
20
|
+
assert_equal(4, tr.order)
|
21
|
+
assert_equal(6, tr.depth)
|
22
|
+
assert_equal(7, tr.width)
|
23
|
+
assert_equal([[],[],[],[],[],[],[]], tr.rack)
|
24
|
+
assert_equal(%w(A B C D E F G), tr.channel_names)
|
25
|
+
assert_equal([0.0078125, 0.03125, 0.125, 0.5, 0.25, 0.0625,
|
26
|
+
0.015625], tr.weights)
|
27
|
+
|
28
|
+
tr = ConnectNGame::Rack.new(5)
|
29
|
+
assert_equal(5, tr.order)
|
30
|
+
assert_equal(7, tr.depth)
|
31
|
+
assert_equal(9, tr.width)
|
32
|
+
assert_equal([[],[],[],[],[],[],[],[],[]], tr.rack)
|
33
|
+
assert_equal(%w(A B C D E F G H I), tr.channel_names)
|
34
|
+
assert_equal([0.001953125, 0.0078125, 0.03125, 0.125, 0.5,
|
35
|
+
0.25, 0.0625, 0.015625, 0.00390625], tr.weights)
|
36
|
+
|
37
|
+
tr = ConnectNGame::Rack.new(6)
|
38
|
+
assert_equal(6, tr.order)
|
39
|
+
assert_equal(9, tr.depth)
|
40
|
+
assert_equal(11, tr.width)
|
41
|
+
assert_equal([[],[],[],[],[],[],[],[],[],[],[]], tr.rack)
|
42
|
+
assert_equal(%w(A B C D E F G H I J K), tr.channel_names)
|
43
|
+
assert_equal([0.00048828125, 0.001953125, 0.0078125, 0.03125,
|
44
|
+
0.125, 0.5, 0.25, 0.0625, 0.015625, 0.00390625,
|
45
|
+
0.0009765625], tr.weights)
|
46
|
+
|
47
|
+
tr = ConnectNGame::Rack.new(7)
|
48
|
+
assert_equal(7, tr.order)
|
49
|
+
assert_equal(10, tr.depth)
|
50
|
+
assert_equal(11, tr.width)
|
51
|
+
assert_equal([[],[],[],[],[],[],[],[],[],[],[]], tr.rack)
|
52
|
+
assert_equal(%w(A B C D E F G H I J K), tr.channel_names)
|
53
|
+
assert_equal([0.00048828125, 0.001953125, 0.0078125, 0.03125,
|
54
|
+
0.125, 0.5, 0.25, 0.0625, 0.015625, 0.00390625,
|
55
|
+
0.0009765625], tr.weights)
|
56
|
+
|
57
|
+
tr = ConnectNGame::Rack.new(8)
|
58
|
+
assert_equal(8, tr.order)
|
59
|
+
assert_equal(12, tr.depth)
|
60
|
+
assert_equal(13, tr.width)
|
61
|
+
assert_equal([[],[],[],[],[],[],[],[],[],[],[],[],[]], tr.rack)
|
62
|
+
assert_equal(%w(A B C D E F G H I J K L M), tr.channel_names)
|
63
|
+
assert_equal([0.0001220703125, 0.00048828125, 0.001953125,
|
64
|
+
0.0078125, 0.03125, 0.125, 0.5, 0.25, 0.0625,
|
65
|
+
0.015625, 0.00390625, 0.0009765625,
|
66
|
+
0.000244140625], tr.weights)
|
67
|
+
|
68
|
+
assert_raises { ConnectNGame::Rack.new(9) }
|
69
|
+
end
|
70
|
+
|
71
|
+
#Test that it can retrieve channels
|
72
|
+
def test_get_channel
|
73
|
+
(4..8).each do |order|
|
74
|
+
tr = ConnectNGame::Rack.new(order)
|
75
|
+
|
76
|
+
(1..(tr.width)).each do |ch|
|
77
|
+
assert_equal([], tr.get_channel(ch))
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
#Test that it knows when a channel is full
|
83
|
+
def test_channel_and_rack_full
|
84
|
+
(4..8).each do |order|
|
85
|
+
tr = ConnectNGame::Rack.new(order)
|
86
|
+
|
87
|
+
#The channels are being filled.
|
88
|
+
(1..tr.depth).each do | _depth |
|
89
|
+
|
90
|
+
refute(tr.rack_full?)
|
91
|
+
|
92
|
+
(1..tr.width).each do | channel |
|
93
|
+
|
94
|
+
refute(tr.channel_full?(channel))
|
95
|
+
|
96
|
+
tr.get_channel(channel) << 1
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
#Now all the channels should be full.
|
101
|
+
(1..tr.width).each do | channel |
|
102
|
+
assert(tr.channel_full?(channel))
|
103
|
+
end
|
104
|
+
|
105
|
+
assert(tr.rack_full?)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
#Test that we can query individual cells
|
110
|
+
def test_get_cell
|
111
|
+
tr = ConnectNGame::Rack.new(4)
|
112
|
+
assert_nil(tr.get_cell(1,1))
|
113
|
+
assert_nil(tr.get_cell(1,2))
|
114
|
+
assert_nil(tr.get_cell(1,3))
|
115
|
+
|
116
|
+
tr.get_channel(1) << 1
|
117
|
+
assert_equal(1, tr.get_cell(1,1))
|
118
|
+
assert_nil(tr.get_cell(1,2))
|
119
|
+
assert_nil(tr.get_cell(1,3))
|
120
|
+
|
121
|
+
tr.get_channel(1) << 2
|
122
|
+
assert_equal(1, tr.get_cell(1,1))
|
123
|
+
assert_equal(2, tr.get_cell(1,2))
|
124
|
+
assert_nil(tr.get_cell(1,3))
|
125
|
+
|
126
|
+
tr.get_channel(1) << 1
|
127
|
+
assert_equal(1, tr.get_cell(1,1))
|
128
|
+
assert_equal(2, tr.get_cell(1,2))
|
129
|
+
assert_equal(1, tr.get_cell(1,3))
|
130
|
+
end
|
131
|
+
|
132
|
+
#Test that we can play a channel.
|
133
|
+
def test_play_channel
|
134
|
+
tr = ConnectNGame::Rack.new(4)
|
135
|
+
|
136
|
+
assert_equal(1, tr.play_channel(1, 1))
|
137
|
+
assert_equal(2, tr.play_channel(1, 1))
|
138
|
+
assert_equal(3, tr.play_channel(1, 1))
|
139
|
+
assert_equal(4, tr.play_channel(1, 1))
|
140
|
+
assert_equal(5, tr.play_channel(1, 1))
|
141
|
+
assert_equal(6, tr.play_channel(1, 1))
|
142
|
+
|
143
|
+
#Playing a full channel has no effect or score.
|
144
|
+
assert_equal(6, tr.get_channel(1).length)
|
145
|
+
assert_equal(-9, tr.play_channel(1, 1))
|
146
|
+
assert_equal(6, tr.get_channel(1).length)
|
147
|
+
end
|
148
|
+
|
149
|
+
#Test getting the free row for a channel
|
150
|
+
def test_channel_to_row
|
151
|
+
tr = ConnectNGame::Rack.new(4)
|
152
|
+
|
153
|
+
assert_equal(1, tr.channel_to_row(1))
|
154
|
+
|
155
|
+
tr.play_channel(1,1)
|
156
|
+
assert_equal(2, tr.channel_to_row(1))
|
157
|
+
|
158
|
+
tr.play_channel(1,1)
|
159
|
+
assert_equal(3, tr.channel_to_row(1))
|
160
|
+
|
161
|
+
tr.play_channel(1,1)
|
162
|
+
assert_equal(4, tr.channel_to_row(1))
|
163
|
+
|
164
|
+
tr.play_channel(1,1)
|
165
|
+
assert_equal(5, tr.channel_to_row(1))
|
166
|
+
|
167
|
+
tr.play_channel(1,1)
|
168
|
+
assert_equal(6, tr.channel_to_row(1))
|
169
|
+
|
170
|
+
tr.play_channel(1,1)
|
171
|
+
assert_nil(tr.channel_to_row(1))
|
172
|
+
end
|
173
|
+
|
174
|
+
#Test that we can count cells around a position.
|
175
|
+
def test_score_move
|
176
|
+
tr = ConnectNGame::Rack.new(4)
|
177
|
+
#.......
|
178
|
+
#.......
|
179
|
+
#.......
|
180
|
+
#.......
|
181
|
+
|
182
|
+
assert_equal(1, tr.play_channel(3,1))
|
183
|
+
#.......
|
184
|
+
#.......
|
185
|
+
#.......
|
186
|
+
#..X....
|
187
|
+
|
188
|
+
assert_equal(2, tr.play_channel(4,1))
|
189
|
+
#.......
|
190
|
+
#.......
|
191
|
+
#.......
|
192
|
+
#..XX...
|
193
|
+
|
194
|
+
assert_equal(2, tr.play_channel(4,1))
|
195
|
+
#.......
|
196
|
+
#.......
|
197
|
+
#...X...
|
198
|
+
#..XX...
|
199
|
+
|
200
|
+
assert_equal(2, tr.play_channel(3,1))
|
201
|
+
#.......
|
202
|
+
#.......
|
203
|
+
#..XX...
|
204
|
+
#..XX...
|
205
|
+
|
206
|
+
assert_equal(3, tr.play_channel(3,1))
|
207
|
+
#.......
|
208
|
+
#..X....
|
209
|
+
#..XX...
|
210
|
+
#..XX...
|
211
|
+
|
212
|
+
assert_equal(4, tr.play_channel(3,1))
|
213
|
+
#..X....
|
214
|
+
#..X....
|
215
|
+
#..XX...
|
216
|
+
#..XX...
|
217
|
+
|
218
|
+
#It should not hang either!
|
219
|
+
assert_raises { tr.score_move(3, nil) }
|
220
|
+
end
|
221
|
+
|
222
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: connect_n_game
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Camilleri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.3.3
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 12.3.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,9 +128,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: '0'
|
129
129
|
requirements: []
|
130
130
|
rubyforge_project:
|
131
|
-
rubygems_version: 2.
|
131
|
+
rubygems_version: 2.5.2
|
132
132
|
signing_key:
|
133
133
|
specification_version: 4
|
134
134
|
summary: The Connect 4 (or more) Game gem.
|
135
135
|
test_files: []
|
136
|
-
has_rdoc:
|