一.思路
设计两个二维数组(mine和show),mine用来存放布置雷的信息,show用来存放排查雷的信息。
mine数组初始化为'0',布置雷时改为'1';
show数组初始化为'*',排除雷后改为数字字符(周围有几个雷就为数字几);
二.game函数
先设计两个数组,数组的行和列要比游戏空间多2;因为要在周围标注上第几行和第几列;防止出现溢出;之后再布置雷,打印棋盘,再排雷
三.初始化棋盘
将两个数组初始化为对应的set值。
四.打印棋盘
首先打印出行数,因为要打印出列号再在每一行之前打印出行号;打印行号时从0开始打印,否则后果如下
五.布置雷
设定布置雷的格数(EASY_COUNT),利用循环语句将i和j设置为随机值,但是随机值的范围为1到9,rand函数生成了随机数以后要对行数和列数取余(此时范围为0到8)并且加一。
六.排雷
利用循环输入排雷坐标,横坐标大于等于1小于等于row, 纵坐标大于等于1小于等于col,先判断此位置是否未被排查(坐标为‘*’),若已被排查输出“此位置已被排查”,若未被排查判断在mine数组的位置上是否为‘1’;若是则输出“你被咋死啦”并结束循环;若不为‘1’,用et_mine_count() 函数计算出该位置周围的雷的个数;并替换show数组中对应的值(计算出的结果要加上‘0’,因为show是字符数组);同时win加一,若win的数量等于雷的数量则游戏胜利。
七.get_mine_count函数
返回mine数组传入位置周围的8个位置的值的和,并减去8*‘0’。
八.main函数
用do-while循环若输入1则进行游戏0则退出,其他数则是输入错误。