void Initmine(char mine[ROW_S][COL_S], int row, int col)
{
int i = 0;
for (i = 0; i < row; i++)
{
int j = 0;
for (j = 0; j < col; j++)
{
mine[i][j] = '0';
}
}
}
void Initshow(char show[ROW_S][COL_S], int row, int col)
{
int i = 0;
for (i = 0; i < row; i++)
{
int j = 0;
for (j = 0; j < col; j++)
show[i][j] = '*';
}
}
void DisplayBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
printf("------扫雷游戏------\n");
for(j=0;j<=col;j++)
printf("%d ", j);
printf("\n");
for (i = 1; i <=row; i++)
{
printf("%d ", i);
for (j = 1; j <=col; j++)
{
printf("%c ",board[row][col]);
}
printf("\n");
}
printf("------扫雷游戏------\n");
}
void Setmine(char board[ROW][COL], int row, int col)
{
int x = 0;
int y = 0;
int count = number_mine;
while (count)
{
x = rand() % row+ 1;
y = rand() % col + 1;
if (board[x][y] == '0')
{
board[x][y] = '1';
count--;
}
}
}
void game()
{
char mine[ROW_S][COL_S] = { 0 };
char show[ROW_S][COL_S] = { 0 };
//初始化
Initmine(mine, ROW_S, COL_S);
Initshow(show,ROW_S,COL_S);
Setmine(mine, ROW, COL);
DisplayBoard(mine, ROW, COL);
//DisplayBoard(show,ROW+1,COL+1);
}
c语言扫雷游戏为什么我这个setmine在放置雷以后,出了这个函数,雷就消失了
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注【相关推荐】
- 这篇博客: 【C语言实现小游戏篇】我接触的第一款电脑游戏,你可以永远相信 “ 扫雷 ” 。[ C语言实现 ] [ 超详细,超清楚 ] [ 有代码 ]中的 SetMine(); 🔎 布置雷的函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
void SetMine(char mine[ROWS][COLS], int row, int col) //随机 在雷盘中 布置雷 {//布置雷的函数 传参 二维数组(雷)、行、列 int count = MINE_NUM; //需要布置的雷的个数 while (count) { int x = rand() % row + 1; //生成随机行坐标 int y = rand() % col + 1; //生成随机列坐标 //rand() 函数可以生成一个随机数 对行或者列 求余就可以,生成一个合法(1 <= x,y <= row)的坐标 //rand() 函数使用前,需要用 srand() 函数通过 参数改变系统提供的种子值,从而可以使得每次调用rand函数生成的值随机 if (mine[x][y] == '0') { mine[x][y] = '1'; //数组内存入 '1',即此处为 雷 count--; } } }💡如果将布置好雷的雷盘打印出来,就会是这样💡

( 0 为无雷,1 为有雷)
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报- 这篇博客: 【C语言实现小游戏篇】我接触的第一款电脑游戏,你可以永远相信 “ 扫雷 ” 。[ C语言实现 ] [ 超详细,超清楚 ] [ 有代码 ]中的 SetMine(); 🔎 布置雷的函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读: