Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View file

@ -0,0 +1,33 @@
defmodule RC do
def spiral_matrix(n) do
right(n,n-1,0,[]) |> Enum.with_index |> Enum.sort |> Enum.with_index |>
Enum.each(fn {{_,x},i} ->
:io.format("~2w ", [x])
if( rem(i+1,n)==0, do: IO.puts "")
end)
end
def right(n,side,i,coordinates) do
coord = for j <- 0..side, do: {i, i+j}
down(n,side,i,coordinates++coord)
end
def down(_,0,_,coordinates), do: coordinates
def down(n,side,i,coordinates) do
coord = for j <- 1..side, do: {i+j, n-1-i}
left(n,side-1,i,coordinates++coord)
end
def left(n,side,i,coordinates) do
coord = for j <- 0..side, do: {n-1-i, i+side-j}
up(n,side,i,coordinates++coord)
end
def up(_,0,_,coordinates), do: coordinates
def up(n,side,i,coordinates) do
coord = for j <- 1..side, do: {i+side-j+1, i}
right(n,side-1,i+1,coordinates++coord)
end
end
RC.spiral_matrix(5)