例2を作ってみました。
reという配列にらせん状に数字が順番に代入されていると思います。
m=0,1,0,-1
xmax=5
ymax=5
x=int(xmax/2)
y=int(ymax/2)
dim re,xmax,ymax
size=xmax*ymax
c=0
repeat
c2=cnt
repeat (c2+2)/2
re(x,y)=c
if(c=size-1):break
c++
x+=m(c2\4)
y+=m(3-c2\4)
loop
if(c=size-1):break
loop
repeat size
r=re(cnt\xmax,cnt/ymax)
if(r<10):mes " ",1
mes ""+r,1
if(cnt\xmax=xmax-1){
pos 0:mes ""
}else{
mes ",",1
}
loop
多分きちんと動いていると思います。
xmaxとymaxが等しいとたぶん問題ないですが、
ymaxとxmaxが等しくない場合はエラーで実行できません。
一応大小関係なく動くようにもできますが、
そもそも縦横が違うサイズを想定しているかどうかわからないので
とりあえずこのままにしておきます。
縦横が違うサイズでも動くようにしたい場合は言ってください。
まあ大した書き換えは必要ないのですが。