#6:VALU1

(published: Oct. 11, 2000)

RANDOM1をベースにして 別のゲームを作ってみました。 今回のテーマは「敵に捕まらない様に撲滅する」です。

ダウンロード(zip形式, 76.7KB)

ゲーム内容

"#"を動かして"@"に"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])


H-man AND NOW
作:Nishino Tatami (ainosato@vc-net.ne.jp)