ruby_ttt 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/game_setup.rb +10 -1
  2. data/lib/ruby_ttt.rb +17 -5
  3. 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 player_one.player_type == COMPUTER_PLAYER || player_two.player_type == COMPUTER_PLAYER
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
- board.available_cell?(move) ? advance_game(move, current_player) : invalid_move(move)
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 current_player.player_type == HUMAN_PLAYER
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 advance_game(cell, player)
32
- board.add_marker(player.marker, cell)
40
+ def computer_move?
41
+ current_player.player_type == COMPUTER_PLAYER
42
+ end
43
+
44
+ def advance_game
33
45
  game_status_check
34
- player.next_player_turn
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.0
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 00:00:00.000000000 Z
12
+ date: 2013-12-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec