30 lines
713 B
Text
30 lines
713 B
Text
fun zigzag ← List by int n
|
|
List matrix ← List[].with(n)
|
|
for int y ← 0; y < n; y++ do matrix[y] ← int[].with(n) end
|
|
int y, x ← 1
|
|
for int value ← 0; value < n²; value++
|
|
matrix[y - 1][x - 1] ← value
|
|
if (y + x) % 2 æ 0
|
|
if x < n do x++
|
|
else do y +← 2 end
|
|
if y > 1 do y-- end
|
|
else
|
|
if y < n do y++
|
|
else do x +← 2 end
|
|
if x > 1 do x-- end
|
|
end
|
|
end
|
|
return matrix
|
|
end
|
|
fun dump ← void by List matrix
|
|
int max ← length(text!(matrix.length²)) + 1
|
|
for each List row in matrix
|
|
for each int value in row
|
|
write(" " * (max - length(text!value)) + value)
|
|
end
|
|
writeLine()
|
|
end
|
|
end
|
|
dump(zigzag(5))
|
|
writeLine()
|
|
dump(zigzag(10))
|