class Model::TeamsSetup
Constants
- COMPUTER_TYPE
- HUMAN_TYPE
- TEAM_TYPES
Attributes
team_types[R]
Public Class Methods
new(args)
click to toggle source
# File lib/tic_tac_toe/model/teams_setup.rb, line 9 def initialize(args) @team_klass = args[:team_klass] @piece_klass = args[:piece_klass] @move_klass = args[:move_klass] @move_strategy_klass = args[:move_strategy_klass] @team_types = { "Player": HUMAN_TYPE, "Computer": COMPUTER_TYPE } end
Public Instance Methods
create_teams(teams_args)
click to toggle source
# File lib/tic_tac_toe/model/teams_setup.rb, line 17 def create_teams(teams_args) teams_args.map { |args| create_team(args) } end
valid_team_type?(type)
click to toggle source
# File lib/tic_tac_toe/model/teams_setup.rb, line 21 def valid_team_type?(type) TEAM_TYPES.include?(type) end
Private Instance Methods
create_team(args)
click to toggle source
# File lib/tic_tac_toe/model/teams_setup.rb, line 27 def create_team(args) name = args[:name] piece = @piece_klass.new(name, @move_klass) move_strategy = args[:type] == COMPUTER_TYPE ? @move_strategy_klass.new : nil @team_klass.new(name: name, move_strategy: move_strategy, pieces: [piece]) end