Sha256: 0eacacbab23cc5cfb4b7c4d35ab8b6d9f0f0656dd947a31c958df4735d54a28d

Contents?: true

Size: 579 Bytes

Versions: 1

Compression:

Stored size: 579 Bytes

Contents

module Model
  class Team
    attr_reader :name, :move_strategy, :pieces

    def initialize(args)
      raise ArgumentError, 'empty pieces array' if args[:pieces].empty?

      @name = args[:name]
      @move_strategy = args[:move_strategy]
      @pieces = args[:pieces]

      @pieces.each { |p| p.team = self }
    end

    def selected_piece
      @pieces[0]
    end

    def computer?
      !@move_strategy.nil?
    end

    def available_moves(board)
      @pieces.each_with_object([]) do |piece, moves|
        moves.concat(piece.moves(board))
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sams_tic_tac_toe-0.0.1 lib/tic_tac_toe/model/team.rb