《扫雷课程设计报告

湖南文理学院课程设计报告

课程名称: 计算机课程扫地雷设计

院 系: 电气与信息工程学院

专业班级: 通信09102班

学生姓名: 孔启浩

指导教师:

完成时间: 2010.9.27

报告成绩:

扫地雷游戏

扫地雷游戏设计

综述

在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。

扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用Turbo C 编写了与它功能相仿的扫雷游戏,寓学于乐。

一、 应用环境

1.1 硬件环境

一台完整的电脑,包括键盘、鼠标,最小硬盘空间1GHz

1.1 386,486,586及兼容机.640K基本内存;

2.1 1M以上扩充内存,10M以上的显示内存.

2.2 软件环境

开发环境:本系统的设计采用的是C语言1 程序功能

程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时失败。

2.2 程序设计目的

1.培养综合运用所学知识独立完成课题的能力。

2.更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。

3.提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。

4.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

5.培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

6.对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。

三、 程序分析和设计

3.1 游戏规则

设计10×10 格区域,单击鼠标后,该格显示数字,则表示它周围8 个空格内含有的地雷数,周围没有地雷的显示空白,则不能再单击了。如果是地雷,则游戏结束。如果判断是地雷,可以单击鼠标右键标出,显示红旗,要取消红旗标志则再单击鼠标右键,当所有地雷都标出,每个空格都处理过,了则胜利结束。

3.2 游戏界面

游戏初始界面如图5-1 所示 , 游戏中的界面如图5-2 所示。

图5-1 初始状态 图5-2 游戏中

3.3 设计思路

扫雷程序主要用了一个10 行10 列的二维数组表示,数组的每一个元素是结构体类型,结构体中的num 成员代表格内当前处于什么状态,值为1 表示有雷,值为0 表示已经变成空白格或者显示过数字,roundnum 成员统计每个格子周围有多少地雷,flag 变量主要是鼠标右键测试的标志,如果flag 为1 则表示格子显示红旗,这样鼠标左键点在这个格子中将无效。

算法的重点是一开始统计好每个格子周围有多少地雷,然后当鼠标左键点在没地雷的格子上时进行两种判断,如果格子周围没地,雷就先在原来的格子位置显示空白格,然后用递归的方法同样判断周围的8 个格子;如果格子周围有地雷,就在该格子上显示具体的雷数。

在递归判断8 个格子时,如果格子上有雷或者格子已经显示过雷数或者空白格,以及格子上有红旗标志的话,就不再对格子进行任何判断。

具体的函数流程如图5-3 所示

1 main()主函数

定义使用到的常数、全局变量、函数原型说明。然后初始化图形系统,调用游戏控制函数,游戏只接受鼠标操,作按任意键结束游戏,关闭图形系统,程序结束。

2 Control()游戏控制函数

调用函数GameBegin()显示游戏初始界面,调用GamePlay()为具体游戏操作过程,该函数返回有两种可能:一种是正在玩中,提前结束游戏;一种是玩完,要么失败,要么胜利。如果是前者,则重新开始游戏,如果是后者,则判断是否单击了笑脸,是则重新开始,

否则结束程序。

3 GameBegin()画初始界面

这个函数完成初始界面的设计以及随机生成地雷数。初始界面的主要工作是确定图的位置和方格显示的位置。外边框的左上角坐标为(190 ,60),右下角坐标为(390, 2

python 课程设计扫雷报告_《扫雷课程设计报告.doc相关推荐

  1. python基于svm项目+课程设计报告_单片机课程设计教学模式研究

    单片机课程设计教学模式研究 摘要:在分析单片机课程设计现状的基础上,提出将先进的CDIO工程教育理念应用到单片机课程设计教学中,对课程设计的时间安排.选题.组织实施.考核等方面进行改革与创新,构建新的 ...

  2. 单片机8位抢答器实训机电报告_单片机课程设计报告八路抢答器

    单片机课程设计报告八路抢答器 <单片机原理及接口技术 > 课程设计 报告 课题名称 题目 15八路抢答器设计 ★★ 学院 自动控制与机械工程学院 专业 电气工程及其自动化 班级 姓名 学号 ...

  3. 用python写排课系统_大学课程的有效排课

    我目前正在一个网站上工作,该网站将允许我所在大学的学生根据他们想修的课程自动生成有效的课程表. 在网站上工作之前,我决定解决如何有效地安排课程的问题. 一些澄清:我们大学的每门课程 大学)由一个或多个 ...

  4. 交换机的基本配置实验报告_无线网络设计配置即实验报告

    工程师ACK接到一个小型图书馆的网络组建项目,根据目前流行的网络组建以及项目地点的使用需要便捷性,采用AC控制的瘦AP模式.不需要AC来管理网络的AP是胖AP需要单独配置,有多少个AP就要配置多少次. ...

  5. python 推箱子实验开发报告_推箱子实验报告.doc

    推箱子实验报告 青岛大学软件技术学院 游戏制作实践实训 题目名称 推箱子游戏 姓 名 丁帅帅 专 业 数字媒体艺术 班 级 3班 指导教师 解新峰 2014 年 1 月 16 日 目 录 1 引言3 ...

  6. 基于python的网络爬虫开题报告_网络爬虫开题报告.docx

    网络爬虫开题报告 网络爬虫开题报告 篇一:毕设开题报告 及开题报告分析 开题报告如何写 注意点 1.一.对指导教师下达的课题任务的学习与理解 这部分主要是阐述做本课题的重要意义 2.二.阅读文献资料进 ...

  7. python的gui界面 可视化_使用可视化设计窗体的GUI程序

    示例Demo2_1用PyQt5的一些类创建了一个简单的GUI应用程序,窗体及窗体上的标签对象的创建和属性设置都完全由代码完成.显然这种纯代码方式构造UI的方式是比较麻烦的,特别是在窗体上组件比较多.层 ...

  8. dw网页设计期末设计一个网页_《网页设计与制作Dreamweaver》期末考试试题

    <网页设计与制作Dreamweaver>期末考试试题 1<网页设计与制作>期末考试试题一.单项选择题(每个题只有一个的答案是正确的.每题 3 分,共 60 分)1.目前在 In ...

  9. 眼图观测实验报告_眼图观测实验报告.docx

    眼图观测实验报告 武夷学院实验报告 课程名称:通信原理实验项目名称:眼图观测实验 姓名:学号: 实验操作成绩__________实验指导教师签字:__________ 课程 系电子信息与计算机科学系 ...

  10. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述

    晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...

最新文章

  1. android 魅族扫码,魅族Flyme8扫码快传太实用,轻松实现文件高速传输
  2. shellinabox的安装使用
  3. JavaEE进阶知识学习-----SpringCloud(六)Ribbon负载均衡
  4. 如何实现网络负荷分担
  5. jsp 特殊字符转义
  6. pycharm 配置码云(gitee)教程,如何将已有项目push到码云?
  7. 财务软件开发_财务独立对软件开发人员的重要性
  8. mysql insert表名前不写字段_云计算教程分享Mysql技术知识点
  9. 【leetcode】1041. Robot Bounded In Circle
  10. HighTec、S32 Design Studio等编译器如何修改字体大小
  11. matlab 命令打开ANSYS,matlab如何调用ansys
  12. 运用ssis组件实现邮件发送,内容来源于数据库表
  13. 您选择的不是数据库安装目录_您不是您的数据,但您的数据仍然是您
  14. GPS GLONASS数据文件类型解析
  15. 就让这大雨全都落下 - 容祖儿
  16. un9.9:实现上报及上报状态修改功能。
  17. 产品狗观世界:谈装修
  18. 分享100个ASP源代码总有一个是你想要的
  19. 交换机模拟配置软件_GNS3 for mac(网络模拟工具)
  20. 正则表达式—HTML中的匹配

热门文章

  1. Python 分词 第三方模块
  2. mac的obs录制不到全屏
  3. NUCLEO开发板:STM32 st-link驱动程序错误
  4. 游戏手柄延迟测试软件,六款免费网络延迟测试工具
  5. 将16进制的字符串转换为对应的字符
  6. ESP8285 ESP-AT编译流程和操作步骤
  7. GNS3+JunOS
  8. JDK1.8下载、安装和环境配置教程
  9. mysql有rollup函数吗_MySQL-with rollup函数运用
  10. 前端实现在线预览word(docx),pdf,excel类型的文件