You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
573 B

defmodule Tetris do
alias Tetris.{Bottom, Brick, Points}
def prepare(brick) do
brick
|> Brick.prepare
|> Points.move_to_location(brick.location)
end
def try_move(brick, bottom, f) do
new_brick = f.(brick)
if Bottom.collides?(bottom, prepare(new_brick)) do
brick
else
new_brick
end
end
def try_left(brick, bottom), do: try_move(brick,bottom, &Brick.left/1)
def try_right(brick, bottom), do: try_move(brick,bottom, &Brick.right/1)
def try_spin(brick, bottom), do: try_move(brick,bottom, &Brick.spin_90/1)
end