ruby_ttt 0.1.9 → 0.2.0

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 (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: