PROC ormet: rem 960226 global xy$(240),c%,r% local p$(24),xd%,yd%,x%,y%,p%,k% giprint "Ormet Kruper! V1.0" pause 55 s:: cls xy$="" p$="XXXX" xd%=0 yd%=0 r%=0 randomize second if rnd<.5 xd%=1+2*(rnd<.5) else yd%=1+2*(rnd<.5) endif x%=8+rnd*47 :y%=8+rnd*3 do r%=r%+1 at x%,y% :print "*"; xy$=xy$+chr$(x%+20)+chr$(y%) x%=x%+xd% :y%=y%+yd% until r%=4 do r%=r%+1 giprint gen$(r%,5),c% k%=0 :do :k%=k%+1 :until k%=400-r%/40 k%=key if k%=27 stop elseif k%>255 if k%=256 :rem upp xd%=0 :yd%=-1 elseif k%=257 :rem ner xd%=0 :yd%=1 elseif k%=258 :rem h”ger xd%=1 :yd%=0 elseif k%=259 :rem v„nster xd%=-1 :yd%=0 endif endif x%=1+rnd*60 :y%=1+rnd*17 k%=len(p$) if loc(xy$,chr$(x%+20)+chr$(y%))=0 rem rnd-pos finns ej i ormen if k%<24 and rnd<.2 at x%,y% :print "$"; p$=left$(p$,k%-2)+chr$(x%+20)+chr$(y%)+"XX" endif endif x%=asc(mid$(xy$,len(xy$)-1,1))-20 y%=asc(right$(xy$,1)) x%=x%+xd% y%=y%+yd% c%=2*iabs(x%<30)+iabs(y%<8) if x%<1 or x%>60 or y%<1 or y%>17 xy$="Du sprang in i v„ggen!" :error: goto s:: endif if loc(xy$,chr$(x%+20)+chr$(y%))>0 xy$="Du sprang in i dig sj„lv!" :error: goto s:: endif p%=loc(p$,chr$(x%+20)+chr$(y%)) if p%>0 rem just k”rt p† en $ r%=r%+100 p$=left$(p$,p%-1)+mid$(p$,p%+2,55) endif xy$=xy$+chr$(x%+20)+chr$(y%) at asc(left$(xy$,1))-20,asc(mid$(xy$,2,1)) print " "; xy$=mid$(xy$,1+2*iabs(rnd<.93 or len(xy$)=220),220) at x%,y% :print "*"; until 0 ENDP PROC error: local a%,k% do if a%=0 :giprint xy$+" "+gen$(r%,5)+" po„ng (Enter)",c% :a%=1500 :endif a%=a%-1 :k%=key if k%=27 :stop :endif until k%=13 ENDP