Module: Text2048::MonkeyPatch::Array::Tile
- Included in:
- Array
- Defined in:
- lib/text2048/monkey_patch/array/tile.rb
Overview
2048 related methods
Instance Method Summary collapse
Instance Method Details
#fill_length(len) ⇒ Object
29 30 31 32 33 |
# 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) ⇒ Object
17 18 19 20 21 22 |
# 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 ⇒ Object
9 10 11 12 13 14 15 |
# 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 ⇒ Object
24 25 26 27 |
# File 'lib/text2048/monkey_patch/array/tile.rb', line 24 def shrink delete(0) map! { |each| each.clear_status } end |