class Model::BoardSetup

Attributes

teams[RW]

Public Class Methods

new(args) click to toggle source
# File lib/tic_tac_toe/model/board_setup.rb, line 5
def initialize(args)
  @board_klass = args[:board_klass]
  @tile_collection_klass = args[:tile_collection_klass]
  @team_collection_klass = args[:team_collection_klass]
  @game_state = args[:game_state]
  @tile_klass = args[:tile_klass]
  @dimensions = args[:dimensions]
  @teams = []
end

Public Instance Methods

create_board() click to toggle source
# File lib/tic_tac_toe/model/board_setup.rb, line 15
def create_board
  tiles = create_tiles

  @board_klass.new(tile_collection: @tile_collection_klass.new(tiles, @dimensions),
                   team_collection: @team_collection_klass.new(@teams),
                   game_state: @game_state.new)
end

Private Instance Methods

create_tiles() click to toggle source
# File lib/tic_tac_toe/model/board_setup.rb, line 25
def create_tiles
  cnt = @dimensions**2
  (1..cnt).map { |_i| @tile_klass.new }
end