ruby_ttt 0.1.9 → 0.2.0

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 +18 -16
  2. data/lib/ruby_ttt.rb +6 -11
  3. metadata +1 -1
data/lib/game_setup.rb CHANGED
@@ -4,7 +4,24 @@ AI_PLAYER = 'hard computer'
4
4
  HARD_LEVEL = 'hard'
5
5
  EASY_LEVEL = 'easy'
6
6
 
7
- class GameSetup; end
7
+ class GameSetup
8
+ def initialize; end
9
+
10
+ def get_settings
11
+ settings = {}
12
+ players = set_up_players
13
+ settings[:board] = get_board
14
+ settings[:player_one] = players.player_one
15
+ settings[:player_two] = players.player_two
16
+ settings[:player_goes_first] = players.player_goes_first
17
+ settings
18
+ end
19
+
20
+ def set_up_players; end
21
+
22
+ def get_board; end
23
+
24
+ end
8
25
 
9
26
  class CLIGameSetup < GameSetup
10
27
  attr_accessor :ui
@@ -12,21 +29,6 @@ class CLIGameSetup < GameSetup
12
29
  @ui = CLIUI.new
13
30
  end
14
31
 
15
- def get_settings
16
- settings = {}
17
- begin
18
- players = set_up_players
19
- settings[:board] = get_board
20
- settings[:player_one] = players.player_one
21
- settings[:player_two] = players.player_two
22
- settings[:player_first_move] = players.player_goes_first
23
- settings
24
- rescue Interrupt
25
- ui.early_exit_message
26
- exit
27
- end
28
- end
29
-
30
32
  def set_up_players
31
33
  player_one_type = get_player_type(MARKER_X)
32
34
  player_two_type = get_player_type(MARKER_O)
data/lib/ruby_ttt.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'ai'
2
2
  require 'board'
3
- require 'player_factory'
4
3
  require 'game_setup'
5
4
  require 'player'
5
+ require 'player_factory'
6
6
  require 'ui'
7
7
 
8
8
  class Game
@@ -16,7 +16,7 @@ class Game
16
16
  end
17
17
 
18
18
  def advance_game
19
- game_status_check(current_player.opponent.marker)
19
+ game_status_check(current_player.marker)
20
20
  ui.next_move_message(current_player.marker) unless board.game_over?
21
21
  end
22
22
 
@@ -51,7 +51,7 @@ class Game
51
51
  end
52
52
 
53
53
  class CLIGame < Game
54
- attr_accessor :board, :player_one, :player_two, :ui, :player_first_move
54
+ attr_accessor :board, :player_one, :player_two, :ui
55
55
  def initialize(settings)
56
56
  super
57
57
  @ui = CLIUI.new
@@ -69,19 +69,14 @@ class CLIGame < Game
69
69
  def play!
70
70
  until board.game_over?
71
71
  board.display_board
72
- get_next_move
72
+ move = get_next_move
73
+ verify_move(move) ? advance_game : invalid_move(move)
73
74
  end
74
75
  exit_game
75
76
  end
76
77
 
77
78
  def get_next_move
78
- if current_player.is_a?(HumanPlayer)
79
- move = ui.request_human_move
80
- verify_move(move) ? advance_game : invalid_move(move)
81
- else
82
- current_player.make_move(board)
83
- advance_game
84
- end
79
+ current_player.is_a?(HumanPlayer) ? ui.request_human_move : current_player.make_move(board)
85
80
  end
86
81
 
87
82
  def invalid_move(cell)
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.9
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: