class Rubytris::Current
Constants
- BLOCKS
Public Class Methods
new(x, y, current = new_block)
click to toggle source
# File lib/rubytris/current.rb, line 40 def initialize(x, y, current = new_block) @x = x @y = y @current = current end
Public Instance Methods
fall()
click to toggle source
move fall
# File lib/rubytris/current.rb, line 71 def fall() Current.new(@x, @y + 1, @current) end
left()
click to toggle source
move left
# File lib/rubytris/current.rb, line 66 def left() Current.new(@x - 1, @y, @current) end
move_position()
click to toggle source
# File lib/rubytris/current.rb, line 46 def move_position() count = 0 block_position = Array.new(4) @current.each_with_index do |block, y| block.each_with_index do |b, x| if b == 1 block_position[count] = [ @x + x, @y + y ] count += 1 end end end block_position end
new_block()
click to toggle source
create new block
# File lib/rubytris/current.rb, line 90 def new_block() rnd = rand(BLOCKS.length) BLOCKS[rnd] end
right()
click to toggle source
move right
# File lib/rubytris/current.rb, line 61 def right() Current.new(@x + 1, @y, @current) end
rotation()
click to toggle source
move rotation
# File lib/rubytris/current.rb, line 76 def rotation() tmp = Array.new(4){ Array.new(4, 0)} @current.each_with_index do |line, y| line.each_with_index do |l, x| tmp[x][y] = l end end tmp.each_with_index do |line, i| tmp[i] = line.reverse end Current.new(@x, @y, tmp) end