《(基于C语言的扫雷游戏开发)》修改意见稿
1、“.....反复按下右键则方块会以未标示标示疑似三者关系不断循环鼠标右键,未探测,标示,疑似地雷及雷区表面探测情况在游戏设计上,我利用了两个二维数组分别记录地雷的分布情况及雷区表面探测情形,如图和图所示图标示地雷分布情况图标示地雷探测情况因为两个数组维数皆为,所以我们通过双循环做数据的对比工作。另外,当游戏玩家按下非地雷的方块时,程序必须自动将周边非地雷的方块翻开,这个动作我们也可以通过双循环的方式检查以按下的方块为中心与周边的个方块所形成的的二维数组,鼠标指针所指即是代表按下的方块,利用双循环作数据的对比,不但速度快,而且在设计阶段,程序的架构也比较清楚。程序设计时双循环常常搭配二维数组使用。清除未靠近地雷的方块这里先引入个递归的概念,递归简单的说,就是个程序能被自己所定义的语句调用。递归在程序设计上地雷引爆。具体代码如下所示定时器时间计数显示设定状态图示,设定状态图示您探测地雷的时间已超过,地雷已引爆......”。
2、“.....经过不断的调试与修改,最后测试本次所设计的扫雷游戏能够正常运行,在基本功能与画面上与自带的扫雷游戏没有太大差别,没有出现明显的和漏洞,但是在些细节方面仍然需要完善,比如在游戏中可以加入些声音的提示,在游戏完成和失败的时候可以弹出些小的动画,还有就是可以加入个扫雷英雄榜等等。总的来说本次设计在功能上已经基本达到要求,其他细节方面有待以后完善。结论毕业设计是本科学习阶段次非常难得的理论与实际相结合的机会,通过这次比较完整的个程序的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际问题的能力,同时也提高我查阅文献资料对程序整体的把握等其他能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们进行毕业设计的目的所在。虽然毕业设计内容繁多,过程繁琐但我的收获却更加丰富。各种组件的运用,各种算法的应用......”。
3、“.....和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识也对自己提出了新的要求。提高是有限的但提高也是全面的,正是这次设计让我积累了许多实际经验,也必然会让我在未来的工作学习中表现出更高的应变能力和理解力。顺利如期的完成本次毕业设计给了我很大的信心,但是也让我看到了自己许多不足的地方,学习其实就是个不断完善的过程,正视自己的不足之处,在以后的工作和学习中不断的弥补这些不足之处,在以后的生活中也要保持同样的态度,不断的完善自己。参考文献唐任仲工程应用软件开发技术北京化学工业出版社,。李怀明中文版参考详解北京清华大学出版社,。李善茂高级编程技巧西安电子工业出版社,。谭浩强中文版提高与应用西安电子工业出版社,。冯锋,王运坚程序设计基础教程西安电子工业出版社,。何斌,刘醒应用指南成都四川大学出版社,。伍俊良课程设计与系统开发案例北京清华大学出版社,。种重要的数据结构形态,通过递归程序的编写,在程序代码上会变得相当简洁,不过如果设计不当......”。
4、“.....所以递归的程序中心必须含有或等设计,以终止递归执行。在游戏过程中,当游戏者按下非地雷方块时,方块会沿四周八个方向向外翻开非地雷的方块。程序的执行方面必须判断以按下方块为中心,检查周围八个方块是否为非地雷方块,若其中有个方块是非地雷方块时,则又以其为中心,向外检查周围八个方块是否为非地雷方块,如此反复的执行即构成递归的使用条件。前面已经提到,递归必须设计终止的条件判断,在本游戏的递归架构中,当判断方块的内容为数字时即在非地雷方块周围,即立即停止递归程序。递归其实也不是万能的,以本游戏做测试,当地雷区范围越大,且地雷数目不多时翻开非地雷方块,几乎全部方块都会翻开,执行递归就会变的非常缓慢,甚至造成堆迭溢满不足的情形,所以在游戏设计上必须考虑地雷区的大小,以免造成执行时中断的情况发生。代码部分如下所示,游戏难度的选择这里我设置了初级,中级,高级以及自定义四个不同的难度级别,初级,中级,高级中的雷区大小和地雷总数是已经设计好了的,如果玩家想要自己设置这些参数......”。
5、“.....然后在设置中输入行数,列数及地雷数,在这里我对行数及列数做出了个限定,及行数和列数的最大值分别为和,当在设置地雷数的时候,如果地雷数大于或等于行数和列数的乘积,或者地雷数小于零,地雷数都将自动的转换为地雷数行数列数。游戏的判断游戏成功完成当在规定的时间内将所有的雷都正确的标示出来,游戏就会有个弹出框提示你在多长时间内完成当前难度下的游戏。还有种情况便是当只剩下地雷未探测的时候,及雷区方块总数已清除的方块数地雷总数的话,游戏也将成功完成。游戏失败当鼠标左键按下的方块为地雷方块事,地雷将会被引爆,游戏立即结束。当在设定时间内未探测完所有的地雷,地雷也将会引爆,对于这第二种行为,我们可以通过组件来加以控制。利用组件在固定时间即会触发时间的特性,在事件触发时便将计数值加,直到判断计数值超过限定值时,即算程序。个典型的进程的中心思想就是要便于程序员使用,无论是新手或者专家。使用了可以简单建立应用程序的系统,但是又可以开发相当复杂的程序......”。
6、“.....并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有部分定义在了组件内,所以程序员不用写多少代码就可以完成个简单的程序。过去的版本里面程序的性能问题直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。窗体控件的增加和改变可以用拖放技术实现。个排列满控件的工具箱用来显示可用控件比如文本框或者按钮。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了个动态的程序。举个例子来说窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止些字符的输入。的程序可以包含个或多个窗体,或者是个主窗体和多个子窗体,类似于操作系统的样子......”。
7、“.....的组件既可以拥有用户界面,也可以没有。这样来服务器端程序就可以处理增加的模块。使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不样,对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。使得大量的外界控件有了自己的生存空间。大量的第三方控件针对提供。也提供了建立使用和重用这些控件的方法,但是由于语言问题,从个应用程序创建另外个并不简单。在讨论时,经常可以听到以下这些术语,因此对这些术语的基本理解十分有帮助。控件简单的说,控件就是构成或者说建造应用程序的图形化工具,包括窗体按钮复选框列表框数据控件表格控件和图片控件等等。事件由用户或操作系统引发的动作。事件的示例有击键单击鼠标双击鼠标段时间的限制,或从端口接收数据。方法嵌入在对象定义中的程序代码......”。
8、“.....例如,数据库对象有打开纪录集并从个记录移动到另个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是中所有对象的示例。对象个控件窗体等都可被看作个对象。过程为完成些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。属性属性是组成用户界面的各对象的性质的具体描述。例如上述对象中所提到的尺寸位置颜色宽度高度等等都称为控件的属性。属性决定对象的外观,有时也决定对象的行为。对象的属性绝大部分是中已经事先定义好的,但也有的属性是需要我们可以将组件布置于窗体后编辑组件属性,如图所示图通过和按钮即可编辑组件所存放的图片。利用集合对象的方法,即可将组件内的图片指定给图形显示组件,语法如下图形组件图片索引因为个组件内必须存储大小相同的图片,所以在游戏中显示的图片共分为三个部分数字计数图形游戏状态图形地雷区表示图形。所以我们使用了三个组件来存储不同大小的图片......”。
9、“.....这里我们利用及指令,动态新增及删除组件。在游戏的地雷区,我们依照游戏者自定义的地图类型,来布置未探测地雷方块。假如设定的地图大小为时,我们可以通过双循环及指令在程序执行阶段动态加载表示方块的组件,程序片段如下加载表示地图资料的图片地雷区高地雷区宽表示方块组件设定组件位置经过双循环的运算,程序就会产生个组件,试想如果在程序设计阶段,就把个组件布置在窗体上,那将是多么没有效率的事情,况且组件数量的多少,还要取决于游戏玩家设定的地雷区大小,所以利用指令对于大量加载同组件的动作将有莫大的帮助。加载组件后必须将组件做适当的布置,我们可以通过组件的属性,将组件布置于预定的位置,函数的原型如下组件坐标,坐标,组件宽度,组件高度其中括号内表示可以省略再配合双循环的变量值,可以控制组件布置于窗体的方向及方式,例如以下程序片段地雷区高地雷区宽表示方块组件设定组件位置组件组件宽度,组件高度组件将呈现先由左至右,再由上至下布置。若将内循环改为值,同样的指令......”。