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