扫雷程序设计答辩
8班—杨治法
展示流程
1
游
戏
规
则
2
设
计
思
想
3
代
码
实
现
4
运
行
结
果
5
小
结
游
戏
规
则
扫雷的规则是尽快找到雷区中的所有不是地雷的
格子,而不许踩到地雷。点开的数字是几,则说
明该数字旁边的8个位置中有几个雷,如果挖开
的是地雷,则会输掉游戏。
第一步,使用二维数组表示地雷阵;
第二步,定位光标;
第三步,随机生成若干个地雷;
第四步,输入坐标翻开方块;
第五步,判断是否有雷;
第六步,当方格为雷的情况,游戏结束;若无雷,继续输入坐标;
第七步,判断玩家是否扫雷成功;
Ps:第一步地图的大小和第三步地雷的数量是我们自己给定的,可以任意修
改,计算非雷区方格点开后的数字就把这个方格在二维数组中周围八个方向
的方格是否是地雷都检查一遍,要注意不要越出数组边界。
设
计
思
想
扫雷程序
使用二维数组表示地雷阵
定位光标
(int x,int y)
随机生成若干个地雷并且随机放入方块中
(定义地雷数bombNumber)
流
程
图
循环
no
玩家是否
扫雷成功
yes
玩家输入坐标翻开方块,回车
no
是否为数字0?
no
是否是地雷
yes
游戏结束显示
地雷位置
yes
自动翻开周围8个方
块无雷的方块
程
序
分
功
能
流
程
图
显示界面
自定义显示界面函数int xianshi(char show[hang][lie]){}
用for()循环分别打出x轴和y轴
然后输出每行每列的* 调用show[i][j]=‘*’;函数
输入坐标,printf("请输入行和列\n");
scanf("%d%d",&x,&y);
判断输入的坐标是否是雷用X代表雷
if(lei[x][y]=='X'){//判断你输入的位置是否是雷
no
yes
输出printf("Game Over\n");
程
序
分
功
能
流
程
图
布雷
自定义布雷函数int setLei(char lei[hang][lie]){}
定义雷的数量int bombnumber=10
在while()循环中用rand()函数随机分布10个地雷在方阵中
产生两个随机数作为地雷的坐标,将此坐标变成雷的位置
布雷功能完成
程
序
分
功
能
流
程
图
判断已经显示坐标周围雷的个数
自定义一个计算周围雷个数的函数
int getNum(char lei[hang][lie]+,int x,int y) {}
用if()语句判断已显示坐标上下左右,左下
左上右上右下角是否有雷如果有雷,雷的量加1
判断结束后
返回雷的数量
Return num