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各格子, 该过程递归进行,注意递归结束的条件。 展开
实验目的:
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各格子, 该过程递归进行,注意递归结束的条件。 展开
3个回答
展开全部
太复杂,我分成几部分试着做一下
首先是画棋盘,定义两个二维数组来表示每个棋子的状态和棋子周围的雷数,用于显示。
//画棋盘 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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询