(published: Oct. 11, 2000)
RANDOM1をベースにして 別のゲームを作ってみました。 今回のテーマは「敵に捕まらない様に撲滅する」です。
"#"を動かして"@"に"X"を接触させて 撲滅して下さい。 "#"が直接"@"に触れるととゲームオーバーで、 撲滅した数が表示されます。
カーソルキー:8方向移動
"X"は"#"の移動方向に出現します。
1 randomize 5 dim h%(50),v%(50),h0%(50),v0%(50),ls%(50) 10 x%=10:y%=10:x0%=0:y0%=0:x1%=1:y1%=0:s%=0:f%=0 30 cls 40 for l%=1 to 50 50 h%(l%)=0:v%(l%)=0:ls%(l%)=0 60 next l% 70 for l%=0 to 20 72 locate 0,l%:print " H"; 76 next l% 77 locate 0,21:print "HHHHHHHHHHHHHHHHHHHHHH"; 78 locate 23*2,2:print "valu1" 80 locate 23*2,3:print "[cursor]: move" 82 locate 23*2,4:print "" 84 locate 23*2,5:print "by Nisino Tatami" 86 locate 23*2,7:print "push [spc]" 90 i$=inkey$:if i$<>" " then 90 92 locate 23*2,7:print " " 100 i$=inkey$:x0%=0:y0%=0:k0%=0 110 if keystate(28)<0 and x%<20 then x0%=1:k0%=1:gosub 500 115 if keystate(29)<0 and x%>0 then x0%=-1:k0%=1:gosub 500 120 if keystate(31)<0 and y%<20 then y0%=1:k0%=1:gosub 500 125 if keystate(30)<0 and y%>0 then y0%=-1:k0%=1:gosub 500 130 locate (x%+x0%)*2,y%+y0%:print "#"; 140 if k0%<>0 then locate x%*2,y%:print " "; 150 x%=x%+x0%:y%=y%+y0% 151 if x%+x1%>=0 and x%+x1%<=20 and y%+y1%>=0 and y%+y1%<=20 then locate (x%+x1%)*2,y%+y1%:print "X"; 160 for l%=1 to 20 161 if ls%(l%)<=0 then 170 162 ls%(l%)=ls%(l%)-1 163 if ls%(l%)<=10 then locate h%(l%)*2,v%(l%):print "*"; 164 goto 240 170 if h%(l%)<>x%+x1% or v%(l%)<>y%+y1% then 175 171 gosub 600 172 goto 240 175 h0%=int(rnd(1)*3)-1:v0%=int(rnd(1)*3)-1:j0%=int(rnd(1)*2) 180 if h%(l%)+h0%<0 or h%(l%)+h0%>20 or j0%=0 then h0%=0 190 if v%(l%)+v0%<0 or v%(l%)+v0%>20 or j0%=1 then v0%=0 200 locate (h%(l%)+h0%)*2,v%(l%)+v0%:print "@"; 210 if h0%<>0 or v0%<>0 then locate h%(l%)*2,v%(l%):print " "; 220 h%(l%)=h%(l%)+h0%:v%(l%)=v%(l%)+v0% 221 if h%(l%)<>x%+x1% or v%(l%)<>y%+y1% then 230 222 gosub 600 223 goto 240 230 if h%(l%)=x% and v%(l%)=y% then f%=1 240 next l% 260 if f%=0 then 100 270 locate 0,0:print "score ";s%;" " 280 locate 10,10:print "retr[y]/e[n]d" 290 i$=inkey$ 300 if i$="y" then 10 310 if i$<>"n" then 290 320 end 500 if x%+x1%>=0 and x%+x1%<=20 and y%+y1%>=0 and y%+y1%<=20 then locate (x%+x1%)*2,y%+y1%:print " "; 510 x1%=x0%:y1%=y0% 520 return 600 s%=s%+1 610 locate h%(l%)*2,v%(l%):print "!"; 620 h%(l%)=int(rnd(1)*21):v%(l%)=int(rnd(1)*21) 630 ls%(l%)=100 640 return
([D]iscoversoft) (H-man in [A]CTIVE BASICトップ) (総合索引[t])