ruby_ttt 0.3.8 → 0.3.9

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/ruby_ttt.rb +50 -2
  2. metadata +1 -2
  3. data/lib/game.rb +0 -49
@@ -1,4 +1,3 @@
1
- $: << File.expand_path(File.dirname(__FILE__))
2
1
  require 'tictactoe_constants'
3
2
  require 'ai'
4
3
  require 'board'
@@ -7,4 +6,53 @@ require 'game_setup'
7
6
  require 'player'
8
7
  require 'ui'
9
8
  require 'alpha_beta_player'
10
- require 'game'
9
+
10
+ module RubyTictactoe
11
+
12
+ class Game
13
+ include TictactoeConstants
14
+ attr_accessor :board, :player_one, :player_two, :ui, :player_first_move
15
+ def initialize(settings)
16
+ @board = settings[:board]
17
+ @player_one = settings[:player_one]
18
+ @player_two = settings[:player_two]
19
+ @player_first_move = settings[:player_first_move]
20
+ @ui = UI.new
21
+ end
22
+
23
+ def advance_game
24
+ game_status_check(current_player.opponent.marker)
25
+ ui.next_move_message(current_player.marker) unless board.game_over?
26
+ end
27
+
28
+ def game_status_check(marker)
29
+ if board.winner?(marker)
30
+ ui.winning_game_message(marker)
31
+ elsif !board.moves_remaining?
32
+ ui.tie_game_message
33
+ end
34
+ end
35
+
36
+ def verify_move(cell)
37
+ return false if !board.available_cell?(cell)
38
+ current_player.add_marker(board, cell)
39
+ true
40
+ end
41
+
42
+ def current_player
43
+ if total_markers(MARKER_X) > total_markers(MARKER_O)
44
+ player_two
45
+ elsif total_markers(MARKER_O) > total_markers(MARKER_X)
46
+ player_one
47
+ else
48
+ player_first_move
49
+ end
50
+ end
51
+
52
+ def total_markers(marker)
53
+ board.all_cells.select { |cell, value| value == marker }.count
54
+ end
55
+
56
+ end
57
+
58
+ end
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.3.8
4
+ version: 0.3.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -38,7 +38,6 @@ files:
38
38
  - lib/ai.rb
39
39
  - lib/alpha_beta_player.rb
40
40
  - lib/board.rb
41
- - lib/game.rb
42
41
  - lib/game_setup.rb
43
42
  - lib/player.rb
44
43
  - lib/player_factory.rb
@@ -1,49 +0,0 @@
1
- module RubyTictactoe
2
-
3
- class Game
4
- include TictactoeConstants
5
- attr_accessor :board, :player_one, :player_two, :ui, :player_first_move
6
- def initialize(settings)
7
- @board = settings[:board]
8
- @player_one = settings[:player_one]
9
- @player_two = settings[:player_two]
10
- @player_first_move = settings[:player_first_move]
11
- @ui = UI.new
12
- end
13
-
14
- def advance_game
15
- game_status_check(current_player.opponent.marker)
16
- ui.next_move_message(current_player.marker) unless board.game_over?
17
- end
18
-
19
- def game_status_check(marker)
20
- if board.winner?(marker)
21
- ui.winning_game_message(marker)
22
- elsif !board.moves_remaining?
23
- ui.tie_game_message
24
- end
25
- end
26
-
27
- def verify_move(cell)
28
- return false if !board.available_cell?(cell)
29
- current_player.add_marker(board, cell)
30
- true
31
- end
32
-
33
- def current_player
34
- if total_markers(MARKER_X) > total_markers(MARKER_O)
35
- player_two
36
- elsif total_markers(MARKER_O) > total_markers(MARKER_X)
37
- player_one
38
- else
39
- player_first_move
40
- end
41
- end
42
-
43
- def total_markers(marker)
44
- board.all_cells.select { |cell, value| value == marker }.count
45
- end
46
-
47
- end
48
-
49
- end