RosettaCodeData/Task/Spiral-matrix/FutureBasic/spiral-matrix.basic

42 lines
645 B
Plaintext

void local fn SpiralMatrix( size as int )
int t = 0, b = size - 1, l = 0, r = size - 1
int value = 0, i, j
while ( t <= b && l <= r) {
for i = l to r
mda(t,i) = value++
next
t++
for i = t to b
mda(i,r) = value++
next
r--
if ( t <= b )
for i = r to l step -1
mda(b,i) = value++
next
b--
end if
if ( l <= r )
for i = b to t step -1
mda(i,l) = value++
next
l++
end if
wend
for i = 0 to size -1
for j = 0 to size - 1
printf @"%2d \b",mda_integer(i,j)
next
print
next
end fn
fn SpiralMatrix( 5 )
HandleEvents