VB课程设计报告 - 扫雷游戏
更新时间:2023-12-20 18:19:01 阅读量: 教育文库 文档下载
- 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() dengji = 1
Call nandu(dengji) End Sub
Private Sub zhongji_Click() dengji = 2
Call nandu(dengji) End Sub
Private Sub gaoji_Click() 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 < 999 Then
'1级 '2级 '3级 '退出 '显示英雄榜 '显示关于扫雷 '处理计时器
time = time + 1
stime1 = Format(time, \
heng = Pic1.Width - (4 + 13) - 13 - 13 '时间处理 For i = 1 To 3
stime2 = Mid(stime1, i, 1)
Pic1.PaintPicture Clip1.GraphicCell(11 - Val(stime2)), heng, 4 heng = heng + 13 Next
shijian(dengji) = time End If
If time = 999 Then '游戏失败 MsgBox \你输了\失败\End If
End Sub
Public Sub nandu(dengji) '调用主程序 Dim s As Integer
Open App.Path & \For s = 1 To 3
Get 1, s, yuanshijian(s) Next Close 1
Pic1.Picture = LoadPicture() '清空计时器和记雷显示器 Pic2.Picture = LoadPicture() Pic2.Enabled = True Timer1.Enabled = False q = 0
mousedown = False
If dengji = 1 Then '判断等级 hang = 9: lie = 9: chulei = 9 ElseIf dengji = 2 Then
hang = 16: lie = 16: chulei = 39 ElseIf dengji = 3 Then
hang = 30: lie = 30: chulie = 99 ElseIf dengji = 4 Then
hang = dingh: lie = dingl: chulei = dinglei
End If
ReDim fankai(hang - 1, lie - 1) '重定义行列数 ReDim lei(hang - 1, lie - 1) ReDim jilu(hang - 1, lie - 1) With Pic2
.Height = 16 * hang + 3 .Width = 16 * lie + 4 .Left = 1 * 8 .Top = 6 * 8 End With With Pic1
.Height = 8 * 4
.Width = 16 * lie + 4 .Left = 1 * 8 .Top = 1 * 8 End With
Form1.Width = 30 * Screen.TwipsPerPixelX + 16 * Screen.TwipsPerPixelX * lie '确定窗体高宽度
Form1.Height = 100 * Screen.TwipsPerPixelY + 13 * Screen.TwipsPerPixelY + 16 * Screen.TwipsPerPixelY * hang + 100
For i = 0 To lie - 1 '开始时雷区 For j = 0 To hang - 1
Pic2.PaintPicture Clip3.GraphicCell(0), i * 16, j * 16 Next Next
Do While k < chulei '布雷 m = Int(Rnd * hang) n = Int(Rnd * lie) If lei(m, n) <> 1 Then lei(m, n) = 1 k = k + 1 End If Loop
Pic1.PaintPicture Clip1.GraphicCell(11 - k \\ 100), 4, 4 '雷数 Pic1.PaintPicture Clip1.GraphicCell(11 - (k Mod 100) \\ 10), 4 + 13, 4 Pic1.PaintPicture Clip1.GraphicCell(11 - (k Mod 10)), 4 + 26, 4
Pic1.PaintPicture Clip1.GraphicCell(11), Pic1.Width - (4 + 13), 4 '时间
Pic1.PaintPicture Clip1.GraphicCell(11), Pic1.Width - (4 + 26), 4 Pic1.PaintPicture Clip1.GraphicCell(11), Pic1.Width - (4 + 13 * 3), 4 Pic1.PaintPicture Clip1.GraphicCell(11), 4, 4
Pic1.PaintPicture Clip2.GraphicCell(4), Pic1.Width / 2 - 12, 4 '显示笑脸 End Sub
'图片框1的MouseDown事件
Private Sub Pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X >= Pic1.Width / 2 - 12 And X <= Pic1.Width / 2 + 12 And Y >= 4 And Y <= 24 + 4 Then Pic1.PaintPicture Clip2.GraphicCell(0), Pic1.Width / 2 - 12, 4 End If
End Sub
'图片框1的MouseUp事件
Private Sub Pic1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X >= Pic1.Width / 2 - 12 And X <= Pic1.Width / 2 + 12 And Y >= 4 And Y <= 24 + 4 Then time = 0
Call nandu(dengji) End If
End Sub
'图片框的MouseDown事件
Private Sub Pic2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Static intq As Integer k = chulei
mouseup = False i = X \\ 16: j = Y \\ 16
If fankai(i, j) = False Then
If Button = 1 Then '左键 mousedown = True
Pic1.PaintPicture Clip2.GraphicCell(3), Pic1.Width / 2 - 12, 4 If jilu(i, j) <> 1 And jilu(i, j) <> -1 Then
Pic2.PaintPicture Clip3.GraphicCell(15), i * 16, j * 16 ElseIf b = -1 Then
Pic2.PaintPicture Clip3.GraphicCell(6), i * 16, j * 16
正在阅读:
VB课程设计报告 - 扫雷游戏12-20
2015.6.3卫生检查结果08-19
DSP实验指导书 - 图文01-02
自考04729 大学语文考试的题目为基础的分类课后练习12-05
爱笑会议室 抢饭 剧本06-07
高中英语·新课标 单词记忆卡book109-14
(B)2汉译英练习及参考译文(1)10-16
黄河故道沿线城市文化遗产汇总06-16
星海湾壹号产品楼书0616版04-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 扫雷
- 课程
- 报告
- 设计
- 游戏