class TicTacToeRZ::Players::PlayerManager

Attributes

current_player[R]
player1[R]
player2[R]

Public Class Methods

new(player1, player2) click to toggle source
# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 11
def initialize(player1, player2)
  raise Exceptions::NilReferenceError, "player1" if player1.nil?
  raise Exceptions::NilReferenceError, "player2" if player2.nil?
  raise Exceptions::InvalidValueError, "duplicate symbols" if player1.symbol.upcase == player2.symbol.upcase
  @player1 = player1
  @player2 = player2
  @current_player = @player1
end

Public Instance Methods

get_next_player() click to toggle source
# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 24
def get_next_player
  next_player = @current_player.equals?(@player1) ? @player2 : @player1
end
get_player_number(player) click to toggle source

Returns the number of the player stored in Player Manager, where 1 represents player 1 and -1 indicates that the player could not be found.

# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 29
def get_player_number(player)
  raise Exceptions::NilReferenceError, "player" if player.nil?
  number = 
  if player.equals?(@player1) 
    1
  elsif player.equals?(@player2) 
    2
  else 
    -1
  end
end
player(player_number) click to toggle source
# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 41
def player(player_number)
  player = 
  if player_number == 1
    player1
  elsif player_number == 2 
    player2
  else 
    raise Exceptions::InvalidValueError, "player_number"
  end
end
symbol(player_number) click to toggle source
# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 52
def symbol(player_number)
  player(player_number).symbol
end
type(player_number) click to toggle source
# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 56
def type(player_number)
  player(player_number).type
end
update_current_player() click to toggle source
# File lib/tic_tac_toe_rz/tictactoeruby.core/players/player_manager.rb, line 20
def update_current_player
  @current_player = get_next_player
end