module TicTacToe::PlayerFactory

Public Class Methods

build(parameters) click to toggle source
# File lib/player_factory.rb, line 7
def self.build(parameters)
  case parameters[:type]
  when AvailablePlayerTypes::HUMAN
    create_human_player(parameters)
  when AvailablePlayerTypes::COMPUTER
    create_computer_player(parameters)
  end
end

Private Class Methods

create_computer_player(parameters) click to toggle source
# File lib/player_factory.rb, line 26
def self.create_computer_player(parameters)
  computer_parameters = {
    player_mark: parameters[:player_mark],
    opponent_mark: (parameters[:game].player_marks - [parameters[:player_mark]]).pop,
    board: parameters[:game].board
  }
  ComputerPlayer.new(computer_parameters)
end
create_human_player(parameters) click to toggle source
# File lib/player_factory.rb, line 18
def self.create_human_player(parameters)
  human_parameters = {
    player_mark: parameters[:player_mark],
    interface: parameters[:game].interface
  }
  HumanPlayer.new(human_parameters)
end