收藏 分享(赏)

扫雷游戏设计代码(VB完善版).doc

上传人:tangtianxu1 文档编号:3011071 上传时间:2018-10-01 格式:DOC 页数:9 大小:721KB
下载 相关 举报
扫雷游戏设计代码(VB完善版).doc_第1页
第1页 / 共9页
扫雷游戏设计代码(VB完善版).doc_第2页
第2页 / 共9页
扫雷游戏设计代码(VB完善版).doc_第3页
第3页 / 共9页
扫雷游戏设计代码(VB完善版).doc_第4页
第4页 / 共9页
扫雷游戏设计代码(VB完善版).doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、扫雷游戏 VB 设计实现最终界面如下:显然只需完成三个窗体的设计即可,具体设计界面和代码如下:1、主窗体(form10)设计界面:主窗体(form10)的代码:Dim d(11, 11) As Integer Dim k As IntegerDim v(100) As Integer 定义全局变量Private Sub Command1_Click(Index As Integer)Timer1.Enabled = True 当点击任意一个命令按钮时(即开始游戏) ,则启动计时器i = Index 10 + 1j = Index Mod 10 + 1 将二维数组的元素与命令按钮一一对应If d

2、(i, j) = 1 Then 判断是否点到地雷Timer1.Enabled = False 关闭计时器,游戏结束For i = 1 To 10For j = 1 To 10n = 10 * (i - 1)m = j - 1If d(i, j) = 1 ThenCommand1.Item(m + n).Picture = LoadPicture(App.Path & “2.jpg“) 在按钮上显示地雷图片End IfForm1.Show 弹出子窗体 1(判断输赢)Next jNext iElseIf v(Index) = Index + 1 Then 判断是否插上红旗或是问号图片Command

3、1.Item(Index).Picture = LoadPicture() 清除图片Command1.Item(Index).Caption = f(i, j) 调用函数,显示周围地雷数Command1.Item(Index).Enabled = False 将按钮设为不可用Label7.Caption = Val(Label7.Caption) + 1v(Index) = 0End Ifh = s(i, j) 调用函数,显示周围的情况(边界)For Y = 0 To 99If v(Y) = Y + 1 ThenCommand1.Item(Y).Enabled = True 如果是按钮插上了红

4、旗则将按钮设置为可用End IfNext YEnd IfFor k = 0 To 99If Command1.Item(k).Enabled = False Thenp = p + 1 统计扫过的按钮个数If p = 90 ThenFor Y = 0 To 100v(Y) = 0Next Y 将数组 v 的元素重新置 0(此步目的为实现重玩而设)Form2.Show 如果等于 90 个则结束游戏,弹出子窗体2(赢了)End IfEnd IfNext kEnd SubPrivate Sub Command1_MouseUp(Index As Integer, Button As Integer,

5、 Shift As Integer, X As Single, Y As Single)If Button = 2 Then 右击鼠标If v(Index) 10Randomizei = Int(10 * Rnd + 1)j = Int(10 * Rnd + 1)If d(i, j) = 0 Then d(i, j) = 1: n = n + d(i, j) 产生十个随机数,即相当于十个地雷LoopForm10.Label7.Caption = 10Form10.Label2.Caption = 0Form10.Label3.Caption = 0End SubFunction f(i, j)

6、 定义一个函数求一个区域周围地雷的个数f = f + d(i - 1, j - 1) + d(i - 1, j) + d(i - 1, j + 1) + d(i, j - 1)f = f + d(i, j + 1) + d(i + 1, j - 1) + d(i + 1, j) + d(i + 1, j + 1)End FunctionFunction s(i, j) 定义一个函数显示点击区域周围的情况(即边界)For Y = 0 To 100If v(Y) = Y + 1 ThenCommand1.Item(Y).Enabled = False 如插上了红旗,则将按钮先设为不可用End If

7、Next YIf f(i, j) 0 And b 11 And b 0 Thenn = 10 * (a - 1)m = b - 1If Command1.Item(n + m).Enabled = True ThenCommand1.Item(m + n).Picture = LoadPicture()Command1.Item(n + m).Caption = f(a, b)Command1.Item(n + m).Enabled = False 清除图片,显示地雷数,设置按钮不可用h = s(a, b) 调用函数本身,即实现递归 End IfEnd IfNext bNext aEnd If

8、End FunctionPrivate Sub Timer1_Timer() 设计一个计时器Label2.Caption = Val(Label2.Caption) + 1Label3.Caption = Val(Label2.Caption) 60 + Val(Label3.Caption)Label2.Caption = Val(Label2.Caption) Mod 60End Sub2、子窗体一(form1)界面如下:子窗体一(form1)的代码:Private Sub Command1_Click()Unload Form10 Unload form1 Form10.ShowEnd

9、SubPrivate Sub Command2_Click()Unload Form10Unload form1End SubPrivate Sub Command3_Click()For i = 0 To 99Form10.Command1.Item(i).Picture = LoadPicture()Form10.Command1.Item(i).Caption = “Form10.Command1.Item(i).Enabled = TrueNext iForm10.Label7.Caption = 10Form10.Label2.Caption = 0Form10.Label3.Cap

10、tion = 0Unload form1End Sub3、子窗体(form2)界面如下:子窗体二(form2)的代码:Private Sub Command1_Click()Unload Form10Form10.ShowUnload form2End SubPrivate Sub Command2_Click()Unload Form10Unload form2End SubPrivate Sub Command3_Click()For i = 0 To 99Form10.Command1.Item(i).Picture = LoadPicture()Form10.Command1.Item(i).Caption = “Form10.Command1.Item(i).Enabled = TrueNext iUnload form2Form10.Label7.Caption = 10Form10.Label2.Caption = 0Form10.Label3.Caption = 0End Sub注释:共三个窗体(这里是 form10、form1、form2 ) 、三个标签(这里是label2、label3 、label7)设计时,根据具体的情况对应修改即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报