Class: Model::Team

Inherits:
Object
  • Object
show all
Defined in:
lib/tic_tac_toe/model/team.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Team

Returns a new instance of Team.

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
13
# File 'lib/tic_tac_toe/model/team.rb', line 5

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

Instance Attribute Details

#move_strategyObject (readonly)

Returns the value of attribute move_strategy.



3
4
5
# File 'lib/tic_tac_toe/model/team.rb', line 3

def move_strategy
  @move_strategy
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/tic_tac_toe/model/team.rb', line 3

def name
  @name
end

#piecesObject (readonly)

Returns the value of attribute pieces.



3
4
5
# File 'lib/tic_tac_toe/model/team.rb', line 3

def pieces
  @pieces
end

Instance Method Details

#available_moves(board) ⇒ Object



23
24
25
26
27
# File 'lib/tic_tac_toe/model/team.rb', line 23

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

#computer?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/tic_tac_toe/model/team.rb', line 19

def computer?
  !@move_strategy.nil?
end

#selected_pieceObject



15
16
17
# File 'lib/tic_tac_toe/model/team.rb', line 15

def selected_piece
  @pieces[0]
end