class BoardGame::Tile

A single tile on the map/board.

Attributes

content[RW]
map[RW]
x[RW]
y[RW]

Public Class Methods

new(x: nil , y: nil, map: nil, content: []) click to toggle source
# File lib/boardgame/tile.rb, line 6
def initialize(x: nil , y: nil, map: nil, content: [])
  @content, @x, @y, @map = content, x, y, map
end

Public Instance Methods

<<(piece) click to toggle source
# File lib/boardgame/tile.rb, line 23
def <<(piece)
  piece.tile = self
  @content << piece
end
as_json(*args) click to toggle source
# File lib/boardgame/tile.rb, line 33
def as_json(*args)
  {x: @x,
   y: @y,
   content: @content}
end
inspect() click to toggle source
# File lib/boardgame/tile.rb, line 19
def inspect
  content.empty? ? "□" : content.last.inspect
end
move_to(x, y, map = @map) click to toggle source
# File lib/boardgame/tile.rb, line 10
def move_to(x, y, map = @map)
  if map.within? x, y
    @x, @y, @map = x, y, map
  else
    raise 'invalid move'
  end
  self
end
remove(piece) click to toggle source
# File lib/boardgame/tile.rb, line 28
def remove(piece)
  piece.tile = nil
  @content.delete piece
end