C语言扫雷小程序概要设计

上传人:zw****58 文档编号:40989537 上传时间:2018-05-27 格式:DOCX 页数:7 大小:21.99KB
返回 下载 相关 举报
C语言扫雷小程序概要设计_第1页
第1页 / 共7页
C语言扫雷小程序概要设计_第2页
第2页 / 共7页
C语言扫雷小程序概要设计_第3页
第3页 / 共7页
C语言扫雷小程序概要设计_第4页
第4页 / 共7页
C语言扫雷小程序概要设计_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《C语言扫雷小程序概要设计》由会员分享,可在线阅读,更多相关《C语言扫雷小程序概要设计(7页珍藏版)》请在金锄头文库上搜索。

1、C 语言扫雷小程序概要设计语言扫雷小程序概要设计2011-12-06xu_目录目录扫雷小程序概要设计 .1 1.数据结构设计.2 1.1 地雷分布矩阵 Bomb.2 1.2 周边地雷计数矩阵 Count.2 1.3 显示矩阵 Display.3 2.主要函数设计.3 2.1 void displayGrids() .3 2.2 void initBomb() .3 2.3 void initCount().4 2.4 void initDisplay().4 2.5 void init().4 2.6 void digGrid(int x, int y).5 2.7 void signGrid

2、(int x, int y).5 2.8 int checkGameState().5 2.9 void main().51.数据结构设计数据结构设计使用三个二维数组(可以改成动态分配大小的数组,这里固定大小) int Bomb1010 = 0;/地雷分布矩阵 int Count1010 = 0;/周边地雷计数矩阵 char Display1010 = 0;/显示字符的矩阵1.1 地雷分布矩阵地雷分布矩阵 BombBomb1010表示格子的哪个位置上有雷,如下图矩阵,Bomb33 = 1 和 Bomb44=1 则说明这两个位置有雷。可以使用随机数函数生成随机数 x 和 y,然后在 Bombxy

3、的位置 上布雷。00000000000000000000000000000000010000000000100000000000000000000000000000000000000000000000000000001.2 周边地雷计数矩阵周边地雷计数矩阵 CountCount1010表示每个格子周围的地雷总数,根据 Bomb 数组可以计算出 Count 数组的取值。 下面是(1)中 Bomb 矩阵对应的 Count 矩阵000000000000000000000011100000001121000000121100000001110000000000000000000000000000000

4、00000000000001.3 显示矩阵显示矩阵 DisplayDisplay1010表示格子的每个位置上应该显示什么符号,这是一个字符二维数组,根据每 次挖开的位置,以及 Count 数组和 Bomb 数组计算得出。 例如,可以定义几个字符作为该数组的取值: # 表示格子未翻开时的显示 18 表示翻开格子后没有雷,字符显示的周边雷数 * 表示翻开格子后有雷的显示 (空格)表示翻开格子后周边没有雷时的显示 !表示该位置被标识的显示2.主要函数设计主要函数设计2.1 void displayGrids()功能:在屏幕上显示当前的格子矩阵 设计: void displayGrids() 二层循环

5、,遍历 Display 数组 printf(Displayij); 如果一行结束 printf(“rn”); 2.2 void initBomb()功能:初始化 Bomb 矩阵,随机布雷 设计 void initBomb() while(i雷的总数) 随机生成 x, y 如果 x,y 的位置已经有雷 continue; Bombxy = 1; i+; 2.3 void initCount()功能:根据 Bomb 矩阵,初始化 Count 矩阵 设计:void initCount() 二层循环,遍历 Bomb 如果 Bomb 的(i, j)位置有雷 for( (m, n) 是 (i, j) 周围

6、的 8 个格子) Countmn +; 2.4 void initDisplay()功能:初始化显示矩阵 设计: 数组初始化成 #2.5 void init()功能:发起各矩阵的初始化,在开始时调用 设计: void init() initBomb(); initCount(); initDisplay(); 2.6 void digGrid(int x, int y)功能:挖开一个指定坐标的格子 参数: x 矩阵的行坐标 y 矩阵的列坐标 void digGrid(int x, int y) 如果 Bombxy位置有雷 Displayxy = *否则如果 Countxy是 0 递归的翻开(x

7、,y)周围的格子 否则 根据 Countxy的取值给 Displayxy赋值 2.7 void signGrid(int x, int y)功能:标识一个指定坐标的格子 参数: x 矩阵的行坐标 y 矩阵的列坐标2.8 int checkGameState()功能:检查所有的格子,看游戏是否结束 返回值: 1 表示成功结束 2 表示失败结束 0 表示游戏继续 自己设计2.9 void main()功能:主函数 设计: void main() 初始化各矩阵 init() 显示格子矩阵 displayGrids()循环等待用户输入 提示用户输入操作字符; switch(输入的操作字符) case 挖雷操作: 提示,输入坐标 x, y;digGrid(x, y);break;case 标识操作 case 退出操作 显示矩阵 displayGrids() 获得状态 checkGameState()如果成功结束 则打印提示信息,退出 如果失败结束 则打印提示信息,退出 如果未结束 则继续循环

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

当前位置:首页 > 高等教育 > 教育学

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