




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VS2008VB扫雷游戏扫雷游戏是一个经典游戏,无数人用各种编程语言写过它。现在用VS2008VB编写,效果很好。游戏主要用Label 控件写成,对它的一些属性都用编程的方法实现,如:字体的设置、边框线(样式)、背景颜色的设置、定位、图像的输出等。本游戏共用了84个Label控件。 图1、扫雷游戏程序运行中 图2、窗体设计页面 图3、打开非雷方块(片区域) 图4、游戏胜利结束 图5、胜利信息框下面是程序中用到的一些位图图源(位图绑定要以自己存放位置为准): 1、笑脸 2、苦脸 3、面图 4、地雷 5、底片附程序全部源码:Public Structure GAME Dim open_state As Integer Dim m_state As Integer Dim m_numbers As IntegerEnd StructurePublic Class Form1 Public SWIDTH As Integer = 285 Public SHEIGHT As Integer = 410 Public GRECT As Integer = 30 Dim Pos(0 To 8) As Integer Dim Game(0 To 8, 0 To 8) As GAME Dim g_on As Integer = 0 Dim r As Integer, c As Integer, open_m As Integer Private Sub setmine() Dim i As Integer, tr As Integer, tc As Integer, rt As Integer Randomize() For i = 1 To 10 rt = 1 Do While rt = 1 tr = Int(Rnd() * 8) + 1 tc = Int(Rnd() * 8) + 1 If Game(tr, tc).m_state = 0 Then Game(tr, tc).m_state = 1 rt = 0 End If Loop Next End Sub Private Sub getminenumbers() Dim i As Integer, j As Integer, numbers As Integer For i = 0 To 8 For j = 0 To 8 numbers = 0 If Game(i, j).m_state = 0 Then If i 0 Then If Game(i - 1, j).m_state = 1 Then numbers = numbers + 1 End If If j 0 Then If Game(i - 1, j - 1).m_state = 1 Then numbers = numbers + 1 End If End If If j 8 Then If Game(i - 1, j + 1).m_state = 1 Then numbers = numbers + 1 End If End If End If If i 0 Then If Game(i + 1, j - 1).m_state = 1 Then numbers = numbers + 1 End If End If If j 0 Then If Game(i, j - 1).m_state = 1 Then numbers = numbers + 1 End If End If If j 0 Then rt = 1 End If End If retselect = rt End Function Private Sub mselect(ByVal mr As Integer, ByVal mc As Integer) Dim t1 As Integer If Game(mr, mc).m_numbers 0 Then Exit Sub End If t1 = mr Do While t1 0 t1 = t1 - 1 If retselect(t1, mc) = 1 Then Exit Do Else selectloop(t1, mc) End If Loop t1 = mr Do While t1 0 And j 0 Then If Game(i - 1, j - 1).m_state = 0 And Game(i - 1, j - 1).open_state = 0 Then retselect(i - 1, j - 1) mselect(i - 1, j - 1) End If End If If i 0 And j 8 Then If Game(i - 1, j + 1).m_state = 0 And Game(i - 1, j + 1).open_state = 0 Then retselect(i - 1, j + 1) mselect(i - 1, j + 1) End If End If If i 0 Then If Game(i + 1, j - 1).m_state = 0 And Game(i + 1, j - 1).open_state = 0 Then retselect(i + 1, j - 1) mselect(i + 1, j - 1) End If End If If i 8 And j 0 t1 = t1 - 1 If retselect(mr, t1) = 1 Then Exit Do Else selectloop(mr, t1) End If Loop t1 = mc Do While t1 0 Then tlabel.Text = Game(mr, mc).m_numbers Dim font As New Font(宋体, 16, FontStyle.Bold) tlabel.Font = font tlabel.TextAlign = ContentAlignment.MiddleCenter If Game(mr, mc).m_numbers = 1 Then tlabel.ForeColor = Color.FromArgb(255, 0, 0, 130) End If If Game(mr, mc).m_numbers = 2 Then tlabel.ForeColor = Color.FromArgb(255, 0, 150, 0) End If If Game(mr, mc).m_numbers = 3 Then tlabel.ForeColor = Color.FromArgb(255, 150, 130, 0) End If If Game(mr, mc).m_numbers 3 Then tlabel.ForeColor = Color.FromArgb(255, 130, 0, 130) End If End If Dim image As New Bitmap(f:vb08-001扫雷游戏mIg.bmp) tlabel.Image = image ElseIf Game(mr, mc).m_state = 1 Then tlabel.BackColor = Color.FromArgb(255, 190, 0, 0) Dim itimage As New Bitmap(f:vb08-001扫雷游戏mine.bmp) tlabel.Image = itimage Dim fim As New Bitmap(f:vb08-001扫雷游戏face3.bmp) Label83.Image = fim open_m = 1 r = mr c = mc End If End If If open_m = 0 Then mselect(mr, mc) If win() = 1 Then MsgBox(游戏胜利结束!) open_m = 1 End If End If End Sub Private Sub initRect() Dim i As Integer, j As Integer For i = 0 To 8 Pos(i) = i * GRECT Next For i = 0 To 8 For j = 0 To 8 Game(i, j).open_state = 0 Game(i, j).m_numbers = 0 Game(i, j).m_state = 0 Next Next mylabel(Label1, Pos(0), Pos(0) + 100) mylabel(Label2, Pos(1), Pos(0) + 100) mylabel(Label3, Pos(2), Pos(0) + 100) mylabel(Label4, Pos(3), Pos(0) + 100) mylabel(Label5, Pos(4), Pos(0) + 100) mylabel(Label6, Pos(5), Pos(0) + 100) mylabel(Label7, Pos(6), Pos(0) + 100) mylabel(Label8, Pos(7), Pos(0) + 100) mylabel(Label9, Pos(8), Pos(0) + 100) mylabel(Label10, Pos(0), Pos(1) + 100) mylabel(Label11, Pos(1), Pos(1) + 100) mylabel(Label12, Pos(2), Pos(1) + 100) mylabel(Label13, Pos(3), Pos(1) + 100) mylabel(Label14, Pos(4), Pos(1) + 100) mylabel(Label15, Pos(5), Pos(1) + 100) mylabel(Label16, Pos(6), Pos(1) + 100) mylabel(Label17
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国传媒大学《国际市场营销A》2023-2024学年第二学期期末试卷
- 《商品DEF操作指南》课件
- 武夷山职业学院《影视非线性编辑》2023-2024学年第二学期期末试卷
- 江西信息应用职业技术学院《GPS测量原理及应用实验》2023-2024学年第二学期期末试卷
- 鱼塘堤坝规划方案范本
- 荆门职业学院《中国古代文学作品选(二)》2023-2024学年第一学期期末试卷
- 城市钻孔桩施工方案
- 2025合同样本个人借款合同范本管理资料
- 电梯门板保养方案范本
- 2025至2031年中国全自动门行业投资前景及策略咨询研究报告
- TCCIAT 0043-2022 建筑工程渗漏治理技术规程
- 西藏林芝嘉园小区项目可研(可研发)
- GB∕T 14527-2021 复合阻尼隔振器和复合阻尼器
- 航运系统组成和航运企业组织结构及特点
- 丧假证明模板
- 首届上海科技期刊编辑技能大赛试题
- 隧道二衬、仰拱施工方案
- 按期取得毕业证和学位证承诺书
- Q∕GDW 12106.4-2021 物联管理平台技术和功能规范 第4部分:边缘物联代理与物联管理平台交互协议规范
- 第五章 学校教育的主要活动形式:课堂教学
- 大会—冠脉微循环障碍
评论
0/150
提交评论