Jump to content

Zig-zag matrix: Difference between revisions

Added Arturo implementation
m (Beads multi line variable declaration)
(Added Arturo implementation)
Line 711:
350 PRINT
360 NEXT Y</lang>
 
=={{header|Arturo}}==
 
<lang rebol>zigzag: function [n][
void: map 1..n 'x -> map 1..n => 0
 
x: 1, y: 1, v: 0, d: 1
 
while [v < n^2][
if? all? @[1 =< x x =< n 1 =< y y =< n][
set get void (y-1) (x-1) v
x: x + d, y: y - d, v: v + 1
]
else[if? x > n [x: n, y: y + 2, d: neg d]
else[if? y > n [x: x + 2, y: n, d: neg d]
else[if? x < 1 [x: 1, d: neg d]
else[if y < 1 [y: 1, d: neg d]
]
]
]
]
]
 
loop void 'row -> print map row 'col [pad to :string col 3]
]
zigzag 5</lang>
 
{{out}}
 
<pre> 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</pre>
 
=={{header|ATS}}==
1,532

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.