tttazures 0.0.4 → 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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/lib/board.rb +49 -0
  3. data/lib/board_printer_three_dim.rb +40 -0
  4. data/lib/board_printer_two_dim.rb +32 -0
  5. data/lib/computer_ai.rb +78 -0
  6. data/lib/config.rb +78 -0
  7. data/lib/console_ui.rb +107 -0
  8. data/lib/driver.rb +3 -0
  9. data/lib/game_controller.rb +76 -0
  10. data/lib/human_player.rb +17 -0
  11. data/lib/three_dimensional_board.rb +197 -0
  12. data/lib/two_dimensional_board.rb +67 -0
  13. data/spec/board_3x3_spec.rb +108 -0
  14. data/spec/board_3x3x3_spec.rb +173 -0
  15. data/spec/board_4x4_spec.rb +95 -0
  16. data/spec/board_5x5_spec.rb +74 -0
  17. data/spec/computer_ai_3x3_board_spec.rb +62 -0
  18. data/spec/computer_ai_spec.rb +10 -0
  19. data/spec/configurer_spec.rb +140 -0
  20. data/spec/console_ui_spec.rb +115 -0
  21. data/spec/coverage/assets/0.7.1/application.css +1110 -0
  22. data/spec/coverage/assets/0.7.1/application.js +626 -0
  23. data/spec/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  24. data/spec/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  25. data/spec/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  26. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  27. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  28. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  29. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  30. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  31. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  32. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  33. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  34. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  35. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  36. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  37. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  38. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  39. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  40. data/spec/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  41. data/spec/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  42. data/spec/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  43. data/spec/coverage/assets/0.7.1/favicon_green.png +0 -0
  44. data/spec/coverage/assets/0.7.1/favicon_red.png +0 -0
  45. data/spec/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  46. data/spec/coverage/assets/0.7.1/loading.gif +0 -0
  47. data/spec/coverage/assets/0.7.1/magnify.png +0 -0
  48. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  49. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  50. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  51. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  52. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  53. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  54. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  55. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  56. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  57. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  58. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  59. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  60. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  61. data/spec/coverage/index.html +72 -0
  62. data/spec/game_controller_spec.rb +50 -0
  63. data/spec/human_player_spec.rb +20 -0
  64. data/spec/long_tests.rb +265 -0
  65. data/spec/spec_helper.rb +4 -0
  66. metadata +121 -3
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Code coverage for Spec</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='./assets/0.7.1/application.js' type='text/javascript'></script>
7
+ <link href='./assets/0.7.1/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="shortcut icon" type="image/png" href="./assets/0.7.1/favicon_green.png" />
9
+ <link rel="icon" type="image/png" href="./assets/0.7.1/favicon.png" />
10
+ </head>
11
+
12
+ <body>
13
+ <div id="loading">
14
+ <img src="./assets/0.7.1/loading.gif" alt="loading"/>
15
+ </div>
16
+ <div id="wrapper" style="display:none;">
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2013-07-10T10:42:16-05:00">2013-07-10T10:42:16-05:00</abbr></div>
18
+ <ul class="group_tabs"></ul>
19
+
20
+ <div id="content">
21
+ <div class="file_list_container" id="AllFiles">
22
+ <h2>
23
+ <span class="group_name">All Files</span>
24
+ (<span class="covered_percent"><span class="green">100.0%</span></span>
25
+ covered at
26
+ <span class="covered_strength">
27
+ <span class="red">
28
+ 0.0
29
+ </span>
30
+ </span> hits/line)
31
+ </h2>
32
+ <a name="AllFiles"></a>
33
+ <div>
34
+ <b>0</b> files in total.
35
+ <b>0.0</b> relevant lines.
36
+ <span class="green"><b>0.0</b> lines covered</span> and
37
+ <span class="red"><b>0.0</b> lines missed </span>
38
+ </div>
39
+ <table class="file_list">
40
+ <thead>
41
+ <tr>
42
+ <th>File</th>
43
+ <th>% covered</th>
44
+ <th>Lines</th>
45
+ <th>Relevant Lines</th>
46
+ <th>Lines covered</th>
47
+ <th>Lines missed</th>
48
+ <th>Avg. Hits / Line</th>
49
+ </tr>
50
+ </thead>
51
+ <tbody>
52
+
53
+ </tbody>
54
+ </table>
55
+ </div>
56
+
57
+
58
+
59
+ </div>
60
+
61
+ <div id="footer">
62
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.7.1
63
+ and simplecov-html v0.7.1<br/>
64
+ using RSpec
65
+ </div>
66
+
67
+ <div class="source_files">
68
+
69
+ </div>
70
+ </div>
71
+ </body>
72
+ </html>
@@ -0,0 +1,50 @@
1
+ require_relative "spec_helper"
2
+ require_relative '../lib/ttt/game_controller'
3
+ require_relative '../lib/ttt/console_ui'
4
+ require_relative "../lib/ttt/two_dimensional_board"
5
+
6
+ describe GameController do
7
+
8
+ let(:io) {io = StringIO.new}
9
+ let(:controller){
10
+ controller = GameController.new
11
+ controller.instance_variable_set(:@board, TwoDimensionalBoard.new(3))
12
+ console1 = ConsoleUI.new(io)
13
+ controller.instance_variable_set(:@console, console1)
14
+ console = controller.console
15
+ final_controller = controller
16
+ }
17
+ let(:console){c = controller.console}
18
+ let(:ai){ai = controller.ai}
19
+
20
+ =begin
21
+ describe '#execute_game' do
22
+ it "breaks game loop and presents winner" do
23
+ console.stub(:greet_user){}
24
+ controller.stub(:set_board){}
25
+ controller.stub(:set_ai_difficulty){}
26
+ controller.stub(:display_game_status){}
27
+ board_manager.stub(:check_board_status){1}
28
+ controller.stub(:present_game_result){}
29
+ controller.stub(:play_again?){false}
30
+ controller.execute_game.should == nil
31
+ end
32
+ end
33
+ =end
34
+
35
+
36
+ describe '#play_again?' do
37
+
38
+ it "returns false if no new game wanted" do
39
+ console.stub(:query_user_for_new_game){true}
40
+ console.stub(:receive_user_choice){"y"}
41
+ controller.play_again?.should == true
42
+
43
+ console.stub(:query_user_for_new_game){false}
44
+ console.stub(:say_goodbye){}
45
+ console.stub(:receive_user_choice){"n"}
46
+ controller.play_again?.should == false
47
+ end
48
+ end
49
+
50
+ end
@@ -0,0 +1,20 @@
1
+ require_relative "spec_helper"
2
+ require_relative "../lib/ttt/human_player"
3
+ require_relative "../lib/ttt/console_ui"
4
+ require_relative "../lib/ttt/two_dimensional_board"
5
+
6
+ describe HumanPlayer do
7
+
8
+ let(:console){c = ConsoleUI.new}
9
+ let(:human_player){hp = HumanPlayer.new(:x,console)}
10
+ let(:board){board = TwoDimensionalBoard.new(3)}
11
+
12
+ describe '#make_move' do
13
+
14
+ it "makes valid move" do
15
+ console.stub(:query_user_for_choice){1}
16
+ board.stub(:record_choice){true}
17
+ human_player.make_move(board)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,265 @@
1
+ require_relative '../lib/ttt/computer_ai'
2
+ require_relative '../lib/ttt/two_dimensional_board'
3
+ require_relative '../lib/ttt/three_dimensional_board'
4
+
5
+ describe ComputerAI do
6
+ let(:ai) {nai = ComputerAI.new(:o, 100);}
7
+ let(:second_ai){ai = ComputerAI.new(:x,100);}
8
+ let(:board_3x3) {b = TwoDimensionalBoard.new 3}
9
+ let(:board_4x4) {b = TwoDimensionalBoard.new 4}
10
+ let(:board_5x5) {b = TwoDimensionalBoard.new 5}
11
+ let(:board_3x3x3) {b = ThreeDimensionalBoard.new 3}
12
+
13
+ describe '#five_by_five_board' do
14
+
15
+ it "takes win if available" do
16
+ test_board = [:x,:o,:x,:open,:open,
17
+ :open,:o,:open,:open,:open,
18
+ :open,:o,:open,:x,:open,
19
+ :open, :o,:open,:open,:open,
20
+ :open,:open,:open,:open,:open]
21
+ board_5x5.instance_variable_set(:@board_array,test_board)
22
+ ai.make_move(board_5x5).should == 21
23
+
24
+ test_board = [:o,:o,:o,:o,:open,
25
+ :x,:x,:x,:x,:open,
26
+ :open,:open,:open,:open,:open,
27
+ :open,:open,:open,:open,:open,
28
+ :open,:open,:open,:open,:open]
29
+ board_5x5.instance_variable_set(:@board_array,test_board)
30
+ ai.make_move(board_5x5).should == 4
31
+
32
+ test_board = [:o,:open,:open,:open,:open,
33
+ :x,:o,:x,:x,:open,
34
+ :open,:open,:o,:open,:open,
35
+ :open,:open,:open,:o,:open,
36
+ :open,:open,:open,:open,:open]
37
+ board_5x5.instance_variable_set(:@board_array,test_board)
38
+ ai.make_move(board_5x5).should == 24
39
+
40
+ end
41
+
42
+ it "defends against immediate loss" do
43
+ test_board = [:x,:x,:x,:x,:open,
44
+ :x,:o,:open,:open,:open,
45
+ :open,:open,:o,:open,:open,
46
+ :open,:open,:open,:o,:o,
47
+ :open,:open,:open,:open,:open]
48
+ board_5x5.instance_variable_set(:@board_array,test_board)
49
+ ai.make_move(board_5x5).should == 4
50
+
51
+ test_board = [:x,:open,:open,:open,:open,
52
+ :x,:o,:open,:open,:open,
53
+ :x,:open,:o,:open,:open,
54
+ :x,:open,:open,:o,:o,
55
+ :open,:open,:open,:open,:open]
56
+ board_5x5.instance_variable_set(:@board_array,test_board)
57
+ ai.make_move(board_5x5).should == 20
58
+ end
59
+
60
+ it "provides different indices if no single best option" do
61
+ test_board = [:open,:open,:open,:open,:open,
62
+ :open,:open,:open,:open,:open,
63
+ :open,:open,:open,:open,:open,
64
+ :open,:open,:open,:open,:open,
65
+ :open,:open,:open,:open,:open]
66
+
67
+ test_results = []
68
+ 10.times do
69
+ board_5x5.instance_variable_set(:@board_array,test_board)
70
+ test_results << ai.make_move(board_5x5)
71
+ end
72
+ test_results.uniq.size.should > 1
73
+ end
74
+
75
+ end
76
+
77
+ describe '#cube_three_board' do
78
+
79
+ it "takes win if available" do
80
+ test_board = [:open,:open,:open,
81
+ :x,:open,:open,
82
+ :open,:open,:x,
83
+
84
+ :open,:open,:open,
85
+ :open,:open,:open,
86
+ :open,:open,:open,
87
+
88
+ :open,:open,:open,
89
+ :open,:open,:open,
90
+ :o,:o,:open]
91
+ board_3x3x3.instance_variable_set(:@board_array,test_board)
92
+ ai.make_move(board_3x3x3).should == 26
93
+
94
+ test_board = [:x,:x,:open,
95
+ :open,:o,:open,
96
+ :open,:open,:open,
97
+
98
+ :open,:open,:open,
99
+ :open,:o,:open,
100
+ :open,:open,:open,
101
+
102
+ :open,:open,:open,
103
+ :open,:open,:open,
104
+ :open,:open,:open]
105
+ board_3x3x3.instance_variable_set(:@board_array,test_board)
106
+ ai.make_move(board_3x3x3).should == 22
107
+ end
108
+
109
+ end
110
+
111
+ it "defends against immediate loss" do
112
+ test_board = [:o,:open,:open,
113
+ :open,:open,:open,
114
+ :open,:open,:open,
115
+
116
+ :open,:open,:open,
117
+ :open,:open,:open,
118
+ :open,:open,:open,
119
+
120
+ :open,:open,:open,
121
+ :open,:open,:open,
122
+ :open,:x,:x]
123
+ board_3x3x3.instance_variable_set(:@board_array,test_board)
124
+ ai.make_move(board_3x3x3).should == 24
125
+
126
+ test_board = [:open,:o,:open,
127
+ :open,:x,:open,
128
+ :open,:open,:open,
129
+
130
+ :open,:open,:open,
131
+ :open,:x,:open,
132
+ :open,:open,:open,
133
+
134
+ :open,:open,:open,
135
+ :open,:open,:open,
136
+ :open,:o,:open]
137
+ board_3x3x3.instance_variable_set(:@board_array,test_board)
138
+ ai.make_move(board_3x3x3).should == 22
139
+ end
140
+
141
+ describe '#four_by_four_board' do
142
+
143
+ it "takes win if available" do
144
+ test_board = [:x,:o,:x,:open,
145
+ :open,:o,:open,:open,
146
+ :open,:o,:open,:x,
147
+ :open,:open,:open,:open]
148
+ board_4x4.instance_variable_set(:@board_array,test_board)
149
+ ai.make_move(board_4x4).should == 13
150
+
151
+ test_board = [:o,:o,:o,:open,
152
+ :x,:x,:x,:open,
153
+ :open,:open,:open,:open,
154
+ :open,:open,:open,:open]
155
+ board_4x4.instance_variable_set(:@board_array,test_board)
156
+ ai.make_move(board_4x4).should == 3
157
+
158
+ test_board = [:x,:x,:x,:open,
159
+ :o,:o,:o,:open,
160
+ :open,:open,:open,:open,
161
+ :open,:open,:open,:open]
162
+ board_4x4.instance_variable_set(:@board_array,test_board)
163
+ ai.make_move(board_4x4).should == 7
164
+
165
+ test_board = [:o,:x,:x,:open,
166
+ :x,:o,:o,:open,
167
+ :open,:open,:o,:open,
168
+ :open,:open,:open,:open]
169
+ board_4x4.instance_variable_set(:@board_array,test_board)
170
+ ai.make_move(board_4x4).should == 15
171
+
172
+ end
173
+
174
+ it "defends against immediate loss" do
175
+
176
+ test_board = [:x,:x,:x,:open,
177
+ :o,:o,:open,:open,
178
+ :o,:open,:open,:open,
179
+ :open,:open,:open,:open]
180
+ board_4x4.instance_variable_set(:@board_array,test_board)
181
+ ai.make_move(board_4x4).should == 3
182
+
183
+ test_board = [:open,:open,:open,:open,
184
+ :o,:o,:x,:open,
185
+ :o,:x,:open,:open,
186
+ :x,:open,:open,:open]
187
+ board_4x4.instance_variable_set(:@board_array,test_board)
188
+ ai.make_move(board_4x4).should == 3
189
+ end
190
+ end
191
+
192
+ describe '#discrete situation testing' do
193
+
194
+ it "pits two ai against each other on 3x3 board" do
195
+ second_ai = ComputerAI.new(:x,100)
196
+ player = :x
197
+ while board_3x3.check_board_status == :continue_game
198
+ if player == :x
199
+ second_ai.make_move(board_3x3)
200
+ else
201
+ ai.make_move(board_3x3)
202
+ end
203
+
204
+ player = opponent(player)
205
+ end
206
+ board_3x3.check_board_status.should == :tie
207
+ end
208
+
209
+
210
+ it "pits two ai against each other on 4x4 board" do
211
+ second_ai = ComputerAI.new(:x,100)
212
+ player = :x
213
+ while board_4x4.check_board_status == :continue_game
214
+ if player == :x
215
+ second_ai.make_move(board_4x4)
216
+ else
217
+ ai.make_move(board_4x4)
218
+ end
219
+
220
+ player = opponent(player)
221
+ end
222
+ board_4x4.check_board_status.should == :tie
223
+ end
224
+
225
+ it "pits two ai against each other on 5x5 board" do
226
+ second_ai = ComputerAI.new(:x,100)
227
+ player = :x
228
+ while board_5x5.check_board_status == :continue_game
229
+ if player == :x
230
+ second_ai.make_move(board_5x5)
231
+ else
232
+ ai.make_move(board_5x5)
233
+ end
234
+
235
+ player = opponent(player)
236
+ end
237
+ board_5x5.check_board_status.should == :tie
238
+ end
239
+
240
+
241
+ it "pits two ai, nine times, starting at each index on 3x3 board" do
242
+ second_ai = ComputerAI.new(:x,100)
243
+ player = :computer
244
+
245
+ (1..9).each do |element|
246
+ board_3x3.record_choice(element, :x)
247
+ player = :o
248
+ while board_3x3.check_board_status == :continue_game
249
+ if player == :x
250
+ second_ai.make_move(board_3x3)
251
+ else
252
+ ai.make_move(board_3x3)
253
+ end
254
+
255
+ player = opponent(player)
256
+ end
257
+ board_3x3.check_board_status.should == :tie
258
+ end
259
+ end
260
+ end
261
+
262
+ def opponent player
263
+ if player == :x then :o else :x end
264
+ end
265
+ end
@@ -0,0 +1,4 @@
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_filter '/spec/'
4
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tttazures
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Zures
@@ -15,7 +15,71 @@ email: azures@8thlight.com
15
15
  executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
- files: []
18
+ files:
19
+ - lib/board.rb
20
+ - lib/board_printer_three_dim.rb
21
+ - lib/board_printer_two_dim.rb
22
+ - lib/computer_ai.rb
23
+ - lib/config.rb
24
+ - lib/console_ui.rb
25
+ - lib/driver.rb
26
+ - lib/game_controller.rb
27
+ - lib/human_player.rb
28
+ - lib/three_dimensional_board.rb
29
+ - lib/two_dimensional_board.rb
30
+ - spec/board_3x3_spec.rb
31
+ - spec/board_3x3x3_spec.rb
32
+ - spec/board_4x4_spec.rb
33
+ - spec/board_5x5_spec.rb
34
+ - spec/computer_ai_3x3_board_spec.rb
35
+ - spec/computer_ai_spec.rb
36
+ - spec/configurer_spec.rb
37
+ - spec/console_ui_spec.rb
38
+ - spec/coverage/assets/0.7.1/application.css
39
+ - spec/coverage/assets/0.7.1/application.js
40
+ - spec/coverage/assets/0.7.1/fancybox/blank.gif
41
+ - spec/coverage/assets/0.7.1/fancybox/fancy_close.png
42
+ - spec/coverage/assets/0.7.1/fancybox/fancy_loading.png
43
+ - spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png
44
+ - spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png
45
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png
46
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png
47
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png
48
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png
49
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png
50
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png
51
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png
52
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png
53
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png
54
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png
55
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png
56
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png
57
+ - spec/coverage/assets/0.7.1/fancybox/fancybox-x.png
58
+ - spec/coverage/assets/0.7.1/fancybox/fancybox-y.png
59
+ - spec/coverage/assets/0.7.1/fancybox/fancybox.png
60
+ - spec/coverage/assets/0.7.1/favicon_green.png
61
+ - spec/coverage/assets/0.7.1/favicon_red.png
62
+ - spec/coverage/assets/0.7.1/favicon_yellow.png
63
+ - spec/coverage/assets/0.7.1/loading.gif
64
+ - spec/coverage/assets/0.7.1/magnify.png
65
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
66
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
67
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
68
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
69
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png
70
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
71
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
72
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
73
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png
74
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png
75
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png
76
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png
77
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png
78
+ - spec/coverage/index.html
79
+ - spec/game_controller_spec.rb
80
+ - spec/human_player_spec.rb
81
+ - spec/long_tests.rb
82
+ - spec/spec_helper.rb
19
83
  homepage: http://rubygems.org/gems/tttazures
20
84
  licenses: []
21
85
  metadata: {}
@@ -23,6 +87,7 @@ post_install_message:
23
87
  rdoc_options: []
24
88
  require_paths:
25
89
  - lib
90
+ - spec
26
91
  required_ruby_version: !ruby/object:Gem::Requirement
27
92
  requirements:
28
93
  - - '>='
@@ -39,4 +104,57 @@ rubygems_version: 2.0.5
39
104
  signing_key:
40
105
  specification_version: 4
41
106
  summary: tttazures
42
- test_files: []
107
+ test_files:
108
+ - spec/board_3x3_spec.rb
109
+ - spec/board_3x3x3_spec.rb
110
+ - spec/board_4x4_spec.rb
111
+ - spec/board_5x5_spec.rb
112
+ - spec/computer_ai_3x3_board_spec.rb
113
+ - spec/computer_ai_spec.rb
114
+ - spec/configurer_spec.rb
115
+ - spec/console_ui_spec.rb
116
+ - spec/coverage/assets/0.7.1/application.css
117
+ - spec/coverage/assets/0.7.1/application.js
118
+ - spec/coverage/assets/0.7.1/fancybox/blank.gif
119
+ - spec/coverage/assets/0.7.1/fancybox/fancy_close.png
120
+ - spec/coverage/assets/0.7.1/fancybox/fancy_loading.png
121
+ - spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png
122
+ - spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png
123
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png
124
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png
125
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png
126
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png
127
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png
128
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png
129
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png
130
+ - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png
131
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png
132
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png
133
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png
134
+ - spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png
135
+ - spec/coverage/assets/0.7.1/fancybox/fancybox-x.png
136
+ - spec/coverage/assets/0.7.1/fancybox/fancybox-y.png
137
+ - spec/coverage/assets/0.7.1/fancybox/fancybox.png
138
+ - spec/coverage/assets/0.7.1/favicon_green.png
139
+ - spec/coverage/assets/0.7.1/favicon_red.png
140
+ - spec/coverage/assets/0.7.1/favicon_yellow.png
141
+ - spec/coverage/assets/0.7.1/loading.gif
142
+ - spec/coverage/assets/0.7.1/magnify.png
143
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
144
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
145
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
146
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
147
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png
148
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
149
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
150
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
151
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png
152
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png
153
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png
154
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png
155
+ - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png
156
+ - spec/coverage/index.html
157
+ - spec/game_controller_spec.rb
158
+ - spec/human_player_spec.rb
159
+ - spec/long_tests.rb
160
+ - spec/spec_helper.rb