class ConsoleTetris::Tetrimino
Attributes
x_coordinate[RW]
y_coordinate[RW]
Public Class Methods
new(x = 0, y = 0, degree = 0, block_type:)
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 7 def initialize(x = 0, y = 0, degree = 0, block_type:) @x_coordinate = x @y_coordinate = y @degree = degree @block_type = block_type @previous_state = {x: x, y: y, degree: degree} end
Public Instance Methods
back_horizontally()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 43 def back_horizontally @x_coordinate = @previous_state[:x] end
back_vertically()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 39 def back_vertically @y_coordinate = @previous_state[:y] end
block()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 61 def block Block.send(@block_type, @degree) end
bottom_edge?()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 73 def bottom_edge? @y_coordinate + block.size > 19 end
down()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 15 def down @previous_state[:y] = @y_coordinate @y_coordinate += 1 end
left_edge?()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 65 def left_edge? @x_coordinate == 0 end
move_left()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 33 def move_left @previous_state[:x] = @x_coordinate @x_coordinate -= 1 end
move_right()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 27 def move_right @previous_state[:x] = @x_coordinate @x_coordinate += 1 end
right_edge?()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 69 def right_edge? @x_coordinate + block.first.size > 9 end
rotate()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 47 def rotate before_block = block @previous_state = {x: @x_coordinate, y: @y_coordinate, degree: @degree} @degree += 90 @degree = 0 if @degree == 360 @y_coordinate = 20 - block.size if @y_coordinate + block.size > 20 @x_coordinate = 10 - block.first.size if @x_coordinate + block.first.size > 10 @y_coordinate = 0 if @y_coordinate.negative? @x_coordinate = 0 if @x_coordinate.negative? end
up()
click to toggle source
# File lib/console_tetris/tetrimino.rb, line 21 def up @previous_state[:y] = @y_coordinate @y_coordinate -= 1 end