创建文件
创建三个文件俩个源文件,一个头文件
源文件test.c(用来实现游戏函数的)
源文件game.c(也用来实现游戏函数)
头文件game.h(用来声明函数)
为什么用两个test.c文件呢?
原因:多个.c文件利于代码的重复利用、模块化编程,保持每个文件中代码不过长,利于调试,可分段优化编译等
万能游戏菜单模板
代码图片演示
test.c(测试游戏函数)
void menu()
{
printf("**********************************\n");
printf("***********1.play*****************\n");
printf("***********0.exit*****************\n");
printf("**********************************\n");
}
int main()
{
int input; //定义一个整型变量用来存放用户输入的值
while (1) //while(1)意思为死循环
{
menu(); // 进入菜单界面
printf("请选择:"); //让用户选择
scanf("%d", &input); //用户进行选择
switch (input) // 判断用户的选择满足下列哪个条件
{
case 1:
printf("扫雷游戏:\n");
game();
break;// 若用户选择1,打印出扫雷游戏字样,并进入game()游戏函数,当游戏结束后,break自动跳出while(1)循环
case 0:
printf("退出菜单");
break; //用户输入0,则退出菜单 ,并跳出break
default:// 当用户选择不是0和1,告诉用户输入有误,并让他重新输入
printf("输入错误请重新输入:");
}
return 0;
}
game.c(实现游戏函数)
#include"game.h"
game.h(用来声明函数)
#include<stdio.h>
创建游戏
代码图片演示
test.c(源代码的基础上加上
void game()
{
char board[ROWS][COLS] = {
0 };//***第一个数组用来放雷***
char mine[ROWS][COLS] = {
0 };***//第二个数组用来找雷***
}
game.c(无)
game.h(用来声明函数的)
#define ROW 9 //**由于是9x9的棋盘,我们要建立一个11x11的二维数组**
#define COL 9 // **防止最边上的坐标在计算周围雷个数的时候发生越界,**
#define COLS COL+2 //**也就是说我们建立一个11x11的二维数组,但实际只用到9个**
#define ROWS ROW+2
游戏赋值
按照什么赋值?
我们规定:0代表没有雷,1代表有雷,当用户选择完之后我们应显示一张棋盘且不能让用户看到我们的雷布置在哪,所以我们用*来给雷“穿上外套”。像下图这样用户选择完后,看不到哪里是雷
代码图片演示
test.c (void game)
Itnboard(board, ROWS, COLS, '0');
Itnboard(mine, ROWS, COLS, '*');
game.c
Itnboard(char board[ROWS][COLS], int rows, int cols, char set)
{
int i;
int j