リバース Game の制作 VB6
 (3) 駒を打つ 前へ 目次へ 次へ 

 6. ゲームオーバーの確認

 空きの場所がなくなればゲームオーバーである。ゲームオーバーのときは、勝ち負けの判定をする。さらに、ゲームを続けるかどうかを確認する。この処理はサブプロシージャGameoverとして作成する。

Private Sub picField_Click(Index As Integer)
'プレイヤーが置き場所をクリック
    If isHasamu(Index) = True Then     'はさめる
        KomaKaesu Index             'はさめた駒を返す
        If Junban = WHITE Then  '順番交代
            Junban = BLACK
        Else
            Junban = WHITE
        End If
        lblMsg.Caption = JunbanMsg(Junban)
        CountKoma       'コマ数カウント表示
    Else
        lblMsg2.Caption = "そこには置けません。"
    End If
    Gameover        'ゲームオーバー
End Sub

Private Sub Gameover()
'ゲームオーバーを調べる
    Dim x As Integer, y As Integer
    Dim blankF As Integer, yn As Integer
    Dim shiro As Integer, kuro As Integer
    Dim msg As String

    blankF = 0
    For x = 0 To 7          '空き場所を調べる
        For y = 0 To 7
            If Field(x, y) = BLANK Then
                blankF = blankF + 1    '空き場所をカウント
            End If
        Next y
    Next x
    If blankF = 0 Then      'ゲームオーバー
        shiro = Val(Mid(lblShiro.Caption, 5))  '#1
        kuro = Val(Mid(lblKuro.Caption, 5))    '#1
        msg = Str(shiro) & " 対" & Str(kuro) & "   "
        If shiro > kuro Then        '白勝ち
            lblMsg2.Caption = msg & "白の勝ちです。"
        ElseIf shiro < kuro Then    '黒勝ち
            lblMsg2.Caption = msg & "黒の勝ちです。"
        Else                        '引き分け
            lblMsg2.Caption = msg & "引き分けです。"
        End If
        yn = MsgBox("もう一度しますか?", vbYesNo, "リバースGame")
        If yn = vbYes Then
            InitGame
        Else
            Unload Me    '#2 終了
        End If
    End If
End Sub

#1 白黒それぞれのコマ数はlblShiroとlblKuroのCaptionプロパティに記憶されている。ただし、「白の駒:2」のようにコマ数の前に4文字不要な文字がある。ここでは、Mid(lblShiro.Caption, 5)として、5文字目以降を取り出している。

#2 終了はUnload命令だけである。終了確認などはForm_QueryUnloadプロシージャでプログラムする。
  プログラム終了時にはForm_QueryUnloadプロシージャが必ず呼び出される。


 64個すべて埋まると勝敗が判定される。ただし、途中で置く場所がなくなるとそれ以上は進めない。


 (3) 駒を打つ 前へ 目次へ 次へ 
Copyright © 2002 Hiroshi Masuda 

 

 

inserted by FC2 system