22 lines
480 B
Text
22 lines
480 B
Text
zigzag(n) := block([a, i, j],
|
|
a: zeromatrix(n, n),
|
|
i: 1,
|
|
j: 1,
|
|
for k from 0 thru n*n - 1 do (
|
|
a[i, j]: k,
|
|
if evenp(i + j) then (
|
|
if j < n then j: j + 1 else i: i + 2,
|
|
if i > 1 then i: i - 1
|
|
) else (
|
|
if i < n then i: i + 1 else j: j + 2,
|
|
if j > 1 then j: j - 1
|
|
)
|
|
),
|
|
a)$
|
|
|
|
zigzag(5);
|
|
/* matrix([ 0, 1, 5, 6, 14],
|
|
[ 2, 4, 7, 13, 15],
|
|
[ 3, 8, 12, 16, 21],
|
|
[ 9, 11, 17, 20, 22],
|
|
[10, 18, 19, 23, 24]) */
|