毕业论文-基于vb的扫雷游戏设计与实现_第1页
毕业论文-基于vb的扫雷游戏设计与实现_第2页
毕业论文-基于vb的扫雷游戏设计与实现_第3页
毕业论文-基于vb的扫雷游戏设计与实现_第4页
毕业论文-基于vb的扫雷游戏设计与实现_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号南京航空航天大学毕业论文题目基于VB的扫雷游戏设计与实现学生姓名学号学院专业班级指导教师基于VB的扫雷游戏设计与实现摘要当前,随着计算机应用及网络的的深入普及,越来越多的政府部门、厂矿企业、学校等单位及个人都拥有了自己的计算机,计算机不仅在工作方面给人们以很大的帮助,还给人们带来了多种的娱乐享受,操作系统自带的游戏也起到了很大的娱乐作用,而且它的开发成本小,所以小游戏的开发在这种形势下就应运而生,它的开发主要采用VC,VB等编程语言本设计采用VB编写,VB一直以来被认为有以下优缺点优点是上手快、开发效率高缺点是能力有限,运行效率低这正是有些软件把VB做为首选语言,而有些软件肯定不会用VB做的原因而很多VC,DELPHI的程序员都认为VB里搞开发不自由的确,简单和功能强大这两者本身就是一对矛盾扫雷游戏是操作系统中的一个主要的益智类游戏用户对鼠标进行操作,单击鼠标左键为踩雷,单击鼠标左键在标记,疑问,空白三种状态中循环,同时单击鼠标左右键为踩单击点在内的周围九格内所有没有标记为已标记的所有格子同时程序从你单击第一次时开始计时,到胜利或引爆地雷终结结束后单击开始按钮重新开始游戏这款游戏实现了开发人类大脑思维的目的关键词VB,扫雷游戏REALIZESASIMPLEGAMEWITHVBABSTRACTFRONT,ISAPPLIEDALONGWITHTHECALCULATORANDNETWORKOFOFTHETHOROUGHUNIVERSALITY,MOREANDMOREGOVERNMENTSSECTION,FACTORYMINERALBUSINESSENTERPRISE,SCHOOLETCUNITANDINDIVIDUALALLOWNEDOWNCALCULATOR,THECALCULATORISNOTONLYTOGIVEPEOPLEINTHEASPECTSOFWORKINGWITHTHEVERYBIGHELP,RETURNINGTOPEOPLEBROUGHTVARIOUSAMUSEMENTSENJOYS,THEOPERATESYSTEMALSOROSEFROMTHEGAMETHATTAKEVERYBIGAMUSEMENTFUNCTION,ANDITOFTHECOSTOFDEVELOPMENTISSMALL,SOTHEDEVELOPMENTOFTHEGETAWAYDRAMAUNDERTHISKINDOFSITUATIONEMERGEWITHTHETIDEOFTHETIMES,ITOFMAINADOPTIONINDEVELOPMENTVC,VBETCPLAITDISTANCELANGUAGETHISDESIGNADOPTIONVBPLAITWRITES,THEVBHASESBEENPASSINGFORTOHAVESINCETHENBELOWMERITANDSHORTCOMINGTHEADVANTAGEISTOUNDERTAKESQUICK,DEVELOPMENTTHEEFFICIENCYISHIGHTHEWEAKNESSISANABILITYLIMITED,CIRCULATETHEEFFICIENCYLOWTHISEXACTLYSOMESOFTWARESISUSEDASAREASONFORCHOOSETHELANGUAGE,BUTSOMESOFTWARESISAFFIRMATIVEANDDOWITHTHEVBOFVBSANDALOTOFVCS,THEDELPHIPROCEDUREMEMBERTHINKSTHEVBINMAKETHEDEVELOPMENTNOTFREEREALLY,ITISSIMPLETOISSTRONGANDBIGWITHTHEFUNCTIONTHISBOTHONESELFISANONERIGHTNESSANTINOMYTHEMINECLEARANCEGAMEISANOPERATESYSTEMINSIDEOFAGROWSINWISDOMAGAMEPRIMARILYTHECUSTOMERPROCEEDSTHEOPERATIONTOTHERATMARK,THELEFTKEYINMARKINRATINSINGLESHOTISFORTRAMPLINGTHETHUNDER,THESINGLESHOTRATMARKSTHELEFTKEYINMARKING,QUESTION,BLANKTHREEKINDSOFAPPEARANCESCIRCULATING,THESINGLESHOTRATMARKSORSOKEYASTOTRAMPLEATTHESAMETIMETHESINGLESHOTORDERSTHESURROUNDINGSININSIDENINETHEMARKINGHADINSPACESESAREALREADYALLBLANKSOFTHEMARKINGATTHESAMETIMEPROCEDUREISFROMYOUSINGLESHOTFIRSTTIMEHOURSTARTSACCOUNTING,ARRIVEVICTORYORSETOFFTHELANDMINEENDENDINGTHESINGLESHOTINEMPRESSSTARTSPRESSINGBUTTONRESTARTINGTHEGAMETHISGAMEREALIZESTHEPURPOSEOFTHEHUMANBRAININDEVELOPMENTTHOUGHTKEYWORDSVB,THEMINECLEARANCEGAME目录1引言12VISUALBASIC概况221VB简介222本设计运用的技术23可行性分析64总体设计741设计构想742流程规划75详细设计951画面规划952设计过程10521添加菜单10522自定义窗体设计10523关于窗体设计1153运行界面126系统测试13结束语14参考文献16附录171引言本论文研究的是以VISUALBASIC60为开发环境,设计并开发一款扫雷游戏,其功能类似于WINDOWS操作系统自带的扫雷游戏论文首先介绍了制作游戏的整体思路及整个游戏设计的流程规划,然后介绍了雷区的布置及地雷随机产生的实现方法重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为重要,鼠标事件是利用鼠标所发出的信息了解使用者的意图,进而做出相对应的动作,而清除未靠近地雷区方块由于引进了“递归”这个概念而使其简单化扫雷游戏是WINDOWS系统自带的一个娱乐性的小游戏,在玩扫雷游戏的过程中也可以很好的培养耐心和细心,同时在无聊得时候可以用以休闲娱乐,如果我们自己也能动手做一个小程序来实现这个功能,自然能乐在其中。本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待完善2VISUALBASIC概况21VB简介VISUALBASIC是微软公司出品的一个快速可视化程序开发工具软件。借助微软在操作系统和办公自动化软件的垄断地位,VB在短短的几年内风靡全球。VB是极具特色和功能强大的软件,主要表现所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的代码。同时众多的ACTIVE控件,提高了软件的使用效率。可以用于可以开发多媒体、数据库、网络、图形等方面的应用程序。VB应用程序语言的基本特点11可视化界面设计VB为用户提供大量的界面元素(在VB中称为控件对象),这些控件对象对于熟悉WINDOWS应用程序的用户来说是一点也不陌生,如“窗体”,“菜单”,“命令按扭”,“工具按扭”,“检查框”等等,用户只要利用鼠标、键盘把这些控件对象拖动到合适的位置,设置其大小、形状、属性等,就可以设计出所需的应用程序界面。2事件驱动编程在使用VB设计应用程序是,必须首先确定应用程序如何同用户进行交互。例如发生鼠标单击、键盘输入等事件是,由用户编写代码控制这些事件的响应,这就是所谓的事件驱动编程。3与数据库的连接性VISUALBASIC提供了与底层数据库系统紧密的连接。VISUALBASIC支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。开发人员和利用内置的高性能数据库引擎JET生成独立应用或脱离服务器运行的服务以上的应用。22本设计运用的技术这个游戏里运用了VB里的组件及语法作为游戏运算和显示,其相关语法及组件如下表1所示表1使用的语法及组件组件及语法说明FORNEXT利用循环布置地雷区、按下时检查非地雷方块LOADUNLOAD动态加载或删除指令产生表示地雷方块图案的IMAGE组件MOUSEDOWN与MOUSEUP事件判断按下或放开方块时的按键为左键或右键IMAGELIST组件存储游戏过程中所需的图案IMAGE组件利用此显示地雷方块TIMER组件设定触发时间,来控制方块游戏时间PICTUREBOX组件利用此组件作为地雷方块的布置区域递归利用递归展开非地雷的方块详细说明如下1FORNEXT循环应用在游戏设计上,利用了两个二维数组分别记录地雷的分布状况及地雷区及表面探测情形。利用数据循环的对比,不但速度快,而且在设计阶段,程序的架构比较清楚。2LOAD及UNLOAD动态增加或删除组件利用LOAD及UNLOAD指令,可动态新增及删除组件。在游戏的雷区,依照使用者自定义的地图类型,布置未探测的地雷方块。加载组件后,通过IMAGE组件的MOVE属性,将组件布置于预定的位置。MOVE函数的原型如下组件MOVEX坐标,Y坐标,组件宽度组件高度再配合双循环的变量值,可以控制组件布置于窗体的方向及方式。3MOUSEDOWN与MOUSEUP事件在游戏过程中,利用鼠标所发出的信息了解使用者的意图,进而做出相应的动作。在MOUSEDOWN与MOUSEUP事件中,可以捕捉鼠标所按下或放开的按键为何、鼠标光标在该组件上的坐标及是否同时按下辅助键等。用BUTTON参数值表示鼠标上的按钮数值。其意义如下1左键2右键4中央键若同时按下不止一个按键时,则传回数值为按键数相加。例如同时按下左键及右键,则BUTTON值为123在本游戏中,利用右键的MOUSEDOWN事件标示“已标示”方块,利用左键的MOUSEDOWN事件,标示使用者准备按下的方块,利用左键的MOUSEUP事件确定翻开的方块。4IMAGELIST组件利用IMAGELIST可以存储显示方块的图形2。将组件布置于窗体上后编辑组件属性,通过【插入图片】按钮和【删除图片】按钮即可编辑组件内所存放的图片。如图1所示。因为一个IMAGELIST组件内必须存储大小相同的图片,所在这款游戏设计中,显示的图片共分为三个部分游戏状态图形、数字计数图形和地雷区标示图形。图1IMAGELIST组件属性利用LISTIMAGE集合对象的PICTURE方法,即可将LISTIMAGE组件内的图片指定给图形显示组件,语法如下SET图形组件PICTUREIMAGELISTLISTIMAGE图片索引PICTURE5IMAGE组件利用IMAGE组件作为游戏执行阶段所有图形的显示。在游戏画面中,计数数字、游戏状态表情及地雷区方块图形等,都利用IMAGE组件作为显示组件,再搭配IMAGELIST组件所存储的图形,便可在执行阶段在同一个IMAGE组件上变换不同的图片。6TIMER组件在游戏中,地雷引爆的可能有2中,第一种为使用者翻开(踩到)地雷方块,第二种为设定时间内未探测完所有地雷而引爆。其中第二种的行为,可以通过TIMER组件来加以控制。利用TIMER组件在固定时间即会触发事件的特性,在事件触发时便将计数值加1,直到判断计数值超过限定值时,即引爆地雷。7PICTUREBOX组件PICTUREBOX为容器类型的组件,可以加入其它组件在内3。在游戏中利用了PICTUREBOX的两个特性容器特性和立体框架。分述如下容器特性只要容器本身显示的行为改变,在容器内的组件也会跟着改变。当游戏初始时,地雷区的显示组件会循环执行,逐一布置在画面上,但由于执行循环时多个IMAGE组件要显示图形,造成分时系统执行频率显示上会出现不流畅的情形,若在循环之前,先将容器本身的VISIBLE属性设为FALSE,在循环执行完成后再将VISIBLE属性设为TRUE,则显示就会变得流畅许多。立体框架通过组件本身立体框线的属性设定,可以为游戏画面的显示上营造出层次感。8递归递归就是一个程序能被自己所定义的语句调用。在游戏过程中,当使用者按下非地雷方块时,方块会沿四周八个方向向外翻开非地雷的方块。程序执行时必须判断以按下方块为中心。检查周围八个方块是否为非地雷方块,若其中一个方块是非地雷方块时,则又以其为中心,向外检查周围八个方块是否为非地雷方块,如此反复的行为即构成了递归的使用条件。当判断方块内容为数字时(即在非地雷方块周围),即停止递归执行。3可行性分析可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就是说可行性研究的目的不是解决问题,而是确定问题是否值得去解,研究在当前的具体条件下,是否具备必要的资源和其它条件。一般说来,应从经济可行性、技术可行性、运行可行性、和开发方案可行性等方面研究可行性。可行性分析1对于当前条件下,完全可以达到该系统功能目标;2该系统功能在现有技术下,完全可以实现;3目标实现游戏的各类功能,如初、中、高(自定义)各个游戏等级4用户的特点都是对扫雷游戏的喜好者4总体设计41设计构想本游戏的功能类似于WINDOWS操作系统自带扫雷游戏,设计之前,先了解这款游戏的规则。在不掀开任何的情况下,以最快的速度找出所有的地雷。如果在掀开方块的过程中,不小心翻开(踩到)藏有地雷的方块,则宣告失败(死亡),惟有将所有不含地雷的方块掀开,游戏才算成功(存活)。游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块,当鼠标指针对准未翻开的方块按下右键时即表示标示或疑似地雷,反复按下右键则方块会依未标示标示疑似三者关系不断循环。使用者可以通过地雷区内的数表示以其为中心的周边八个方块内所含的地雷数。当按下的方块不是地雷,且周边也没有地雷时,方块会以被翻开的八个方向将空白方块翻开。42流程规划流程规划分为三个部分,分别为画面初始、使用者按下第一个方块和为非地雷方块时展开。画面初始时,以使用者最后一次设定的地雷区大小为范围画出地雷区,但此时并未产生地雷。当使用者按下第一个方块时产生地雷并启动定时器,主要为了不让使用者第一次就踩到地雷,这样在某种程度上提高了游玩的气氛。接着就是如何判断按下的方块为非地雷时的处理,这也是整个游戏的技术核心,可以通过递归的观念来检查周边是否含有地雷及是否继续往外翻开。流程规划如图2所示图2流程规划图开始依照使用者设定初始等待按键右键第一次按下方块显示方块1布置地图2启动定时器按下方块是否为地图左键显示分数是否再玩结束计时器时间到延按下方块周围展开非地雷方块是是是否否否否否是否5详细设计51画面规划画面规划如图3所示图3画面规划图说明如下游戏窗口(FORM)。为了避免因改变窗口大小而造成画面呈现不美观,1将BORDERSTYLE属性值设定为3(双线固定对话框),即无法以窗口边缘进行窗口大小调整。计数区(PICTUREBOX)。2地雷数显示区(PICTUREBOX)。3游戏时间显示区(PICTUREBOX)。4地雷区(PICTUREBOX)。5地雷数IMAGE。68游戏状态IMAGE。9经过秒数IMAGE。1012地雷区图样IMAGE。13游戏状态图片IMAGELIST。14地雷区图片IMAGELIST。15地雷数及秒数数字图片IMAGELIST。1612764389150140130101211516017秒数控制(TIMER)。1752设计过程521添加菜单使用菜单编辑器编辑游戏的主菜单,点击“工具”菜单上的“菜单编辑器”命令选项,即可打开菜单编辑器。菜单控件在列表框中的位置决定了该控件是菜单标题、菜单项、子菜单标题,还是子菜单项。对于一些常用的菜单命令,可以设置“ALT快捷键”组合来快速打开菜单。方法是在菜单编辑器中的CAPTION后面添加“(R)”就可以了。图4菜单编辑器522自定义窗体设计打开主菜单游戏自定义,可以显示窗体,如图5所示。通过这个窗体使用者可以自己设定行数、列数和地雷数。图5自定义窗体设置参数PRIVATESUBCOMMAND1_CLICKIFTHEIGHTTEXT50ORTHEIGHTTEXT50ORTWIDTHTEXTTHEIGHTTEXTTWIDTHTEXTORTMINESTEXT0RXRNDMAP_X1RYRNDMAP_Y1判断数组中RX,RY为非地雷及非点选的方块坐标时IFMAPARRRX,RY9AND_NOTRXXXXANDRYYYYTHENCMINE_NUMCMINE_NUM1MAPARRRX,RY9地雷外围数字各加一FORXXRX1TORX1FORYYRY1TORY1IFXX0ANDXX0ANDYY9AND_NOTXXRXANDYYRYTHENMAPARRXX,YYMAPARRXX,YY1ENDIFENDIFNEXTYYNEXTXXENDIFLOOPENDIF将该方块坐标值设为0,表示为翻开状态MAPFACEARRXXX,YYY0选择地雷区数组判断该坐标SELECTCASEMAPARRXXX,YYYCASE0空白CALLDOCLEARXXX,YYY,INDEXCALLSETMINEIMAGEINDEX,10CASE1TO8数字MINE_NUM_CLEARMINE_NUM_CLEAR1CALLSETMINEIMAGEINDEX,MAPARRXXX,YYYCASE9地雷ISDIETRUETIMER1ENABLEDFALSECALLSHOWMINECALLSETMINEIMAGEINDEX,12ENDSELECT检查是否只剩下地雷未探测IFMAP_XMAP_YMINE_NUM_CLEARMINE_NUMTHENISFINALTRUEENDIFENDIF设定状态图示CALLSETSTATEIMAGEENDIFENDSUB清除未靠近地雷的区块PRIVATESUBDOCLEARBYVALXASINTEGER,BYVALYASINTEGER,BYVALINDEXASINTEGERMINE_NUM_CLEARMINE_NUM_CLEAR1FORXXX1TOX1FORYYY1TOY1IFXX0ANDXX0ANDYY0AND_MAPARRXX,YY9THENCALLSETMINEIMAGEJMAP_XI,15ENDIFNEXTJNEXTIENDSUB显示完成PRIVATESUBSHOWFINALFORX0TOMAP_X1FORY0TOMAP_Y1IFMAPARRX,Y9THENCALLSETMINEIMAGEYMAP_XX,13ENDIFNEXTYNEXTXMINE_NUM_LABELMINE_NUMCALLSETNOWMINESMSGBOX“您花了“MAYBEBACKINTHEPAST,TOONESELFTHEPARANOIDWEIRDBELIEFDISILLUSIONMENT,THESEDAYS,MYMINDHASBEENVERYMESSY,INMYMINDCONSTANTLYALWAYSFEELONESELFSHOULDGOTODOSOMETHING,ORWRITESOMETHINGTWENTYYEARSOFLIFETRAJECTORYDEEPLYSHALLOW,SUDDENLYFEELSOMETHING,DOIT一字开头的年龄已经到了尾声。或许是愧疚于自己似乎把转瞬即逝的很多个不同的日子过成了同一天的样子;或许是追溯过去,对自己那些近乎偏执的怪异信念的醒悟,这些天以来,思绪一直很凌乱,在脑海中不断纠缠。总觉得自己似乎应该去做点什么,或者写点什么。二十年的人生轨迹深深浅浅,突然就感觉到有些事情,非做不可了。THEENDOFOURLIFE,ANDCANMEETMANYTHINGSREALLYDO而穷尽我们的一生,又能遇到多少事情是真正地非做不可DURINGMYCHILDHOOD,THINKLUCKYMONEYANDNEWCLOTHESARENECESSARYFORNEWYEAR,BUTASTHEADVANCEOFTHEAGE,WILLBEMOREANDMOREFOUNDTHATTHOSETHINGSAREOPTIONALJUNIORHIGHSCHOOL,THOUGHTTOHAVEACRUSHONJUSTMEANSTHATTHEREALGROWTH,BUTOVERTHEPASTTHREEYEARSLATER,HISWRITINGOFALUMNIINPEACE,SUDDENLYFOUNDTHATISNTREALLYGROWUP,ITSEEMSISNOTSOIMPORTANTTHENINHIGHSCHOOL,THINKDONTWANTTOGIVEVENTTOOUTYOURINNERVOICECANBEINTHEHIGHSCHOOLCHILDRENOFTHEFEELINGSINAPERIOD,BUTWASEVENTUALLYINFARCTIONWHENGRADUATIONPARTYINTHETHROAT,LATERAGAINSTOODONTHEPITCHHEHASSWEATPROFUSELY,LOOKEDATHISTHROWNABASKETBALLHOOPS,SUDDENLYFOUNDHIMSELFHASALREADYCANTREMEMBERHISAPPEARANCEBAUMGARTNERTHEDISAPPOINTINGNEWSMISSIONABORTEDRPLAYSANIMPORTANTROLEINTHISMISSIONSTARTINGATTHEGROUND,CONDITIONSHAVETOBEVERYCALMWINDSLESSTHAN2MPH,WITHNOPRECIPITATIONORHUMIDITYANDLIMITEDCLOUDCOVERTHEBALLOON,WITHCAPSULEATTACHED,WILLMOVETHROUGHTHELOWERLEVELOFTHEATMOSPHERETHETROPOSPHEREWHEREOURDAYTODAYWEATHERLIVESITWILLCLIMBHIGHERTHANTHETIPOFMOUNTEVEREST55MILES/885KILOMETERS,DRIFTINGEVENHIGHERTHANTHECRUISINGALTITUDEOFCOMMERCIALAIRLINERS56MILES/917KILOMETERSANDINTOTHESTRATOSPHEREASHECROSSESTHEBOUNDARYLAYERCALLEDTHETROPOPAUSE,ECANEXPECTALOTOFTURBULENCEWEOFTENCLOSEOURSELVESOFFWHENTRAUMATICEVENTSHAPPENINOURLIVESINSTEADOFLETTINGTHEWORLDSOFTENUS,WELETITDRIVEUSDEEPERINTOOURSELVESWETRYTODEFLECTTHEHURTANDPAINBYPRETENDINGITDOESNTEXIST,BUTAL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论