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