3 # This file is part of NIT ( http://www.nitlanguage.org ).
4 # This program is public domain
7 # SEE: <http://rosettacode.org/wiki/Zig-zag_matrix>
9 fun zig_zag
(number
: Int): Array[Array[Int]] do
11 var last_number
= number
* number
- 1
21 var array
= new Array[Array[Int]]
22 for i
in [0..number
[ do array
.add
(new Array[Int].filled_with
(0, number
))
24 while first_number
<= last_number
do
25 array
[y
][x
] = first_number
26 array
[number
- y
- 1][number
- x
- 1] = last_number
31 if x
== 0 and y
== 0 then
35 if y
== 0 and trajectory
then
40 if y
== 0 and not trajectory
then
45 if x
== 0 and not trajectory
then
50 if x
== 0 and trajectory
then
68 var number_length_max
= (number
* number
- 1).to_s
.length
69 for line
in zig_zag
(number
) do
70 for element
in line
do
72 var blank
= number_length_max
- element
.to_s
.length
+ 1
73 for x
in blank
.times
do printn
" "