ruby_ttt 0.1.0 → 0.1.1
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/lib/game_setup.rb +10 -1
- data/lib/ruby_ttt.rb +17 -5
- metadata +2 -2
data/lib/game_setup.rb
CHANGED
@@ -36,11 +36,15 @@ class GameSetup
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def get_difficulty_level
|
39
|
-
return nil unless
|
39
|
+
return nil unless computer_player_selected?
|
40
40
|
level = ui.request_difficulty_level
|
41
41
|
validate_level(level) ? ui.level_assigned_message(level) : invalid_level(level)
|
42
42
|
end
|
43
43
|
|
44
|
+
def computer_player_selected?
|
45
|
+
(player_one.player_type == COMPUTER_PLAYER) || (player_two.player_type == COMPUTER_PLAYER)
|
46
|
+
end
|
47
|
+
|
44
48
|
def validate_type(type, player)
|
45
49
|
(type == HUMAN_PLAYER) || (type == COMPUTER_PLAYER)
|
46
50
|
end
|
@@ -73,4 +77,9 @@ class GameSetup
|
|
73
77
|
ui.first_move_message(player)
|
74
78
|
end
|
75
79
|
|
80
|
+
def set_player_types(player_one_type, player_two_type)
|
81
|
+
player_one.player_type = player_one_type
|
82
|
+
player_two.player_type = player_two_type
|
83
|
+
end
|
84
|
+
|
76
85
|
end
|
data/lib/ruby_ttt.rb
CHANGED
@@ -18,20 +18,32 @@ class Game
|
|
18
18
|
until board.game_over?
|
19
19
|
ui.display_board
|
20
20
|
move = get_next_move
|
21
|
-
|
21
|
+
advance_game if verify_move(move)
|
22
22
|
end
|
23
23
|
exit_game
|
24
24
|
end
|
25
25
|
|
26
|
+
def verify_move(cell)
|
27
|
+
if board.available_cell?(cell)
|
28
|
+
board.add_marker(current_player.marker, cell)
|
29
|
+
true
|
30
|
+
else
|
31
|
+
invalid_move(cell)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
26
35
|
def get_next_move
|
27
|
-
return ui.request_human_move if
|
36
|
+
return ui.request_human_move if !computer_move?
|
28
37
|
difficulty_level == HARD_LEVEL ? ai.computer_move(board, current_player) : board.random_cell
|
29
38
|
end
|
30
39
|
|
31
|
-
def
|
32
|
-
|
40
|
+
def computer_move?
|
41
|
+
current_player.player_type == COMPUTER_PLAYER
|
42
|
+
end
|
43
|
+
|
44
|
+
def advance_game
|
33
45
|
game_status_check
|
34
|
-
|
46
|
+
current_player.next_player_turn
|
35
47
|
ui.next_move_message(current_player) unless board.game_over?
|
36
48
|
end
|
37
49
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_ttt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-12-
|
12
|
+
date: 2013-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|