VB扫雷游戏的设计与开发

 word完整版可点击如下下载>>>>>>>>

VB扫雷游戏的设计与开发(论文+答辩PPT+系统).rar-VB文档类资源-CSDN下载1、资源内容:毕业设计lun-wen;ppt等2、学习目标:快速完成相关题目设计;3、应用场景:更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/u013253075/79979828?spm=1001.2014.3001.5503

目  录

1   引言. 1

1.1课题背景及意义. 1

1.2开发工具的选用及介绍. 1

2   游戏的总体分析与设计. 3

2.1设计构想. 3

2.2流程规划. 4

2.3画面规划. 5

3   游戏的详细设计. 6

3.1游戏初始化. 6

3.2雷区的布置. 9

3.3游戏中主要模块的介绍与使用. 10

3.3.1鼠标事件. 10

3.3.2地雷及雷区表面探测情况. 12

3.3.3清除未靠近地雷的方块. 12

3.3.4游戏难度的选择. 14

3.4游戏的判断. 14

3.4.1游戏成功完成. 14

3.4.2游戏失败. 14

4   游戏测试结果. 15

结    论. 15

参考文献. 16

致    谢. 17

声    明. 18

扫雷游戏的设计与开发

本论文研究的是以Visual Basic 6.0为开发环境,设计并开发一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了制作游戏的整体思路及整个游戏设计的流程规划,然后介绍了雷区的布置及地雷随机产生的实现方法;重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解使用者的意图,进而做出相对应的动作,而清除未靠近地雷区方块由于引进了“递归”这个概念而使其简单化。

本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待以后完善。

关键词扫雷;Visual Basic 6.0;事件;递归

 

The design and development of mine clearance game

Abstract

What my thesis research for is basic on the develop environment of  Visual Basic 6.0 , design and develop a mine clearance game,its function is similar to the mine clearance games of the Windows Operating System .The thesis has introduced the layout of mined areas and the method of how to create the mines at random.It's mainly through the use of vairies of components in Visual Basic 6.0 and the combination of some simple calculations ;the thesis lays emphasis on introducing the processing of each event in the game .Among these events ,the mouse event and the event of clearance of the area which isn’t close to the mine field are much more important.The theory of mouse event is that the intention of user is learned by the information sent out by the mouse and then the program runs according to the information .The other event is simplified by the introduction of the concept of recursion.

This design just completed the basic function of mine clearance game.The details still need to be perfect.

Key words: Mine clearance, Visual Basic 6.0, Affairs, Recursion

  1. 引言
    1. 课题背景及意义

在计算机逐步渗入社会生活各个层面的今天,计算机............

扫雷游戏是Windows操作系统自带的一款小游戏..........

通过研究Windows操作系统自带的扫雷游戏..........

第一个是初始化问题,包括随机产生本局游戏中雷的总...........

第二就是对鼠标事件的处理问题,既在游戏过程中对鼠...........

经过四年的大学学习,我对理论知识已经有了一定的了解与认知,本次的毕业.............

    1.  开发工具的选用及介绍

Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多..............

...................VB的出现当做是软件开发史上的一个具有划时代意义的事件。其实,以我们现在的目光来看,VB1.0的功能实在是太弱了;(不过最近VB6.0, VB.NET的功能相当大!)。但在当时,它是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出.............

V..................

一个典型的VB进程VB的中心思想就是要便于程序员使用,无论是新手或者专...............

窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮]]。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加..............

 VB使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写............

在讨论Visual Basic时,经常可以听到以下这些术语,因此对这...............

控件——简单的说,控件就是构成或者说建造Visual Basic应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控................

........................

....................

  1. 游戏的总体分析与设计
    1. 设计构想

相信大多数使用Windows操作系统的使用者,对这款游戏都不陌生。这款游戏不止操作简单,规则也不难,再加上游戏速度的控制机制得宜,让整个游戏在操作过程中充满了快乐与紧张的气氛。除了游乐当中能带给使用者快乐之外,游戏的设计内容无...............

在设计之前,我们先来了解这款游戏的规则。

在不掀开任何藏有地雷的方块情况下,以最快的速度找出所有的地雷。如果在掀开方块的过程中,不小心翻开(踩到)藏有地雷的方块,则宣..........

游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块,当鼠标指针对准未翻开的方块按下右键时即表示标示或疑............

当按下的方块不是地雷,且周边八个方块也都没有地雷时,方块会以被...........

2.2 流程规划

流程规划大致上可以分为三个部分,分别为:画面初始、游戏者.............

画面初始时,以游戏者最后一次设定的地雷区大小为范围画出地雷区,但此时并未产生地雷。当游戏者按下第一个方块时产生地雷资料并启动定时器,为何...............

流程规划如图1所示:

图1整体流程规划图

2.3画面规划

画面规划如图2所示:

图2规划样图

说明如下:

①:游戏窗口(Form)。为了避免因改变窗口大小而造成画面呈现不美观,在这里将BorderStyle属性设定为3(双线固定对话框),即无法以窗口边缘进行窗口大小调整。

②:地雷数显示区(PictureBox)。

③:游戏状态(Image)。

④:游戏时间显示区(PictureBox)。

⑤:计数及状态区(Pic..............

⑥:地图区图样(Im...........

⑦:地雷区(Pic......................

⑧:存储图片的组件,包括游戏状态图片、地....................

⑨:秒数控制(Timer)。

  1. 游戏的详细设计
    1. 游戏初始化

当玩家开始游戏时,游戏画面如图3所示:

图3游戏初始画面

我们可以清楚的看到,游戏界面主要分为两个主要部分:1. 计数及状态区;2.地雷区。

首先我利用PictureBox组件,PictureBox为容器类型的组件,因此可以加.............

(1)容器特性:只要容器本身显示的行为改变,在容器内的组件也会跟着改变。当游戏初始时,地雷区的显示组件会循环执行,逐一布置在画面上,但由于执行循环.................

(2)立体框线:通过组件本身立体框线的属性设定,可以为游戏画面的.............

然后再利用ImageList组件来存储游戏中将要使用的图片,我们可以将组件布置...............

图4

通过InsertPicture和RemovePicture按钮即可编...............

利用ImageList集合对象的Picture方法,即可将ImageList组件内的图片指定给图.............

Set 图形组件. Picture=ImageList. ImageList(图片索引). Picture

因为一个ImageList组件内必须存储大小相同的图片,所以在游戏中显示的图片共分为三个部分:1.数字计数图形;2.游戏状态图形;3.地雷区表示图形。

所以我们使用了三个ImageList组件来............

接着便是对地雷区的初始化,这里我们利用Load及UnLoad指令,动态新增及删除组件。在游戏的地雷区,我们依照游戏者自定义的地图类型,来布置未.............

‘加载表示地图资料的图片

For  y = 0 To 20  ‘地雷区高

For  x = 0 To 30  ‘地雷区宽

Load  表示方块组件(index)

 ‘设定组.............

经过双循环的运算,程序就会产生20×30=600个组件,试想如果..............

加载组件后必须将组件做适当的布置,我们可以通过Image组.................

组件.Move X坐标,[Y坐...............

...................

再配合双循环的变量值,可以控制组件布置...............

For  x = 0 To 30  ‘地................

Load  表示方块.................

 ‘设定组件位置……

         组件(index).Move x *组...............

N.......................

若将内循环改为y值,同样的Move指令,组件的布置方向将由上而下再由左至右。布置方向的不同,会关联到组件内含的索引值不同,相对在程序................

这样,游戏界面的初始化工作就基本.............

3.2雷区的布置

当游戏界面初始化完成后,这时在地雷区中并未产生地雷,只有当玩家在地雷区中第一次点下左键后,才会在地雷区中随机的布置当前游戏难度下应该产生的..............

'判断地雷区是否处于可动作状态

    If isDie = False And isFinal = Fals................

       

        '判断为左键且该方块为...................

        If Button = 1 And mapFace..................

            '判断游戏是否等待启动

            If isStart = False Then

                cMINE_NU...............................

               

                '布置地雷

                Do While cMINE_NUM > 0

                    rX = Rnd() *..........................

                    If mapArr(rX, rY) <> 9 And _

                       Not (rX = xxx And rY = yyy) Then

                        cMINE_NUM = cMINE_NUM - 1

                     .........................................

3.3游戏中主要模块的介绍与使用

3.3.1鼠标事件

在游戏过程中,我们利用鼠标所发出的信息了解游戏者的....................

在MouseDown与MouseUp事件中,可以捕捉鼠标所按下...................

组件名称_MouseDown(index As Integer, _Button As..................

组件名称_MouseUp(index As Integer, _Button As .....................

在参数列中,Button参数值表示鼠标上的按........................

.......................

在本游戏中,我们利用右键的MouseDown事件来标示“已标示”方块,利用左键的MouseDown事件,来标示游戏者准备按下的方块,再利用左键的......................

在窗口的软件中,鼠标的应用是不可或缺的,但鼠标固然好用,如果程序设计不当,也可能造成使用者的不便。通常鼠标在软件的应用上经常使用Mo................

游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻................

If Button = 1 Then '鼠标左键

            If mapFaceArr(xxx, yyy) = 1 Then

                Call setMineImage(index, 10)

                Set iState.Pi...........................

当鼠标指针对准未翻开的方块按下右键时即表示标示或疑示地雷,反复按下右键则方块会以“未标示”→“标示”→“疑似”三者关系不断循环:

If Button = 2 Then '鼠标右键

            If mapFaceArr(xxx, yyy) = 1 Then '未探测

                mapFaceArr(xxx, yyy) = 2

                MINE_NUM_LABEL ...................................

3.3.2地雷及雷区表面探测情况

在游戏设计上,我利用了两个二维数组分别记录地雷的分布情况及雷区表..................

图5标示地雷分布情况

图6标示地雷探测情况

因为两个数组维数皆为2,所以我们通过双循环做数据的对比工作。另外,当游戏玩家按下非地雷的方块时,程序必须自动将周边非地雷的方块翻开,这个动作我们也................

3.3.3清除未靠近地雷的方块

这里先引入一个“递归”的概念,“递归”(Recursion)简单的说,就是一个程序能被自己所定义的语句调用。递归在程序设计上是一种重要的数据结构形态,通过递归程序的...............

在游戏过程中,当游戏者按下非地雷方块时,方块会沿................

程序的执行方面必须判断:以按下方块为中心,检查周围八个方块是否为非地雷方块,若其中有一个方块是非地雷方块时,则又以................

前面已经提到,递归必须设计终止的条件判断,在本游戏的....................

递归其实也不是万能的,以本游戏做测试,当地雷区范围越大,且地雷数目不多时(一翻开非地雷方块,几乎全部方块都会翻开),执行递归就会变的...................

代码部分如下所示:

Private Sub doClear(ByVal x As Integer, _

                                 ByVal y As Integer, _

                                 ByVal index As Integer)

   

    MINE_NUM_CLEAR = MINE_NUM_CLEAR + 1

    For xx = x - 1 To x + 1

        For yy = y - 1 To y + 1

            If xx >= 0 And xx <= MAP_X And _

               yy >= 0 And yy <=........................................

3.3.4游戏难度的选择

这里我设置了“初级”,“中级”,“高级”以及“自定义”四个不同的难度级别,“初级”,“中级”,“高级”中的雷区大小和地雷总数是已经设计好了的,如果玩家想要自己设置这些参数,可单击“游戏”→“自定义”,然后在“设置”中输入行数,列数及地........................

3.4游戏的判断

3.4.1游戏成功完成

当在规定的时间内将所有的雷都正确的标示出来,游戏就会有一个......................

还有一种情况便是当只剩下地雷未探测的时候,及雷区方块......................

3.4.2游戏失败

当鼠标左键按下的方块为地雷方块事,地雷将..................

当在设定时间内未探测完所有的地雷,地雷也将会引爆,对于这第二种行为,我们可以通过Timer组件来加以控制。利用Timer组件在固定时间.....................

'定时器

Private Sub Timer1_Timer()

    TIME_COUNTER = TIME_COUNTER + 1

    '时间计数显示

    Call setNowTimer

    '设定状态图示

    If TIME_COUNTE.......................

  1. 游戏测试结果

在程序代码基本完成后,经过不断的调试与修改,最后测试本次所设计的扫雷游戏能够正常运行,在基本功能与画面上与Windows自带的扫雷游戏没..........................


需要详细内容的在下面链接下载

VB扫雷游戏的设计与开发(论文+答辩PPT+系统).rar-VB文档类资源-CSDN下载1、资源内容:毕业设计lun-wen;ppt等2、学习目标:快速完成相关题目设计;3、应用场景:更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/u013253075/79979828?spm=1001.2014.3001.5503

  

        最后说一下,如果大家对硬件和编程感兴趣,可以点击牛客网这个连接看看,是个不错的学习网站,是学长推荐给我的,因为之前找工作的时候没有太多经验,也不知道怎么准备,去哪里搜资源,走了很多弯路,所以推荐给大家,当初在上面大量刷题还看了好多面试经验等,反正上面有很多课程+刷题+面经+求职+讨论区等资源,关键里面的资源全部公开免费,不用花钱,希望能帮助家!    

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值