思路创建row和col大小的2个二维数组,一个雷位置,一个用于更新显示棋盘,逻辑如下:
void game(){
char mine[ROWS][COLS] = { 0 }; //初始化雷二维数组
char show[ROWS][COLS] = { 0 }; //显示用的二维数组
int ret = 0;
Init(mine, ROWS, COLS,'0'); //雷初始化
Init(show, ROWS, COLS, '*'); //界面初始化
SetMine(mine, ROW, COL); //设置雷,数量COUNT,mine‘1’为雷 ‘0’为空
do
{
Print(show, ROW, COL); //每次先打印 棋盘
ret = PlayerClick(mine, show, ROW, COL); //点击位置,修改show的值。点击到雷,返回0;点击到空白,显示周围雷数,返回1;点击位置超出棋盘返回2;点击完所有的空白,返回3(每次点击成功count--,来判断)。
if (ret == 0)
{
Print(mine, ROW, COL);
printf("你被炸死了,游戏结束!\n");
break;
}
else if (ret == 3)
{
printf("你已排完所有雷,游戏胜利!\n");
break;
}
} while (ret);
}