扫雷游戏设计报告

合集下载

扫雷游戏课程设计报告

扫雷游戏课程设计报告

(一)需求分析题目:32、实现一种N*M 旳扫雷游戏设计规定:可以实现一种N*M 旳扫雷游戏a、可以打开一种方格(由于做旳是静态显示,故在控制台上方格用‘—’替代),已打开旳方格不能关闭b、可以标识一种方格,标识方格旳含义是对该方格有雷旳预测(并不体现真旳一定有雷)c、可以给出游戏成果:输、赢d、N和M可由玩家自己设置系统功能需求分析:一种数字和一种雷(boom)。

你可以打开(open)一种方格,假如你打开旳是一种boom,那么就失败;否则就会打开一种数字,该数字是位于[0,8]旳一种整数,该数字体现其所有邻居方格所包括旳雷数,应用该信息可以协助你扫雷。

点击到了某区域发现其周围没有雷,那么显而易见应当点开周围旳区域,拓展空白区域(二)概要设计由于知识储备局限性,VC中旳MFC应用程序又过于复杂,故退而求另首先,不再采用动态显示和界面图形化,采用静态显示来实现扫雷游戏中旳重要功能。

用键盘上旳‘1’键替代鼠标左击,即打开一种方格查看其属性,已打开旳方格不能在关闭;用键盘上旳‘2’键替代鼠标右击,即标识一种方格,标识方格旳含义是对该方格有雷旳预测(并不体现真旳一定有雷)用键盘上旳‘↑’‘↓’‘←’‘→’四个键来实现光标在控制台上旳自由移动,相称于用鼠标实现光标在图形界面旳移动游戏区域旳高度与宽度及总雷数可由玩家自己设定应题目规定设计了一种基类:Base和一种继承类:Game。

基类Base重要实现某些基本功能:游戏结束时输出游戏旳成果:输赢;返回控制台上光标旳位置返回按下键时所对应旳按键控制符基类Base:继承类Game是本程序旳重要内容,也是实现扫雷游戏旳关键部分。

重要实现旳功能:初始化图形界面,把游戏区域在控制台上显示出来;运用随机函数进行随机布雷,以保证玩家每次玩游戏时雷旳分布位置均不同样;得到一种坐标位置周围旳雷数,并把数值返回;在一种坐标点上(x,y)点击,在该位置上显示其周围旳雷数或拓展空白区域或失败;假如一种坐标点旳周围没有雷,则拓展空白区域,并递归拓展;其中saolei()函数是类Game里旳关键函数体,用来判断玩家按下了哪个键,并作出对应反应(上下左右四个方向旳移动,打开一种方格,标识一种方格),并判断游戏旳输与赢继承类Game:(三)详细设计关键算法:(1)布雷函数:初始化时把数组里旳值所有置为0,然后运用srand(),rand()随机机制产生随机数,分别对列和行取模,便产生了雷旳随机位置。

java 扫雷 实验报告

java 扫雷 实验报告

java 扫雷实验报告Java 扫雷实验报告一、引言扫雷是一款经典的单人益智游戏,玩家需要根据数字提示,在雷区中揭开没有地雷的方块,同时避免触雷。

本实验旨在使用Java语言实现一个简单的扫雷游戏,并对实现过程和结果进行分析和总结。

二、实验过程1. 游戏界面设计使用Java的图形用户界面(GUI)工具包Swing,设计了一个扫雷游戏的界面。

界面包括一个方格矩阵,每个方格可以是未揭开、揭开、标记地雷三种状态之一。

同时,界面上显示了剩余地雷数量和游戏时间。

2. 游戏逻辑实现通过编写Java代码,实现了扫雷游戏的逻辑。

主要包括以下几个方面:- 初始化雷区:根据用户输入的难度级别,生成对应大小的雷区,并在其中随机布置地雷。

- 揭开方块:当玩家点击某个方块时,根据该方块周围的地雷数量,显示对应的数字或触雷。

- 标记地雷:当玩家认为某个方块是地雷时,可以标记该方块,以便后续操作时不会误触雷。

- 游戏结束判断:当玩家揭开所有没有地雷的方块时,游戏胜利;当玩家触雷时,游戏失败。

3. 用户交互设计为了提升用户体验,实现了以下交互设计:- 鼠标左键点击方块:揭开方块或触雷。

- 鼠标右键点击方块:标记地雷或取消标记。

- 双击方块:自动揭开周围未标记的方块,如果周围已标记地雷数量与方块上的数字相等。

三、实验结果经过实验,我们成功实现了一个简单的Java扫雷游戏。

游戏界面美观,操作流畅,能够满足基本的游戏需求。

玩家可以根据自己的喜好选择不同的难度级别,挑战不同规模的雷区。

四、实验总结通过这个实验,我们深入理解了Java语言的面向对象特性和图形用户界面的设计思想。

同时,我们学会了如何将一个复杂的问题分解为多个小问题,并通过合理的设计和编码实现整体功能。

在实验过程中,我们也遇到了一些挑战,比如如何处理用户输入、如何判断游戏是否结束等。

通过不断思考和尝试,我们最终找到了解决方案,并取得了满意的结果。

在今后的学习和工作中,我们将继续深入学习Java语言和相关技术,提升自己的编程能力。

扫雷游戏毕业设计

扫雷游戏毕业设计

扫雷游戏毕业设计扫雷游戏毕业设计扫雷游戏是一款经典的益智游戏,它的目标是通过点击方块来揭示地雷的位置,同时避免触雷。

作为一名计算机科学专业的学生,我选择了扫雷游戏作为我的毕业设计项目。

在这篇文章中,我将分享我在设计和开发过程中的经验和思考。

1. 引言扫雷游戏是一款简单而又富有挑战性的游戏,它能够锻炼玩家的逻辑思维和决策能力。

我的目标是设计一个功能完善、界面友好的扫雷游戏,并通过实现一些创新的功能来提升游戏的乐趣和可玩性。

2. 游戏规则在设计扫雷游戏时,首先要明确游戏的规则。

扫雷游戏的基本规则是在一个方块阵列中,隐藏着一定数量的地雷。

玩家需要通过点击方块来揭示其内容,如果揭示到地雷,游戏结束;如果揭示到数字,则表示周围有多少颗地雷;如果揭示到空白方块,则会自动揭示周围的方块。

玩家需要通过逻辑推理和猜测来找出没有地雷的方块,直到所有的地雷都被标记出来或者所有的非地雷方块都被揭示出来。

3. 游戏界面设计游戏界面的设计对于提升玩家的游戏体验非常重要。

我选择了简洁而直观的设计风格,使得玩家能够快速上手并享受游戏的乐趣。

在游戏界面上,我添加了一些额外的功能,比如计时器和雷区标记。

计时器可以记录玩家完成游戏所用的时间,而雷区标记可以帮助玩家标记可能的地雷位置,增加游戏的策略性。

4. 游戏算法设计在扫雷游戏中,算法的设计对于游戏的可玩性和难度有着重要的影响。

我选择了经典的随机算法来生成地雷的位置,确保每局游戏的地雷分布都是随机的。

另外,我还设计了一种智能提示算法,当玩家陷入困境时,可以给出一些建议,帮助玩家更好地解决难题。

5. 游戏开发过程在游戏开发过程中,我选择了使用Python编程语言和Pygame库来实现游戏的逻辑和界面。

Python是一种简洁而强大的编程语言,而Pygame库则提供了丰富的游戏开发功能和工具。

通过合理的模块划分和代码组织,我能够更好地管理和维护游戏的代码。

6. 游戏测试和优化在游戏开发完成后,我进行了大量的测试和优化工作,以确保游戏的稳定性和性能。

扫雷游戏实验报告1

扫雷游戏实验报告1

引言:扫雷游戏是一款经典的益智游戏,在计算机科学中具有重要的意义。

通过对扫雷游戏的实验研究,我们可以更深入地理解图形用户界面的设计、算法的实现和优化。

本实验报告旨在介绍扫雷游戏实验的具体内容和方法,以及实验结果和分析。

概述:本实验主要分为五个大点来阐述,首先是游戏界面的设计和实现;其次是游戏逻辑算法的设计和实现;然后是游戏的状态管理和存储;接下来是游戏的难度设置和用户交互;最后是游戏的性能优化和改进。

正文:一、游戏界面的设计和实现1.1游戏界面的布局和元素设计1.2基于图形库的界面实现1.3界面交互的设计和实现1.4界面音效和特效的设计和实现1.5界面美化和用户体验的改进二、游戏逻辑算法的设计和实现2.1扫雷算法的原理和实现2.2地雷的和布局算法2.3周围区域的检测和计算算法2.4游戏胜利条件的判断算法2.5游戏失败条件的判断算法三、游戏的状态管理和存储3.1游戏状态的转换和管理3.2游戏数据的存储和读取3.3游戏历史记录的保存和展示3.4游戏暂停和恢复功能的实现3.5游戏重置和重新开始的处理四、游戏的难度设置和用户交互4.1不同难度级别的设置和调整4.2游戏设置界面的设计和实现4.3用户交互的反馈和提示4.4游戏操作的优化和改进4.5游戏设置的保存和加载五、游戏的性能优化和改进5.1游戏算法的优化和改进5.2图形渲染性能的优化5.3游戏资源的管理和释放5.4游戏事件的处理优化5.5游戏的稳定性和兼容性改善总结:通过本次实验,我们深入研究了扫雷游戏的设计和实现。

通过对游戏界面、逻辑算法、状态管理、难度设置和用户交互、性能优化等方面的研究和实验,我们对扫雷游戏有了更深入的理解和掌握。

未来,我们可以进一步优化和改进扫雷游戏,使得游戏更加稳定、流畅,并提供更好的用户体验。

扫雷游戏毕业设计开题报告(二)2024

扫雷游戏毕业设计开题报告(二)2024

扫雷游戏毕业设计开题报告(二)引言概述:扫雷游戏是一种经典的计算机游戏,其规则简单但又富有挑战性。

开展扫雷游戏的毕业设计项目,除了能够提升自身编程技术外,还可以加深对算法和逻辑的理解。

本文将以扫雷游戏毕业设计开题报告的第二部分,继续探讨游戏设计的细节,包括难度级别设定、游戏界面设计、游戏操作方式、计时功能和游戏结束条件。

正文:1. 难度级别设定:a. 设定游戏难度级别,例如初级、中级、高级,以便玩家根据自身实力选择适合的难度。

b. 每个难度级别中,设定雷区的大小和雷的数量,确保游戏的可玩性和挑战性。

c. 根据难度级别设定雷的布置方式,例如随机布雷或者按照特定模式布雷等。

2. 游戏界面设计:a. 设计游戏主界面,包括雷区、计时器、剩余雷数等元素的布局。

b. 使用合适的颜色和图标设计界面,使其具有良好的视觉效果和用户体验。

c. 提供可调节界面大小的功能,以适应不同屏幕和设备。

3. 游戏操作方式:a. 设计鼠标和键盘输入的操作方式,使玩家能够方便地进行游戏。

b. 实现双击操作,方便玩家快速揭示周围方块。

c. 提供右键标记功能,以帮助玩家确定雷的位置。

4. 计时功能:a. 设计游戏开始时启动计时功能,并在游戏进行过程中实时显示所用时间。

b. 提供计时暂停和重置功能,以便玩家能够按需控制计时。

c. 记录每位玩家的最佳成绩和完成时间,以便与其他玩家比较。

5. 游戏结束条件:a. 当玩家点击雷区时,游戏结束,显示失败信息。

b. 当玩家成功标记了所有雷并揭示了所有非雷方块,游戏结束,显示胜利信息。

c. 提供重新开始游戏的选项,以便玩家能够进行下一轮游戏。

总结:扫雷游戏的毕业设计项目涉及难度级别设定、游戏界面设计、游戏操作方式、计时功能和游戏结束条件等多个方面。

通过合理设计和实现这些要点,能够提供一个具有挑战性和趣味性的扫雷游戏,满足玩家的需求,并进一步提升自身的编程技术和算法逻辑能力。

扫雷游戏毕业设计开题报告(一)2024

扫雷游戏毕业设计开题报告(一)2024

扫雷游戏毕业设计开题报告(一)引言概述:扫雷游戏是一款经典的益智游戏,它可以帮助玩家培养逻辑思维能力和分析问题的能力。

本文将介绍我的毕业设计开题报告,主题为扫雷游戏的设计与实现。

通过对该游戏的深入研究与分析,我将挖掘出游戏的核心功能和技术实现,并着重讨论算法的设计与优化,以提升游戏的用户体验。

本文将涵盖以下几个方面的内容:游戏的背景与意义、游戏的整体设计思路、游戏的基本功能、游戏的核心算法设计与优化、游戏的用户界面设计。

正文:一、游戏的背景与意义1. 扫雷游戏的起源和发展历史2. 扫雷游戏对玩家逻辑思维的培养作用3. 扫雷游戏在计算机科学中的应用价值二、游戏的整体设计思路1. 游戏目标的设定与规则制定2. 游戏的基本元素与交互方式3. 游戏难度的设定与平衡4. 游戏界面的整体布局与风格设计5. 游戏的用户反馈与成就系统设计三、游戏的基本功能1. 游戏开始与结束的逻辑实现2. 游戏面板的生成与显示3. 雷区与雷的随机分布4. 点击与标记雷的操作实现5. 游戏胜利与失败的判断及处理四、游戏的核心算法设计与优化1. 雷区的生成算法2. 标记雷的策略与优化3. 点击方块后的雷的判断与处理4. 游戏难度与地图的关系解析5. 算法的性能优化与效率提升五、游戏的用户界面设计1. 游戏界面的整体布局与风格设计2. 功能区域与操作方式的设计3. 游戏元素的图形化展示4. 用户交互的界面响应与反馈5. 用户界面的可定制化与改进总结:通过本文的开题报告,我将全面探讨扫雷游戏的设计与实现,深入剖析游戏的核心功能和算法设计。

通过本次毕业设计,我希望能够提高自己的编程能力和分析问题的能力,同时实现一个优秀的扫雷游戏,为用户提供良好的游戏体验。

在未来的研究与开发中,我将努力优化游戏的算法与功能,不断提升扫雷游戏的质量与用户满意度。

c语言扫雷课程设计报告vc

C语言扫雷课程设计报告1. 引言扫雷游戏是一款经典的单人益智游戏,通过在一个由方块组成的网格中,通过点击方块并根据周围方块的状态来逐步揭示地雷的位置。

本文档将介绍一个使用C语言实现的扫雷游戏。

2. 项目背景扫雷游戏是一个经典的Windows游戏,在Windows操作系统中自带有扫雷游戏,因此开发一个C语言版本的扫雷游戏可以提高学生对C 语言的学习兴趣,同时锻炼计算机编程能力。

3. 项目目标本项目的目标是实现一个具备基本功能的C语言扫雷游戏,包括以下特点:•游戏开始时,玩家输入游戏难度(即地雷数量和地图大小),按照输入的难度生成对应的地图。

•玩家通过输入坐标的方式来翻开方块,并根据周围地雷的数量显示提示信息。

•当玩家翻开一个地雷方块时,游戏结束,显示游戏失败信息。

•如果玩家成功翻开了所有的非地雷方块,则游戏胜利,显示游戏胜利信息。

4. 技术实现本项目将使用C语言实现扫雷游戏,主要涉及以下技术:•使用C语言的基本语法和数据结构,实现游戏逻辑和操作;•使用C语言中的文件操作,实现游戏的保存和读取功能;•使用C语言中的随机数生成函数,生成随机地雷的位置;•使用C语言的图形库(如ncurses)来实现游戏界面的显示。

5. 版本控制为了方便项目的维护和追踪,本项目将使用Git进行版本控制。

代码库将托管在GitHub上,方便多人协作和版本管理。

6. 开发计划本项目的开发计划如下:•第1周:学习C语言基础知识,熟悉C语言的基本语法和数据结构;•第2周:完成C语言扫雷游戏的框架搭建,包括游戏初始化、界面设计等;•第3周:实现游戏逻辑,包括地雷生成、方块翻开、胜利条件判定等;•第4周:优化游戏功能,增加保存和读取功能,完善游戏界面等;•第5周:完成文档撰写和项目总结。

7. 预期成果通过本项目的实现,预期可以达到以下成果:•培养学生对C语言的编程能力,加深对C语言的理解;•提高学生的逻辑思维和问题解决能力;•锻炼学生的团队协作和沟通能力;•了解和应用Git版本控制工具,提高代码管理和维护能力。

幼儿园益智游戏《扫雷》教案及游戏实践报告

《扫雷》教学实践与游戏报告1. 前言幼儿园益智游戏一直是幼儿园教学中不可或缺的一部分。

而在幼儿园益智游戏中,《扫雷》作为一款富有挑战性和趣味性的益智游戏,受到了越来越多幼儿园老师和家长的关注。

本文将以《扫雷》为主题,围绕教学实践及游戏报告展开探讨,并希望能在对该游戏进行深入了解的为幼儿园教师及家长提供一些有益的借鉴。

2. 《扫雷》教案设计2.1 游戏概述《扫雷》是一款在方块矩阵中排雷的游戏。

每个方块中可能有地雷,也可能没有。

玩家需要根据已知信息判断哪些方块中有地雷,哪些没有,并用旗帜标记。

游戏的目标是找出所有没有地雷的方块。

2.2 游戏目标通过玩《扫雷》游戏,培养幼儿的观察能力、逻辑推理能力和空间想象能力,提高幼儿的专注力和耐心。

3. 游戏实践报告3.1 游戏实践过程在一次《扫雷》游戏实践中,我们为幼儿们准备了一块由小方块组成的游戏板,其中隐藏了一些小石子代表地雷。

幼儿们在老师的指导下,用小旗帜标记出他们认为有地雷的位置,并逐渐揭开没有地雷的位置。

3.2 游戏实践效果通过《扫雷》游戏实践,我们发现幼儿们在游戏中展现出了较强的观察力和逻辑推理能力。

他们能够根据已知信息做出判断,并在游戏中不断尝试,提高了他们的空间想象能力和解决问题的能力。

4. 总结通过对《扫雷》教学实践及游戏报告的深度和广度探讨,我们可以看到,《扫雷》作为一款益智游戏,确实对幼儿的能力培养有着积极的促进作用。

在今后的教学实践中,我们应该充分发挥益智游戏在幼儿教育中的作用,为幼儿的个性发展和综合能力的培养提供更多的可能性。

5. 个人观点和理解在我看来,《扫雷》这款益智游戏能够很好地锻炼幼儿的观察力和逻辑推理能力,同时也能够培养幼儿的耐心和解决问题的能力。

我认为在幼儿园教学中,引入类似的益智游戏是非常有益的。

结语通过本文的撰写,希望能够对幼儿园教师及家长们对《扫雷》益智游戏有更深入的了解,并帮助他们更好地教育和培养孩子。

希望本文的内容能够为读者带来一些启发和帮助。

java_扫雷游戏课程设计报告(共5篇)

java_扫雷游戏课程设计报告(共5篇)第一篇:java_扫雷游戏课程设计报告一、设计任务与要求扫雷游戏的基本要求Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。

本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。

具体要求如下:(1)扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。

单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。

(2)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。

(3)用户要揭开某个方块,可单击它。

若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。

(4)如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。

用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。

(5)扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。

(6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。

另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。

(7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。

当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。

二、需求分析1、扫雷游戏概述扫雷是一种具有迷惑性的对记忆和推理能力的简单测试,它是长久以来最受欢迎的Windows游戏之一。

游戏目标:找出空方块,同时避免触雷。

2、扫雷的操作方法游戏主区域由很多个方格组成。

使用鼠标随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开。

扫雷游戏程序设计报告

基于WIN32模拟WINDOWS XP扫雷程序设计————作者:JerayLee 课程设计目的与要求:本课程设计是计算机科学与技术专业重要的实践性环节之一,是对本程学习后进行的一次全面而综合的练习。

本次课程设计的目的与任务主要有:1.巩固和加深学生对C和C++语言的基本知识的理解与掌握。

2.掌握C和C++语言编程和调试的基本技能3.运用C和C++语言对程序的简单设计4.掌握程序设计说明文档的能力与技巧5.提高与运用C和C++语言解决能实际问题的能力一、题目描述:自行分析Windows XP系统自带扫雷游戏,查找规则并对主要功能进行模仿程序实现,对于实现过程中出现的bug进行调试解决。

二、使用语言:C和C++ 语言选用C++语言的原因,简而言之主要是因为C++的设计目标,就是要让C++既具有适合于系统程序设计的C语言所具有的可适应性和高效性,又能在其程序组织结构方面具有像其他的语言所支持的程序优势。

这即是说,C++所提供的抽象机制能够被应用于那些对效率和可适应性具有极高要求的程序设计任务之中。

三、编译以及运行环境:编译环境:Microsoft Visual C++ 6.0运行环境:Windows XP或其他兼容兼容系统四、题目分析:经过对游戏的初步分析,扫雷游戏含有如下规则:根据输入的信息,执行相应的挖雷,插旗,疑问标记,自动蔓延开挖等。

挖雷过程由计时器计时,由一个计数器统计插旗后雷的剩余个数。

如果选择了标记功能,那么单机右键会依次对未知点进行插旗,标记,取消插旗与标记。

如果点滴到插旗的如果点击到了未插旗子的雷区,如果是雷,则判定游戏失败,之后对雷区的点击进行屏蔽,不予响应。

如果是疑问标记则像正常区域对待。

如何判断胜利,如果所有的雷都被插旗或者点击后剩余的雷区,五、程序运行流程简介以及流程图:点击程序按默认参数进行初始化,输入,表情对鼠标左右键点击进行变化响应,对于雷区内点击进行规律响应,对雷区点击后果进行统计,判断失败与成功,失败或者成功之后,对于雷区内的输入也就是点击进行屏蔽,对菜单游戏级别、重新开始游戏按钮响应。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二 、概要设计
1.基本功能
扫雷游戏
















图 1 程序基本功能
类名 CMy2_ew
成员函数 leizero( ) Onchuji( )
Onzhongji( ) Ongaoji( ) OnLButtonDown( )
OnRButtonDown( )
OnLButtonUp( ) OnStart() OnTimer( )
{ ······ } pDC->SelectObject(myoldPen2);
CDC Dc; if(Dc.CreateCompatibleDC(pDC)==FALSE) AfxMessageBox("Can't create DC"); Dc.SelectObject(m_anniu[0]); pDC->BitBlt(180,10,160,160,&Dc,0,0,SRCCOPY); for(int a=0;a<m_RowCount;a++) for(int b=0;b<m_ColCount;b++) { if(lei[a][b].weitu==1) { ······ } if(lei[a][b].weitu==2) { ······ } if(lei[a][b].weitu==3) { ······ } if(jieshu==1&&lei[a][b].shumu==-1) { ······ }
如果是雷,按右键时,显示旗子,并减少一个剩下
雷数;如果我们认为那旗子的格子不是雷,按右键,显
示问号,并在剩下雷数加上 1。 松开左键时,显示按钮没有按下的位图;再判断,
如果结束,就要显示失败的位图;如果是在按钮上松开 按钮,即表示我们已经按下了重新开始的按钮,必须调 用重新开始函数 OnStart()。
位的数字在前面加 0.
4.定义新类及添加变量和函数
(1)对于雷,我们是单独定义一个类,这样有利于程序的操作。 class Lei { public:
int weitu; int shumu; }; 上述代码声明了以下变量:int weitu 显示哪一个位图,int shumu 相应位置相应的值 (2)在类 CMy2_1View 中添加变量及函数: class CMy2_1View : public CView { ······ public: int leftnum; int leinum; int jieshu; short second; int secondstart; CBitmap m_Bitmap[12]; CBitmap m_anniu[4]; int m_RowCount; int m_ColCount; Lei lei[50][50]; virtual ~CMy2_1View(); void leizero(); ······ protected: //{{AFX_MSG(CMy2_1View) afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnStart();
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void Onchuji();
初始化游戏
记录游戏所用时间
表 1 类及其函数功能
三、详细设计
1.添加位图 前十二幅是在雷区的,后四幅是按钮。为了便于加载,必须各自保证其连续性。另外,
为什么不添加一个按钮而用位图呢?是因为即使我们添加了按钮也要添加四幅位图! 位图的 ID 号: 按扭位图:30*30 IDB_ANNIU1、IDB_ANNIU 2、IDB_ANNIU3、 IDB_ANNIU4 雷区位图:14*14 ID 号按下图依次为:IDB_BITMAP14。。。。。。IDB_BITMAP25
cs.cy=400; return TRUE;
}
3.画游戏界面 为了用户框重画的需要,当我们的游戏玩了一半后最小化,或是把部分窗口移出屏幕,
或是执行了新的应用程序覆盖了原来的程序时,必须重画。我们调用重画函数,它都要重新 执行 OnDraw(CDC* pDC)函数,那么,此时它就必须把已经显示出来的位图也显示出来。而 开始时雷区位图是不可见的,并不影响界面的初始化。
设计时间 2011/6/27-2011/7/8
设计地点
国际交流中心 212 机房
培养学生综合运用理论知识来分析和解决实际问题的能力、 设计目的 及严谨的科学态度和良好的课程设计习惯。
指导教师评 语
系部教研室 意见
一、调研材料
扫雷游戏是 Windows 操作系统自带的一个小游戏,过去的几年里 Windows 操作系统历经数 次换代,变得越来越庞大、复杂,但扫雷游戏在任何版本的 Windows 操作系统里却依然保持 原貌,而且几乎每个电脑使用者都接触过它,并且深爱着这款小游戏。
} int nOldDC=pDC->SaveDC(); pDC->SetTextColor(RGB(255,0,0)); pDC->SetBkColor(RGB(0,0,0)); CFont font; if(0==font.CreatePointFont(160,"Comic Sans MS")) { AfxMessageBox("Can't Create Font"); } ······
2.调整窗口大小
在类 CMainFrame 中的 PreCreateWindow( )添加代码: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
······· cs.dwExStyle=cs.dwExStyle|WS_EX_TOPMOST; // cs.style=WS_SYSMENU|WS_OVERLAPPED|WS_MINIMIZEBOX;//; cs.cx=440;
afx_msg void Onzhongji();
afx_msg void Ongaoji();
//}}AFX_MSG DECLARE_MESSAGE_MAP()
}; 上述代码声明了以下变量及函数:int leftnum 剩余雷数,int leinum 雷的数目,short
second 计时,int secondstart 开始计时,CBitmap m_Bitmap[12]位图数组,CBitmap m_anniu[4] 按扭位图数组,int m_RowCount 雷区行数,int m_ColCount 雷区列数,Lei lei[50][50]最大雷 区 , void leizero() 显 示 一 个 位 置 周 围 雷 数 为 0 的 区 域 , void OnTimer() 计 时 器 函 数 , void OnLButtonDown( ) 鼠 标 按 下 左 键 函 数 , void OnRButtonDown( ) 鼠 标 按 下 右 键 函 数 , void OnLButtonUp( )鼠标左键松开函数,int OnCreate( )初始化游戏框架函数,void OnStart( )开始 化游戏函数,int OnCreate( )初始化函数。 (3)由于构造函数是程序运行时就执行的,所以,除了对变量赋值之外,我们还可以把游戏的 核心结构即内部数组赋值:先是把全部格子的位图和雷数赋值为0,然后调用随机函数按指定 雷 数 赋 值 为 -1, 最 后 把 不 是 雷 的 格 子 的 雷 数 赋 值 为 相 应 的 值 。 以 下 代 码 中 CTime time=GetCurrentTime( )是获取当前时间,s=time.GetSecond( )是获取秒数,while 循环是以当前 秒数为产生随机算法,同时为了避免一个位置同时算两个雷,只允许当前位置不是雷时赋值 为雷,接着 for 循环是给方格赋值,计算雷数。 CMy2_1View::CMy2_1View() {
}
画 背 景 时 , pDC->FillRect(myrect1,&mybrush1); 取 得 颜 色 刷 并 在 区 域 CRect
myrect1(0,0,1200,800)内填充该颜色;画黑框时,mybrush.CreateSolidBrush(RGB(0,0,0))黑色刷,
pDC->FillRect(myrect,&mybrush)、pDC->FillRect(myrect2,&mybrush)分别取得黑色刷在不同区
CPen mypen2; CPen*myoldPen2; mypen2.CreatePen(PS_SOLID,1,RGB(0,0,0)); myoldPen2=pDC->SelectObject(&mypen2); for(int ii=0;ii<m_RowCount;ii++) for(int jj=0;jj<m_ColCount;jj++)
域涂刷,形成黑框,接着在画黑框右下两边画白线是黑框有立体感;画雷区时,左上角是白
线,右下角是黑线,以显示立体感,然后在两黑框中间位置显示人物脸图按钮,接着是判断
雷区显示什么位图,如果 weitu=1 显示已按下的数字区,如果 weitu=2 显示旗,如果 weitu=3 显示问号,如果 jieshu==1&&lei[a][b].shumu==-1 则结束,最后是显示黑框中的数字,不够三
相关文档
最新文档