(published: Jan. 31, 2001)
今回のテーマはテキストの4方向スクロールです。 初めは縦方向のスクロールだけだったのですが、 何とか改造して4方向スクロールを実現しました。
"&"を動かして "*"や"&"の移動したあとに出来る"#"にぶつからない様に 避けつづけて下さい。 ぶつかるとゲームオーバーで、 避けつづけていた時間が表示されます。
カーソルキー:4方向移動
進行方向と逆に急に移動しようとすると すぐにゲームオーバーになりますが、仕様です。
1 randomize 5 dim w$(20) 7 cls 10 wi%=0:ms%=21:d%=1:f%=0:s%=-1 20 for l%=0 to 20 21 w$(l%)=string$(ms%," ") 22 next l% 78 locate ms%+2,2:print "scrollk" 80 locate ms%+2,3:print "[cursor]: move" 84 locate ms%+2,5:print "by Nisino Tatami" 86 locate ms%+2,7:print "push [spc]" 90 i$=inkey$:if i$<>" " then 90 92 locate ms%+2,7:print " " 100 if keystate(28)<0 then d%=4 101 if keystate(29)<0 then d%=3 102 if keystate(31)<0 then d%=2 103 if keystate(30)<0 then d%=1 110 on d% gosub 1000,2000,3000,4000 111 wp%=(wi%+10) mod 21 112 if mid$(w$(wp%),11,1)<>" " then f%=1 113 w$(wp%)=left$(w$(wp%),10)+"#"+right$(w$(wp%),10) 115 locate 10,10:print "&"; 116 s%=s%+1 120 if f%=0 then 100 130 for l%=0 to 5 140 locate 8,8+l%:print "XXXXX"; 150 next l% 270 locate 0,0:print "score ";s%;" " 280 locate ms%+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%) 1010 w$(wi%)=spc(h1%)+"*"+spc(ms%-1-h1%) 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%) 2010 w$((wi%+20) mod 21)=spc(h1%)+"*"+spc(ms%-1-h1%) 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) 3010 for l%=0 to 20 3020 wp%=(wi%+l%) mod 21 3030 a$=" ":if v1%=l% then a$="*" 3040 w$(wp%)=a$+left$(w$(wp%),ms%-1) 3050 locate 0,l%:print w$(wp%); 3060 next l% 3070 return 4000 v1%=int(rnd(1)*20) 4010 for l%=0 to 20 4020 wp%=(wi%+l%) mod 21 4030 a$=" ":if v1%=l% then a$="*" 4040 w$(wp%)=right$(w$(wp%),ms%-1)+a$ 4050 locate 0,l%:print w$(wp%); 4060 next l% 4070 return
([D]iscoversoft) (H-man in [A]CTIVE BASICトップ) (総合索引[t])