Blockr Points
one-point
p =
Point.new(1, 5)
|> Point.move_down()
|> Point.move_down()
|> Point.move_down()
|> Point.move_left()
|> Point.move_right()
Canvas.new(p)
Multiple Point
points =
[
Point.new(2, 5),
Point.new(2, 6),
Point.new(3, 4),
Point.new(3, 5)
]
Canvas.new(points)
# points =
# [
# (Point.new(2,5)|> Point.move_right()),
# (Point.new(2,6)|> Point.move_right()),
# (Point.new(3,4)|> Point.move_right()),
# (Point.new(3,5)|> Point.move_right()),
# ]
# points_data = [{2, 5}, {2, 6}, {3, 4}, {3, 5}]
# points = Enum.map(points_data, fn {x, y} ->
# Point.new(x, y) |> Point.move_right()
# end)
# points =
# [{2, 5}, {2, 6}, {3, 4}, {3, 5}]
# |> Enum.map(fn {x, y} -> Point.new(x, y) |> Point.move_right() end)
# Canvas.new(points)
# points =
# [{2, 5}, {2, 6}, {3, 4}, {3, 5}]
# |> Enum.map(&Point.new(elem(&1, 0), elem(&1, 1)) |> Point.move_right())
# |> Canvas.new()
points =
[
Point.new(2, 5),
Point.new(2, 6),
Point.new(3, 4),
Point.new(3, 5)
]
points
|> Enum.map(&Point.move_right/1)
|> Enum.map(&Point.move_right/1)
|> Enum.map(&Point.move_down/1)
|> Canvas.new()
Big Tetromino
points =
[
Point.new(2, 2),
Point.new(3, 2),
Point.new(4, 2),
Point.new(4, 3)
]
Canvas.tetromino(points)
defmodule Spinner do
def swap({row, col}) do
{col, row}
end
def flip_left_right(point) do
# flipped
point
end
def flip_top_bottom(point) do
# flipped
point
end
end
{:module, Spinner, <<70, 79, 82, 49, 0, 0, 5, ...>>, {:swap, 1}}
points
|> Enum.map(&Spinner.swap/1)
|> Canvas.tetromino()