Class: TresRaya::Game

Inherits:
Object
  • Object
show all
Defined in:
lib/tres_raya/game.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(player1, player2, random = true) ⇒ Game

Returns a new instance of Game.



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/tres_raya/game.rb', line 5

def initialize( player1, player2, random = true )
  if random and rand(2) == 1
    @x_player = player2.new("X")
    @o_player = player1.new("O")
  else
    @x_player = player1.new("X")
    @o_player = player2.new("O")
  end
  
  @board = Board.new([" "] * 9)
end

Instance Attribute Details

#o_playerObject (readonly)

Returns the value of attribute o_player.



17
18
19
# File 'lib/tres_raya/game.rb', line 17

def o_player
  @o_player
end

#x_playerObject (readonly)

Returns the value of attribute x_player.



17
18
19
# File 'lib/tres_raya/game.rb', line 17

def x_player
  @x_player
end

Instance Method Details

#playObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tres_raya/game.rb', line 19

def play
  until @board.won?
    @board[@x_player.move(@board)] = @x_player.mark
    break if @board.won?
    
    @board[@o_player.move(@board)] = @o_player.mark
  end
  
  @o_player.finish @board
  @x_player.finish @board

end