1. 程序的菜单编写
首先我们需要编写一个菜单 将封装好的内容提供给用户选择。
代码如下:>
void menu() {
printf("***************************\n");
printf("******* 1. PLAY *******\n");
printf("******* 0. EXIT *******\n");
printf("******* 2. INFOR *******\n");
printf("***************************\n");
}
2.程序的主体架构
菜单编写完后 我们就应该开始构建程序的主体框架
#include "game.h"
#include"print.h"
int main() {
srand((unsigned int)time(NULL));//游戏中需要用到随机数来生成雷
//这里我们用时间戳来初始化
//我们的随机数生成函数
int input;
do {
menu();
printf("请选择序号:>");
scanf("%d", &input);
switch (input) {
case 1://用户输入1 我们便进入游戏
game();//封装好的游戏模块
break;
case 0://用户输入0 退出
printf("退出游戏\n");
break;
case 2://用户输入2 进入信息菜单(查看规则及其他信息)
INFOR();//分装好的 信息模块
break;
default:
printf("输入错误 重新输入\n");//当用户输入错误是给予提示
}
} while (input);////从相应模块退出后重新选择 (万一玩一把 没过瘾呢?)
return 0;
}
3. 程序***能的封装
.扫雷游戏: game() 函数的封装
.游戏信息; INFOR()函数的封装
[1] 扫雷游戏: game() 函数的封装
———1.game()的主体架构
void game() {
char Board[ROWS][COLS] = { 0 };//布置好雷的信息
char show[ROWS][COLS] = { 0 };//排查出雷的信息
InitBoard(Board, ROWS, COLS, '*');//初始化存放雷(用户看不到)的棋盘
InitBoard(show, ROWS, COLS, '*');//初始化排查雷(用户看到的)的棋盘
printf("请选择游戏难度(1~3):>");//根据用户选择的难度来设定雷的数量
int tmpe;
int nub=0;
do {
scanf("%d", &tmpe);//用tmpe 来存储用户选择的难度
switch (tmpe)//将难度转变成后面布置雷的个数
{
case 1:
nub = 10;
break;
case 2:
nub = 15;
break;
case 3:
nub = 20;
break;
default:
printf("输入错误,重新输入:>");//难度选择错误时给予提示
break;
}
} while (tmpe != 1 && tmpe != 3 && tmpe != 2);
SetMine(Board, ROW, COL, nub);
DisplayBoard(show, ROW, COL);
char Result=FindMine(Board, show, ROW, COL,nub);
switch (Result) {
case 'F':
SleepPrint("你被炸死了");
for (int i = 0; i < 3; i++) {
printf(".");
Sleep(600);
}
printf("\n");
DisplayBoard(Board, ROW, COL);
break;
case'W':
SleepPrint("你赢了");
for (int i = 0; i < 3; i++) {
printf("!");
Sleep(600);
}
printf("\n");
DisplayBoard(Board, ROW, COL);
}
}