简单版扫雷的主要逻辑:
第一组n*n的表格中随机设定一些表格放字符1代表有雷,其他表格都放字符0代表没有雷。即布置雷的字符数组
第二组n*n的表格中都填字符*表示未知字符,此表格中实际应该有的字符对应第一组表格中有相同坐标的字符。即玩家排查雷的字符数组
给玩家展示的是第二组表格,然后让玩家猜坐标,输入一个坐标可以得到这个坐标周围八个格子共有几个雷,当输入的某一个坐标刚好是雷时,游戏失败,系统向玩家展示各个雷的位置。玩家需要根据这个坐标周围有几个雷推出哪个坐标可能没有雷,一个个排雷,当排的坐标都不是雷,其余的坐标都是雷时,游戏通关。
代码由test.c,game.h,game.c构成
(一)游戏的总结构
#include "game.h"
void menu()//打印菜单
{
printf("****************************\n");
printf("******** 1.play ********\n");
printf("******** 0.exit ********\n");
printf("****************************\n");
}
void game()
{ //mine数组是专门存放布置好的雷的信息
char mine[ROWS][COLS] = { 0 };
//show数组是专门存放排查出的雷的信息
char show[ROWS][COLS] = { 0 };
InitBoard(mine, ROWS, COLS,'0');//初始化字符数组
InitBoard(show, ROWS, COLS,'*');
//布置雷
SetMine(mine,ROW,COL);
//DisplayBoard(mine, ROW, COL);//测试布置雷的程序是否正确时,
//可以不屏蔽此代码来确定雷是否已布置好
//打印棋盘
DisplayBoard(show, ROW, COL);//向玩家展