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小时内删除。
发表评论