ruby_ttt 0.3.8 → 0.3.9

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/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