正月にちなんで、凧上げをするゲームを作りました。
上下キーで、凧を上下させます。Wは風の強さ(5段階)、Sはスコアです。
スコアは、凧が一番上に上がっている時だけ増えます。

凧は予備が2つあって、凧が飛ばされる状況は、
・風の強さが5の時に凧が6マス以上上がっている時
・凧か凧糸にドローン(クラブ)が引っかかった時
です。



凧はPOKEを使って描いたドット絵、
凧糸は、かな文字の「・」を使っています。

プログラム ver.IchigoJamBASIC 1.1.1
 ※赤文字は、小文字はAltキーを押しながら、大文字はAltキー+Shiftキーを押しながら、かな文字は、右Altキーかカタカナ・ひらがなキーを押してから入力してください。

10 CLS:CLV:CLT:X=19:Y=19:Z=2:N=0:T=0:H=0:M=29:D=60:POKE #700,#20,#50,#A8,#54,#2C,#1E,#09,#04:LC20,20:?”t”:LC28,0:?" 00”:CLT
20 LCX,Y:?”0”:LC0,0:?" W:";Z;" S:";S;" ":IF C=1 LCD/2,V:?”6 ":D=D-1:IF D=0 LCD/2,V:?" ":C=0
30 K=INKEY()
40 IF (K=30)*(Y>2) BEEP:LCX,Y:?””:X=X-1:Y=Y-1:CLK
50 IF ((K=31))*(Y<19) BEEP:LCX,Y:?" ":X=X+1:Y=Y+1:CLK
54 IF Y!=2 CLT
55 IF (Y=2)*(TICK()/60=1) CLT:BEEP2:S=S+1
60 IF (Y<14)*(Z=5) J=0:GOSUB 95
70 A=A+1:IF A%20=0 B=RND(3)-1:IF (Z>1)*(B=-1) Z=Z+B:ELSE IF (Z<5)*(B=1) Z=Z+B
75 IF A=150 D=60:C=1:A=0:V=RND(15)+2
80 IF (D=(V+13))*(Y<V+1) J=0:GOSUB 95
90 GOTO 20
95 LCX,Y" "
96 LCX-(J-1),Y:?" ":LCX-J,Y:?”0”:J=J+1:IF X-J>-1 WAIT4:BEEP1:GOTO 96:ELSE LCX-J,Y:?" ":J=0
99 X=X+1:Y=Y+1
100 LCX,Y:?" ":X=X+1:Y=Y+1:IF Y<19 GOTO 100:ELSE LCX,Y:?" "
110 LCM,0:?" ":M=M+1
120 IF M=32 LC10,10:?"GAME OVER":END
130 LC20,20:?”t”:RETURN


風力を記号で表した、自動制御のプログラムも作りました。



プログラム

10 CLS:CLV:CLT:X=19:Y=19:Z=2:N=0:T=0:H=0:M=29:D=60:POKE #700,#20,#50,#A8,#54,#2C,#1E,#09,#04:LC20,20:?”t”:LC28,0:?" 00”:CLT
20 LCX,Y:?”0”:LC0,0:?"W:";
21 IF F<Z F=F+1:?"~";:GOTO21:ELSE ?" ":F=0
22 LC10,0:?" S:";S;" ":IF C=1 LCD/2,V:?”6 ":D=D-1:IF D=0 LCD/2,V:?" ":C=0
30 K=INKEY()
40 IF ((Z=1)+(Z=2)+(Z=3))*(C=0)*(Y>2) BEEP:LCX,Y:?””:X=X-1:Y=Y-1:CLK
50 IF ((Z=4)+(Z=5)+(C=1))*(Y<19) BEEP:LCX,Y:?" ":X=X+1:Y=Y+1:CLK
54 IF Y!=2 CLT
55 IF (Y=2)*(TICK()/60=1) CLT:BEEP2:S=S+1
60 IF (Y<14)*(Z=5) J=0:GOSUB 95
70 A=A+1:IF A%20=0 B=RND(3)-1:IF (Z>1)*(B=-1) Z=Z+B:ELSE IF (Z<5)*(B=1) Z=Z+B
75 IF A=150 D=60:C=1:A=0:V=RND(15)+2
80 IF (D=(V+13))*(Y<V+1) J=0:GOSUB 95
90 GOTO 20
95 LCX,Y:?" "
96 LCX-(J-1),Y:?" ":LCX-J,Y:?"0”:J=J+1:IF X-J>-1 WAIT4:BEEP1:GOTO 96:ELSE LCX-J,Y:?" ":J=0
99 X=X+1:Y=Y+1
100 LCX,Y:?" ":X=X+1:Y=Y+1:IF Y<19 GOTO 100:ELSE LCX,Y:?" "
110 LCM,0:?" ":M=M+1
120 IF M=32 LC10,10:?"GAME OVER":END
130 LC20,20:?”t”:RETURN
関連する記事
コメント
コメントする