tttazures 0.0.4 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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