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