Class: Toy::Table

Inherits:
Object
  • Object
show all
Defined in:
lib/toy/table.rb

Defined Under Namespace

Modules: Error

Constant Summary collapse

X_SIZE =
5
Y_SIZE =
5

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(unit = Toy::Unit) ⇒ Table

Returns a new instance of Table.



13
14
15
16
# File 'lib/toy/table.rb', line 13

def initialize(unit=Toy::Unit)
  @unit = unit
  @unit_collection = generate_collection!
end

Instance Attribute Details

#unit_collectionObject (readonly)

X starts from west Y starts from south



11
12
13
# File 'lib/toy/table.rb', line 11

def unit_collection
  @unit_collection
end

Instance Method Details

#hold!(x, y, object) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/toy/table.rb', line 18

def hold!(x, y, object)
  raise Toy::Unit::Error::CoordinateError unless x.is_a?(Fixnum)
  raise Toy::Unit::Error::CoordinateError unless y.is_a?(Fixnum)

  target_unit = @unit_collection.find_by_coordinates(x, y)

  if target_unit && target_unit.available?
    @unit_collection.find_by_object(object) && @unit_collection.find_by_object(object).release!
    target_unit.hold!(object)
  else 
    raise Toy::Table::Error::TableError
  end
end