VB扫雷小游戏
一.编程目的
二.编程思路
1.新建 command_up和label_down控件
2.用load加载控件
3.根据雷区的X、Y、以及难度进行随机布雷。
4.统计每一个label周围雷的数量并作为label的caption。
5.在单击command的时候显示label
6.在右击command的时候进行标记
7.在label上左右键同时按下的时候检查已标记雷的数量与label显示的数量是否一致。
三.界面设计
四.代码设计
Dim Start_Time, End_Time
Dim Area_X%, Area_Y%, Area%, Area_List()
Dim Current_Mine%
Dim Difficulty#
Dim Continue_Flag%, Success_Flag%, LeftAndRight_Flag%
Dim Near_List
Dim Mine_Count
Private Sub Command_End_Click()
    End
End Sub
Private Sub Delete_Item(List(), Index As Integer)
    Dim i%
    For i = LBound(List) + Index - 1 To UBound(List) - 1
        List(i) = List(i + 1)
    Next i
    '防止100%的困难度
    If UBound(List) > LBound(List) Then ReDim Preserve List(LBound(List) To UBound(List) - 1)
End Sub
Private Sub Command_retry_Click()
    '卸载
    For i = 1 To Area
        Unload Label_Down(i)
        Unload Command_Up(i)
    Next i
    Command_Start.Caption = "开始游戏"
    Call Command_Start_Click
End Sub
Private Sub Command_Up_Click(Index As Integer)
    Success_Flag = 1
    If Continue_Flag = 1 Then
        If Timer1.Enabled = False Then Call Command_Start_Click
        If Label_Down(Index).Caption = "X" Then
            Success_Flag = 0
            Continue_Flag = 0
            For i = 1 To Area
                If Command_Up(i).Visible = True And Command_Up(i).Caption = "X" And Label_Down(i).BackColor = vbRed Then
                    '标记雷正确
                    Command_Up(i).Picture = LoadPicture(App.Path + "\pictures\mine_correct.gif", , , Command_Up(i).Width, Command_Up(i).Height)
                    Command_Up(i).Visible = True
                    Label_Down(i).Visible = True
                ElseIf Command_Up(i).Visible = True And Command_Up(i).Caption = "X" And Label_Down(i).BackColor = vbGreen Then
                    '标记雷错误
                    Command_Up(i).Picture = LoadPicture(App.Path + "\pictures\mine_wrong.gif", , , Command_Up(i).Width, Command_Up(i).Height)
                    Command_Up(i).Visible = True
                    Label_Down(i).Visible = True
                Else
                    Command_Up(i).Visible = False
                    Label_Down(i).Visible = True
                End If
            Next i
            Timer1.Enabled = False
            temp = MsgBox("Game Over !", vbOKOnly, "游戏结束")
        ElseIf Val(Label_Down(Index).Caption) > 0 Then
            Command_Up(Index).Visible = False
            Label_Down(Index).Visible = True
        Else
            '如果等于0的话应该将周边的清零
            Command_Up(Index).Visible = False
            Label_Down(Index).Visible = True
            j = Index
            For i = 1 To 8
                '判断控件是否存在
                If j + Near_List(i) > 0 And j + Near_List(i) <= Area Then
                    '判断是否相邻
                    If Abs(Label_Down(j + Near_List(i)).Left - Label_Down(j).Left) <= Label_Down(j).Width And Abs(Label_Down(j + Near_List(i)).Top - Label_Down(j).Top) <= Label_Down(j).Height Then
                        '判断是否有雷
                        If Label_Down(j + Near_List(i)).BackColor = vbGreen And Command_Up(j + Near_List(i)).Visible = True Then
简单的vb程序代码                                Call Command_Up_Click(j + Near_List(i)) '注意此处循环调用的时候一定要避免陷入死循环
                        End If
                    End If
                End If
            Next i
        End If
        '检查是否游戏成功
        For i = 1 To Area
            If Command_Up(i).Visible = True And Label_Down(i).Caption <> "X" Then
                Success_Flag = 0
                Exit For
            End If
        Next i
        If Success_Flag = 1 Then
            If Continue_Flag = 1 Then
            Timer1.Enabled = False
            For i = 1 To Area
                If Command_Up(i).Visible = True And Command_Up(i).Caption = "X" And Label_Down(i).BackColor = vbRed Then
                    '标记雷正确
                    Command_Up(i).Picture = LoadPicture(App.Path + "\pictures\mine_correct.gif", , , Command_Up(i).Width, Command_Up(i).Height)
                    Command_Up(i).Visible = True
                    Label_Down(i).Visible = True
                ElseIf Command_Up(i).Visible = True And Command_Up(i).Caption = "X" And Label_Down(i).BackColor = vbGreen Then
                    '标记雷错误
                    Command_Up(i).Picture = LoadPicture(App.Path + "\pictures\mine_wrong.gif", , , Command_Up(i).Width, Command_Up(i).Height)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。