VB课程设计报告——扫雷游戏.docx
VB课程设计报告扫雷游戏 VB课程设计报告 -扫雷游戏马学清1008260132 指导老师:张小兵 一、题目介绍 在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用Turbo C编写了与它功能相仿的扫雷游戏,寓学于乐。 程序功能 二、程序功能 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的“开始”按钮可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时失败。 三、程序设计目的 1培养综合运用所学知识独立完成课题的能力。 2更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 3提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 4培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 5培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核 四、游戏规则 设计10×10格区域,单击鼠标后,在此格中显示的数字,则表示它周围就有几个空格内含有的地雷数,周围没有地雷的显示空白,则不能再单击了。如果是地雷,则游戏结束。如果判断是地雷,可以单击鼠标右键标出,显示红色,要取消红旗标志则再单击鼠标右键,当所有地雷都标出,每个空格都处理过,那么游戏就胜利结束。 五、程序源代码 '级别 Private Sub Form_Load() '默认初级 dengji = 1 Call nandu(dengji) End Sub Private Sub zidingyi_Click() '自定义类型 Load Form2 Form2.Show End Sub Private Sub again_Click() '重新开始 Call nandu(dengji) End Sub Private Sub chuji_Click() '1级 dengji = 1 Call nandu(dengji) End Sub Private Sub zhongji_Click() '2级 dengji = 2 Call nandu(dengji) End Sub Private Sub gaoji_Click() '3级 dengji = 3 Call nandu(dengji) End Sub Private Sub tuichu_Click() '退出 Unload Me End Sub Private Sub bang_Click() '显示英雄榜 Load Form3 Form3.Show End Sub Private Sub about_Click() '显示关于扫雷 Load Form4 Form4.Show End Sub Private Sub Timer1_Timer() '处理计时器If time = Pic1.Width / 2 - 12 And X = 4 And Y = Pic1.Width / 2 - 12 And X = 4 And Y = 0 And i = 0 And j = 0 And m = 0 And n = 0 And i = 0 And j = 0 And i = 0 And j = 0 And i = 0 And j < lie Then If fankai(i, j) = False Then If lei(i, j) 1 Then If panduan(i, j) = 0 Then Pic2.PaintPicture Clip3.GraphicCell(15), i * 16, j * 16 fankai(i, j) = True q = q + 1 For int1 = 1 To 20 ',防止直接全部翻开 Call fan(i, j) '递归:打开相邻无雷区域 Next int1 Else Pic2.PaintPicture Clip3.GraphicCell(15 - panduan(i, j), i * 16, j * 16 fankai(i, j) = True q = q + 1 End If End If End If End If Next Next End Sub '成功Private Sub shengli() Pic1.PaintPicture Clip2.GraphicCell(1), Pic1.Width / 2 - 12, 4 Pic2.Enabled = False Timer1.Enabled = False For i = 0 To hang - 1 For j = 0 To lie - 1 If lei(i, j) = 1 And jilu(i, j) 1 Then Pic2.PaintPicture Clip3.GraphicCell(5), i * 16, j * 16 End If Next Next If shijian(dengji) < yuanshijian(dengji) And dengji 4 Then mingzi(dengji) = InputBox("破纪录,输入姓名", "成功") Open App.Path & "mingzi" For Random As #1 Put 1, dengji + 3, mingzi(dengji) Put 1, dengji, shijian(dengji) Close 1 Else MsgBox "你赢了", "0", "成功" End If End Sub Private Sub Command1_Click() dingh = Val(Text1.Text) dingl = Val(Text1.Text) dinglei = Val(Text3.Text) If Text1 "" And Text2 "" And Text3 "" Then If dinglei < dingh * dingl Then Call Form1.nandu(4) Unload Me Else MsgBox "输入不合规范", 0, "请重新输入" End If Else MsgBox "输入不合规范", 0, "请重新输入" End If End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command1_Click() Unload Form3 End Sub Private Sub Form_Load() Dim lab1(1 To 3) As Integer Dim lab2(1 To 3) As String Dim w As Integer, i As Integer, r As Integer, e As Integer Open App.Path & "mingzi" For Random As 1 For i = 1 To 3 Get 1, i, lab1(i) Next Close 1 Open App.Path & "mingzi" For Random As 1 For j = 4 To 6 Get 1, j, lab2(j - 3) Next Close 1 For e = 1 To 3 bel4(e - 1).Caption = lab1(e) bel4(e + 2).Caption = lab2(e) Next For r = 1 To 3 yuanshijian(r) = lab1(r) Next End Sub 六、心得体会 课程设计是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的一个程序的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的基础知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们进行课程设计的目的所在。 虽然设计内容繁多,过程繁琐但我的收获却更加丰富。各种组件的运用,各种算法的应用,各种控件的利用我都是随着设计的不断深入而不断熟悉并逐步掌握的。和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识也对自己提出了新的要求。 提高是有限的但提高也是全面的,正是这一次设计让我积累了许多实际经验,也必然会让我在未来的工作学习中表现出更高的应变能力和理解力。 顺利如期的完成本次课程设计给了我很大的信心,但是也让多不足的地方,学习其实就是一个不断完善的过程,正视自己的不足之处,在以后的工作和学习中不断的弥补这些不足之处,在以后的生活中也要保持同样的态度,不断的完善自己。 七、总结