module Text2048::MonkeyPatch::Array::Tile

2048 related methods

Public Instance Methods

fill_length(len) click to toggle source
# File lib/text2048/monkey_patch/array/tile.rb, line 29
def fill_length(len)
  compact!
  unshift(Text2048::Tile.new(nil)) until size == len
  self
end
merge_left(index) click to toggle source
# File lib/text2048/monkey_patch/array/tile.rb, line 17
def merge_left(index)
  value = self[index].to_i * 2
  self[index] = Text2048::Tile.new(value, :merged)
  self[index - 1] = nil
  value
end
right() click to toggle source
# File lib/text2048/monkey_patch/array/tile.rb, line 9
def right
  shrink
  score = (size - 1).downto(1).reduce(0) do |memo, each|
    memo + (self[each] == self[each - 1] ? merge_left(each) : 0)
  end
  [fill_length(4), score]
end
shrink() click to toggle source
# File lib/text2048/monkey_patch/array/tile.rb, line 24
def shrink
  delete(0)
  map! { |each| each.clear_status }
end