リバース 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 |