(published: Feb. 11, 2001)
SVROLKは前作の改訂版です。 初めは縦方向のスクロールだけだったのですが、 何とか改造して4方向スクロールを実現しました。
"&"を動かして "*"や"&"の移動したあとに出来る"#"、 そして突然現れる"@"にぶつからない様に 避けつづけて下さい。 ぶつかるとゲームオーバーで、 避けつづけていた時間が表示されます。
カーソルキー:4方向移動
"@"は常に"&"の進路を塞ぐ様に出現します。 長時間避けつづけていると出現率が上がります。
1 randomize 5 dim w$(20) 6 sp$=" " 7 cls 10 wi%=0:ms%=21:d%=1:f%=0:s%=-1:ss%=-1 20 for l%=0 to 20 21 w$(l%)=sp$ 22 next l% 78 locate ms%*2+2,2:print "svrolk" 80 locate ms%*2+2,3:print "[cursor]: move" 84 locate ms%*2+2,5:print "by Nisino Tatami" 86 locate ms%*2+2,7:print "push [spc]" 90 i$=inkey$:if i$<>" " then 90 92 locate ms%*2+2,7:print " " 100 if keystate(28)<0 and d%<>3 then d%=4:goto 110 101 if keystate(29)<0 and d%<>4 then d%=3:goto 110 102 if keystate(31)<0 and d%<>1 then d%=2:goto 110 103 if keystate(30)<0 and d%<>2 then d%=1 110 on d% gosub 1000,2000,3000,4000 111 wp%=(wi%+10) mod 21 112 if kmid$(w$(wp%),11,1)<>" " then f%=1 113 w$(wp%)=kmid$(w$(wp%),1,10)+"#"+kmid$(w$(wp%),12,10) 115 locate 10*2,10:print "&"; 116 s%=s%+1 120 if f%=0 then 100 130 for l%=0 to 5 140 locate 8*2,8+l%:print "XXXXX"; 150 next l% 270 locate 0,0:print "score ";s%;" " 280 locate ms%*2+2,10:print "retr[y]/e[n]d" 290 i$=inkey$ 300 if i$="y" then 7 310 if i$<>"n" then 290 320 end 1000 h1%=int(rnd(1)*ms%):q%=int(rnd(1)*2000) 1010 w$(wi%)=kmid$(sp$,1,h1%)+"*"+kmid$(sp$,1,ms%-1-h1%) 1015 if q%<s% then w$(wi%)=kmid$(w$(wi%),1,10)+"@"+kmid$(w$(wi%),12,10) 1020 for l%=0 to 20 1030 wp%=(wi%+l%) mod 21 1040 locate 0,l%:print w$(wp%); 1050 next l% 1060 wi%=(wi%+20) mod 21 1070 return 2000 h1%=int(rnd(1)*ms%):q%=int(rnd(1)*2000) 2010 w$((wi%+20) mod 21)=kmid$(sp$,1,h1%)+"*"+kmid$(sp$,1,ms%-1-h1%) 2015 if q%<s% then w$((wi%+20) mod 21)=kmid$(w$((wi%+20) mod 21),1,10)+"@"+kmid$(w$((wi%+20) mod 21),12,10) 2020 for l%=0 to 20 2030 wp%=(wi%+l%) mod 21 2040 locate 0,l%:print w$(wp%); 2050 next l% 2060 wi%=(wi%+1) mod 21 2070 return 3000 v1%=int(rnd(1)*20):q%=int(rnd(1)*2000) 3010 for l%=0 to 20 3020 wp%=(wi%+l%) mod 21 3030 a$=" ":if v1%=l% then a$="*" 3035 if q%<s% and l%=10 then a$="@" 3040 w$(wp%)=a$+kmid$(w$(wp%),1,ms%-1) 3050 locate 0,l%:print w$(wp%); 3060 next l% 3070 return 4000 v1%=int(rnd(1)*20):q%=int(rnd(1)*2000) 4010 for l%=0 to 20 4020 wp%=(wi%+l%) mod 21 4030 a$=" ":if v1%=l% then a$="*" 4035 if q%<s% and l%=10 then a$="@" 4040 w$(wp%)=kmid$(w$(wp%),2,ms%-1)+a$ 4050 locate 0,l%:print w$(wp%); 4060 next l% 4070 return
([D]iscoversoft) (H-man in [A]CTIVE BASICトップ) (総合索引[t])