fx-CG50 ゲームプログラム 「STAR SWEEPER」

Casio fx-CG50 ゲーム開発入門

●操作方法とルール
・[1]EASY、[2]HARDを選択
・方向キーで♣が進む向きを上下左右に変える
・止まることはできず、壁(#)に当たるとゲームオーバー
・☆を取るとスコアが増え、10点ごとに♣の動きが速くなる


●プログラムの概要
・変数
 L レベル
 X,Y プレイヤー(♣)の座標
 T 常に+1しゲームの進行を管理
 S スコア
 W プレイヤーが動くタイミング
 Mat Z[16, 7] 各マスに何があるかを管理する二次元配列、値1が壁、値2が星
・処理
 Lbl 0 タイトル画面
 Lbl 1 ゲーム開始準備
 Lbl 2 ゲーム中(壁に衝突しない限りループ)
 Lbl 3 ゲームオーバー
※処理が判りやすいように4つのラベルに分けていますが、使っているのは Lbl 0 と Goto 0 だけです

●プログラム
'ProgramMode:RUN
Lbl 0
ClrText
Green Locate 5,2,"STAR SWEEPER"
Locate 3,4,"[1]EASY [2]HARD"
0->L
While L=0
If Getkey=72:Then 1->L:IfEnd
If Getkey=62:Then 2->L:IfEnd
WhileEnd

Lbl 1
ClrText
Locate 17,1,"SCORE"
Locate 17,4,"SPEED"
3->X:4->Y:3->D
0->T:0->S:9-2L->W
{16,7}->Dim Mat Z
For 1->I To 16
1->Mat Z[I,1]
1->Mat Z[I,7]
Red Locate I,1,"#"
Red Locate I,7,"#"
Next
For 2->I To 6
1->Mat Z[1,I]
1->Mat Z[16,I]
Red Locate 1,I,"#"
Red Locate 16,I,"#"
Next
If L=2:Then 
For 5->I To 12 Step 7
For 3->J To 5 Step 2
1->Mat Z[I,J]
Red Locate I,J,"#"
Next:Next
IfEnd

Lbl 2
While Mat Z[X,Y]<>1
T+1->T
Getkey->K
If K=28:Then 0->D:IfEnd
If K=37:Then 1->D:IfEnd
If K=38:Then 2->D:IfEnd
If K=27:Then 3->D:IfEnd
If MOD(T,20)=1:Then 
RanInt#(2,15)->I
RanInt#(2,6)->J
If Mat Z[I,J]=0:Then 2->Mat Z[I,J]:Yellow Locate I,J,"_#E5AD_":IfEnd
IfEnd
If MOD(T,W)=0:Then 
Locate X,Y," "
If D=0:Then Y-1->Y
IfEnd
If D=1:Then Y+1->Y
IfEnd
If D=2:Then X-1->X
IfEnd
If D=3:Then X+1->X
IfEnd
IfEnd
Blue Locate X,Y,"_#E5E1_"
If Mat Z[X,Y]=2:Then S+1->S:0->Mat Z[X,Y]
If MOD(S,10)=0 And W>1:Then W-1->W:IfEnd
IfEnd
Locate 17,2,S
Locate 17,5,W
WhileEnd

Lbl 3
For 0->I To 200
Red Locate X,Y,"_#E5E1_"
Magenta Locate 4,3,"GAME OVER"
Next
Goto 0
Casio fx-CG50 ゲーム開発入門 のトップページへ
プログラミング、ゲーム開発の書籍を執筆します
メールはこちらへ: