作业帮 > 综合 > 作业

C语言编一个9*9的扫雷游戏程序,跟网上那些不一样,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2020/02/29 20:27:36
C语言编一个9*9的扫雷游戏程序,跟网上那些不一样,
数组的使用
实验目的:
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各格子,该过程递归进行,注意递归结束的条件.
太复杂,我分成几部分试着做一下首先是画棋盘,定义两个二维数组来表示每个棋子的状态和棋子周围的雷数,用于显示.
//画棋盘 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;
}
再问: 这个不完全啊!!
再答: 贴代码太复杂了,我贴图片吧
把邮箱给我我把代码发给你,这里贴代码太不方便结果: