§2 モグラたたきゲームの制作 VB6
 (6) 改良いろいろ T 前へ 目次へ 次へ 

 モグラたたきゲームが一応完成したので、気の付いたところを改良・機能追加をしていこう。
 改良は次の点について行う予定である。

  1. モグラがどこかに常に出ているので、出ない状態も作る。 [Go]
  2. ヒットしたときの得点が高い「ボーナスモグラ」を追加する。 [Go]
  3. ゲームに時間制限を設け、時間内の得点を競うゲームとする。 [Go]
  4. ハイスコア(名前と得点)を記録できるようにする。 [Go]

 改良いろいろとはしたが、実際にはソフトウェア計画(設計)段階で検討しておくべきものである。「思いつきのように変更していくのは良くない」ということだけは覚えていてもらいたい。


 おまけバージョン [Go]
 モグラたたきゲームのグラフィック版である。ボタンの代わりにイメージコントロールを使っている。


 1. モグラがどこかに常に出ているので、出ない状態も作る。

 どのモグラを出すか、すなわちどのボタンの色を変えるかは、次のプログラムリストのようにTimer1_Timerプロシージャ中のユーザ関数Ransuuで決めている。
 モグラが出ない状態は、関数Ransuuで0から8以外の数字も出すようにして、その時はボタンの色を変えない(モグラを出さない)ようにすれば良い。

Private Sub Timer1_Timer()
    Static rr As Integer        'Static
    Dim rn As Integer

    Command1(rr).BackColor = QBColor(8)    '前回色を変えたボタンの色を元に戻す
    Do
        rn = Ransuu(0, 8)        '乱数
        If rn <> rr Then          '前回と違う位置
            Exit Do
        End If
    Loop
    Command1(rn).BackColor = QBColor(4)    'モグラの色設定
    rr = rn
End Sub

 例えば、関数Ransuuで0から9を出すようにして8を越えるときはボタンの色を変えない(モグラを出さない)ようにする。プログラムでは8以下の時にボタンの色を変える(元に戻す)ようにしている。

・プログラムリスト

Private Sub Timer1_Timer()
    Static rr As Integer        'Static
    Dim rn As Integer

    If rr <= 8 Then        '8以下の時にボタンの色を元に戻す
        Command1(rr).BackColor = QBColor(8)    '前回色を変えたボタンの色を元に戻す
    End If
    Do
        rn = Ransuu(0, 9)        '乱数
        If rn <> rr Then          '前回と違う位置
            Exit Do
        End If
    Loop
    If rn <= 8 Then        '8以下の時にボタンの色を変える
        Command1(rn).BackColor = QBColor(4)    'モグラの色設定
    End If
    rr = rn
End Sub

 このままでは、モグラが出ない状態が少ない。
 モグラが出ない状態は0から9の内の9の時だけ、すなわち出ない確率は1/10である。そこでモグラが出ない確率を1/2程度にするため乱数発生(関数Ransuu)の範囲を0から17とする。
 0〜8 (9) : モグラが出る、  9〜17 (9) : モグラが出ない

        rn = Ransuu(0, 17)        '乱数


 (6) 改良いろいろ T 前へ 目次へ 次へ 
Copyright © 2001,2002 Hiroshi Masuda 

 

 

inserted by FC2 system