下载此文档

C语言程序设计扫雷游戏.docx


文档分类:IT计算机 | 页数:约41页 举报非法文档有奖
1/41
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/41 下载此文档
文档列表 文档介绍
该【C语言程序设计扫雷游戏 】是由【286919636】上传分享,文档一共【41】页,该文档可以免费在线阅读,需要了解更多关于【C语言程序设计扫雷游戏 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C语言程序设计报告
题目: 扫雷小游戏设计

电子通信与物理学院
日期: 2018 年 7 月 12 日
指导教师评语
目录
1. 课程设计内容 1
2. 课程设计目的 1
3. 背景知识 1
4. 工具/准备工作 3
5. 设计步骤、方法 3
3
4
5
6. 设计结果及分析 11
7. 设计结论 16
8. 参考文献 17
附录 17
1
1. 课程设计内容
在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活的一分,越来越多的人使用计算机办公、娱乐等等。
扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。我利用C-free编写了与它功能相仿的挖地雷游戏,寓学于乐。
即:设计一个功能与Windows中的挖雷游戏相同的小游戏。
2. 课程设计目的
1.培养学生综合运用所学知识独立完成课题的能力。
2.试学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 3.提高对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
4.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
5.培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核
2
3. 背景知识
游戏区包括雷区、地雷计数器(位于左上角,记录剩余地雷数)和计时器(位于右上角,记录游戏时间),确定大小的矩形雷区中随机布置一定数量的地雷(初级为9*9个方块10个雷,中级为16*16个方块40个雷,高级为16*30个方块99个雷,自定义级别可以自己设定雷区大小和雷数,但是雷区大小不能超过24*30),玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷 。
游戏的基本操作包括左键单击(Left Click)、右键单击(Right Click)、双击(Chording)三种。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断,或为接下来的双击做准备;双击在一个数字周围的地雷标记完时,相当于对数字周围未打开的方块均进行一次左键单击操作:
左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。
双击:同时按下左键和右键完成双击。当双击位置周围已标记雷数等于该位置数字时操作有效,相当于对该数字周围未打开的方块均进行一次左键单击操作。地雷未标记完全时使用双击无效。若数字周围有标错的地雷,则游戏结束,标错的地雷上会显示一个“ ×”(见下图)
扫雷的设计原理:
扫雷游戏分为几个步骤:
第一步,使用二维数组表示地图;
第二步,随机生成几个地雷;
第三步,点击方格的反应,计算每个非雷区方格点开后的数字;
3
第四步,当方格数字为0的情况;
第五步,当方格为地雷的情况。
第一步地图的大小和第二步地雷的数量都应该是程序中给定的,或者玩家输入的。这个是多少自己决定吧。第三步,计算非雷区方格点开后的数字就把这个方格在二维数组中周围八个方向的方格是否是地雷都检查一遍,一定要注意不要越出数组边界。这个数字可以在游戏初始化时全都计算好,也可以在玩家点击的时候再计算。点击非雷区方格,显示数字,这个方格标记为“已点过”。第四步,当方格数字为0时,这里要用到递归调用,就是让程序自动“点击”这个数字为0方格周围的八个方格,然后再看结果,如果不是0,就停止,如果是0,依然递归调用,直到没有0为止,或者直到点遍所有方格为止,一定要注意不要越出数组边界。第五步,很简单,宣布玩家死亡就可以了。
4. 准备工作
查阅相关资料,了解扫雷的的玩法,了解扫雷的设计思想方法。借鉴他人写过的程序,从中找到突破口。从程序中了解需要的各种函数准备,再进一步获悉该函数的功能与使用方法。
对自己要设计的挖地雷游戏进行功能分析,大致如下:
总体游戏过程分析:在屏幕上显示一个游戏界面,雷区范围内预先埋设了一定数量的随机分布的地雷(用数字9代替地雷);玩家通过从键盘中输入(行数X,列数Y)↙进行点击;若能点中所有非雷区,则游戏胜利;否则踩雷,游戏失败。 简易版扫雷游戏要具备以下功能:
1)开局:首先选择游戏等级,然后生成不同等级的雷区界面。游戏等级分
为三级:各等级行列数为———:简单:10×10、普通:15×15、困难:20×20;雷区每个*号下面或埋藏有1个地雷,或者没有地雷;
4
2)挖雷:从键盘中输入(行数X,列数Y),并按回车键,可挖开它;若所揭方块下有9,则踩雷,此时所有含地雷的块都出现9,该局游戏失败;如果方块上出现数字,它代表 在它周围的8个方块中共有多少颗地雷;
3) 输入:通过键盘输入相关指示信息;
4) 输出:提示游戏失败,是否继续再来一遍;
5. 设计步骤、方法
,写出主程序的基本框架,确定各子模块名字和参数。具体的函数流程如图5-3 所示:
定义使用到的常数、全局变量、函数原型说明。然后初始化图形系统,调用游戏控制函数,游戏只接受键盘,通过鼠标结束游戏,关闭系统,退出游戏。
主控模块的各子模块说明:
void InitialValue_game( )用于棋盘初始化;
InitialMine_game( )用于棋盘的随机布雷;
void print_game( )用于打印棋盘;
int judge_game( )用于判断游戏是否结束;
int openmap( )用于点开地图;
5

#include <>
#include ""
#include""
# define s 20
int x; /*棋盘行数*/
int y; /*棋盘列数*/
int b; /*选择游戏难度 1简单2普通3困难4 自定义*/
int h; /*雷的个数*/
struct Games g;
struct Games
{
int game_int[s][s];
char game_char[s][s];
};
使用结构体数组来完成棋盘的定义,引用时间头文件来完成对随机布雷的随时性。

6
void InitialValue_game(struct Games *g)
{
int i,j;
for(i=0; i<x; i++)
{
for(j=0; j<y; j++)
{
(*g).game_int[i][j]=0;
(*g).game_char[i][j]='*';
}
}
}
InitialMine_game(struct Games *g)
{
int i,j,next1,next2;
int sum=0;

C语言程序设计扫雷游戏 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数41
  • 收藏数0 收藏
  • 顶次数0
  • 上传人286919636
  • 文件大小152 KB
  • 时间2025-02-06