C语言编一个9*9的扫雷游戏程序,跟网上那些不一样,求大神给个正确的答案

实验题目:数组的使用实验目的:1)掌握数组的定义与使用;2)掌握函数的使用;3)掌握随机函数的使用;4)掌握递归方法的使用;实验内容:实现字符界面下的地雷游戏具体要求:1... 实验题目:数组的使用
实验目的:
1)掌握数组的定义与使用;
2)掌握函数的使用;
3)掌握随机函数的使用;
4)掌握递归方法的使用;
实验内容:

实现字符界面下的地雷游戏

具体要求:
 1)利用二维数组(9*9)存储整个游戏界面,采用‘*’表示地雷,每次游戏开始需要进行随机布雷;
 2)游戏时,通过输入希望打开格子的行号和列号;
 3)对于没有打开的各自使用字符‘#’,表示未打开;
 4)对于已经打开的格子若没有地雷,在该格子中显示周围有多少个地雷;
5)源程序压缩以后提交。命名方式:学号专业班级序号.rar

实验指导:
1.布雷;
1)如何表示地雷:定义数组 mine[9][9]={0};
2)如何布雷:一个地雷的设置:
Row=rand()%9;
Col=rand()%9;
ming[Row][Col]=‘*’;
避免重复布雷;
3)计算无地雷格子的周围的地雷数:
普通情况,为周围8格;
特殊情况(边,角),注意数组朝界;
2.表示游戏状态
1)设置表示游戏状态的数组,game[9][9]={0}
1
表示格子格子已经打开;
0 表示没有打开;
2)显示当前状态
定义一个函数用于输出当前状态;该函数需要控
制每行输出9次,共输出9次
根据game中元素的值选择输出结果:
首先测试格子是否已经打开;
若打开判定该格子是否是地雷
3 游戏过程
1)游戏开始后输入希望打开格子的行号和列号;
2)判定指定格子是否是地雷:
若是地雷,游戏结束;
不是地雷,显示该格子周围的8个格子;
若格子中地雷数为0,展开该格子周围8个格子:
分为三种情况:
有雷的格子:保持原样;
无地雷但非0的格子,显示数字;
无地雷但为0的格子,显示0,并展开该格子周围8各格子, 该过程递归进行,注意递归结束的条件。
展开
 我来答
yb0319
推荐于2016-12-01 · TA获得超过188个赞
知道小有建树答主
回答量:590
采纳率:0%
帮助的人:284万
展开全部

太复杂,我分成几部分试着做一下

首先是画棋盘,定义两个二维数组来表示每个棋子的状态和棋子周围的雷数,用于显示。

//画棋盘 a表示棋子是否已被翻开,b表示附近的雷数
bool MakeMap(bool a[9][9],int b[9][9])
{
    int i=0,j=0;
    for(i=0;i<9;i++)
    {
        for(j=0;j<9;j++)
        {
            if(a[i][j]) printf("%d ",b[i][j]);
            else printf("# ");
        }
        printf("\n");
    }
    return true;
}
追问
这个不完全啊!!
追答

贴代码太复杂了,我贴图片吧

把邮箱给我我把代码发给你,这里贴代码太不方便

结果:

匿名用户
2013-05-05
展开全部
这...不明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenweitiang
2013-05-05 · TA获得超过118个赞
知道答主
回答量:173
采纳率:0%
帮助的人:79.7万
展开全部
确实有难度,这个不好弄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式