C语言程序设计课程设计(论文)-扫地雷游戏1

上传人:飞*** 文档编号:2571547 上传时间:2017-07-25 格式:DOC 页数:18 大小:215KB
返回 下载 相关 举报
C语言程序设计课程设计(论文)-扫地雷游戏1_第1页
第1页 / 共18页
C语言程序设计课程设计(论文)-扫地雷游戏1_第2页
第2页 / 共18页
C语言程序设计课程设计(论文)-扫地雷游戏1_第3页
第3页 / 共18页
C语言程序设计课程设计(论文)-扫地雷游戏1_第4页
第4页 / 共18页
C语言程序设计课程设计(论文)-扫地雷游戏1_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言程序设计课程设计(论文)-扫地雷游戏1》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计(论文)-扫地雷游戏1(18页珍藏版)》请在金锄头文库上搜索。

1、辽 宁 工 业 大 学C 语言程序设计 课程设计(论文)题目: 扫地雷游戏 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 2009.12.14 至 2009.12.26 课程设计(报告)任务及评语院(系): 教研室:学 号 学生姓名 专业班级程序设计(报告)题目扫地雷游戏程序设计(报告)任务程序设计的任务与要求:(1)掌握 C 语言编程的基础知识。(2)较熟练地编写 C 语言应用程序。(3)了解 C 语言的常用标准函数、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及

2、动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 12 月 31 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第 1 章 课程设计的目的与要求 .11.1 课程设计目的 .11.2 课程设计的实验环境 .11.3 课程设计的预备知识 .11.4 课程设计要求 .1第 2 章 课程设计内容 .22.1 程序功能介绍

3、 .22.2 程序整体设计说明 .22.2.1 设计思路 .22.2.2 数据结构设计及用法说明 .32.2.3 程序结构 .42.2.4 各模块的功能及程序说明 .42.2.5 程序结果 .52.3 程序源代码及注释 .5第 3 章 课程设计总结 .14参考资料 .15辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)1第 1 章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(C) 课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对 C 语言课程的基本知识的理解和掌握 2. 掌

4、握 C 语言编程和程序调试的基本技能 3. 利用 C 语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用 C 语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行 Windows 2000/XP 操作系统的微机系统。C 语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉 C 语言及 C 语言开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)2第 2 章 课

5、程设计内容2.1 程序功能介绍扫地雷是一个广泛游戏,扫雷的游戏规则:扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。当鼠标点击到棋盘范围外时,视为无效,无响应。游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的 8 个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有 0 颗雷,则其周围格子自动打开;如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一个已打开格子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键打开其周围剩余的无雷格。扫雷可以充分锻炼你的逻辑思维能力、

6、抽象思维能力、想象力、判断力、反应速度。2.2 程序整体设计说明2.2.1 设计思路首先我们在雷区上随机地放上雷,没有雷的地方被点击后就会显示一个数字表示它周围有几个雷,这是怎么实现的呢?我们可以把整个雷区看成一个二维数组 ai,j,如雷区: 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 我要知道 a34周围有几个雷,就只有去检测 a23,a24,a25 a33, a35 a43,a44,a45 辽 宁

7、 工 业 大 学 课 程 设 计 说 明 书(论 文)3这 8 个雷区是否放上了雷,仔细观察它们成在数学关系。 抽象出来就是:ai,j的雷的个数就是由 ai-1,j-1,ai-1,j,ai-1,j+1 a i ,j-1, a i ,j+1 ai+1,j-1,ai+1,j,ai+1,j+1 (如果超出边界再加以判断) 这样的 8 个雷区决定的。 扫雷程序还会自动展开已确定没有雷的雷区。如果 a3,4周围雷数为 1,a2,3已被标示为地雷,那么 a24,a25,a33,a35,a43 ,a44,a45 将被展开,一直波及到不可确定的雷区。这也是实现的关键。我们可以把数组的元素设定为一个类对象,它们

8、所属的类设定这样的一个事件:在被展开时,检查周围的雷数是否与周围标示出来的雷数相等,如果相等则展开周围未标示的雷区。这样新的雷区展开又触发这个事件,就这样递归下去,一直蔓延到不可展开的雷区。相信在了解以上两个要点后,把雷区这个类编写完全(如添加是否有雷标记,是否展开标记,周围雷数等,双击,左右单击的鼠标事件等) ,实现扫雷程序应是十分简单的一件事。2.2.2 数据结构设计及用法说明 void Close(void) 图形关闭void Control(void) 游戏开始,重新,关闭void DrawEmpty(int i,int j,int mode,int color) 两种空格子的显示vo

9、id DrawRedflag(int i,int j) 显示红旗void DrawSmile(void) 画笑脸void GameBegain(void) 游戏开始画面void GameOver(void) 游戏结束画面void GamePlay(void) 游戏过程void GameWin(void) 显示胜利void Init(void) 图形开始int LeftPress(void) 鼠标左键按下int MineStatistics(int i,int j) 统计每个格子周围的雷数void MouseGetXY(void) 得到当前位置辽 宁 工 业 大 学 课 程 设 计 说 明 书(

10、论 文)4void MouseOff(void) 鼠标光标隐藏void MouseOn(void) 鼠标光标显示void MouseSetXY(int x,int y) 设置当前位置int RightPress(void) 鼠标右键按下int ShowWhite(int i,int j) 显示无雷区的空白部分2.2.3 程序结构图 2.1 扫地雷游戏流程图2.2.4 各模块的功能及程序说明(1)void Control(void):该模块是控制程序的框架,决定是否初始化游戏画面并执行游戏过程,以及是否重新开始游戏或退出。(2)void GameBegain(void):该模块用以初始化游戏画面,调用画图模块、画格子模块等,完成显示笑脸图标、描绘方格棋盘、初始化鼠标位置等任务。(3)void GamePlay(void):该模块完成游戏的主过程,调用递归显示算法,标示红旗,判断失败等任务。(4)int MineStatistics(int i,int j):以单元格的坐标为参数,返回单元格周围的雷的数目。辽 宁 工 业 大 学 课 程 设 计 说

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号