fx-5800P【ゲーム】もぐら叩き(6)
fx-5800Pでもぐら叩き
e-Gadget
fx-5800P【ゲーム】もぐら叩き(5) の続き
前回紹介した機能追加は、我が家のゲーマー達には最初は面白いが、しばらくすると慣れてしまって面白くないと言う。
前回は、下記の機能を追加している:
1) 間違ったモグラを叩いた時にペナルティーとしてLIFEを減らす
2) たまには、偽物のモグラが顔を出し、それを叩くとペナルティーとしてLIFEを減らす
そこで、さらに緊張感を追加するために、
3) 偽物のモグラだけでなく、同時に本物のモグラを出し、本物以外を叩くとペナルティーとしてLIFEを減らす
ように追加した。
余計な機能を追加しても、スピードを極力落とさないようにしたいところだ。
本物モグラの座標は、乱数で X と Y を求めて、座標(3X-1、Y)に出現させている。にそこで、偽物モグラが出る座標は、X と Y を入れ替えて、座標(3Y-1、X)に出現させることにする。これにより、偽物モグラのための乱数取得を行わずに済む。
あとは、モグラ出現の処理と、判定処理のスピード低下を極力減らすようにすれば良い。
モグラ出現の処理
今回の機能追加で、モグラの出現モードが3つになった。出現モードは変数 Q で管理している。これまでは、Q は 0 か 1 だったが、今回からは 0、1、2 の3通りになる。
・Q=0: 本物モグラが1匹だけ出現する
・Q=1: 本物モグラと偽物モグラが1匹づつ同時に出現する
・Q=2: 偽物モグラが1匹だけ出現する
なお、Q=1のモードの時は、意地悪く偽物モグラを一瞬先に出すことにする。
ところで、今回追加した出現モードを、Q=1 としたのは、モグラ判定処理のスピード低下防止に関連する。本物モグラが出現するモードを Q=0 と Q=1 にすると、判定の計算処理を、If Q≦ 1: Then で一括処理できるからだ。
モグラ判定の処理
モグラ出現モードを上記のように設定すると、変更は1カ所で済み、それによるスピード低下は If Q=0 から If Q≦1 への変更に伴う変化のみに依存する。
今回追加・変更した部分を、赤文字で以下に示す。
fx-5800P用プログラム
もぐら叩きゲーム 改造版
==================
10→DimZ :変数の初期化
35→Z[1]:36→Z[2]
37→Z[3]:21→Z[4]
22→Z[5]:23→Z[6]
31→Z[7]:32→Z[8]
33→Z[9]
17→D:25→E
0→P:0→Q
For 1→B To 3 :初期画面表示
Locate 1,B,"[ ][ ][ ]"
Next
Locate 11,2,"PRIZE"
Locate 12,3,P
Locate 1,4,"LIFE:"
Locate 6,4,L
Lbl 0 :ゲームメインループ(始まり)
RanInt#(1,9)→T :モグラ出現のタイミングと座標
RanInt#(1,3)→X
RanInt#(1,3)→Y
RanInt#(0,9)→Z
9+X-3Y→N
If P≧200:Then
Z=2⇒2→Q
Z=1⇒1→Q
Else 0→Q:IfEnd
Lbl 1 :モグラ出現のカウントタイマー
Dsz T
Goto 1
0→C :モグラを出現させ、叩くまでの処理
If Q=2:Then
Locate 3X-1,Y,"X"
Else
Q=1⇒Locate 3Y-1,X,"X"
Locate 3X-1,Y,"O"
IdEnd
Do
Isz C
If C>E:Then
Break:IfEnd
Getkey→K
LpWhile K=0
Q=1⇒Locate 3Y-1,X," "
Locate 3X-1,Y," "
If Q≦1:Then :モグラを叩いた後の判定
If C≦D And K=Z[N]
Then P+20-C→P
Else L-1→L
If C>D:Then
P-25→P:IfEnd
IfEnd
Else
If C≦D:Then
L-1→L:IfEnd
IfEnd
Locate 12,3," " :リアルタイム表示
Locate 12,3,P
Locate 6,4,L
L⇒Goto 0 :ゲームメインループ(終わり)
0→DimZ :ゲーム終了時の処理
For 1→A To 3
For 1→B To 3
Locate 3B-1,A,"Q"
Next:Next
Locate 1,2,"GAME OVER"
==================
持ち点20点、タイムアウト条件やその他の設定は、現在のところ固定されている。これらを変更することで、難易度を変更できる。
そこで、難易度を変更できるようにして、一旦ゲームの完成としようと思う。
つづく...
⇒ もぐら叩き(7)
応援クリックをお願いします。励みになるので...