目录
一.需求
- 使用C语言实现
- 玩完一局可以继续玩
- 输入坐标来进行扫雷
- 雷盘大小为9*9,盘中有10个雷,全部排出即为成功
- 踩到雷即结束游戏,并展示盘中布置的雷的位置信息
- 雷盘上要有坐标轴,以便玩家输入坐标
- 排查过的位置要展示出以他为中心的九宫格内的雷的个数
二.基本思路(实现逻辑)
- 打印菜单选择开始游戏或者退出游戏
- 开始游戏后创建雷盘(分为展示出来的雷盘和布置好雷的雷盘两个)并初始化
- 打印雷盘(展示出的雷盘)
- 输入坐标进行排雷
- 读取坐标,确认是否踩到雷,如踩到则返回步骤1
- 如未踩到雷则以输入坐标为中心排查九宫格内雷的个数
- 把雷全部排完即结束游戏并返回步骤一
三.多文件
关于多文件的内容可以参考这篇文章,在这里我就不多赘述了,文件分配和文中的三子棋也是一样的
四.代码实现(只展示修改部分)
1.打印菜单并进行选择
test.c
#include "game.h"
void menu()
{
printf("**********************\n");
printf("****** 1. play *****\n");
printf("****** 0. exit *****\n");
printf("**********************\n");
}
void test()
{
int input = 0;
do
{
menu();
printf("请选择是否开始游戏:\n");
scanf("%d", &input);
switch (input)
{
case 0:
printf("退出游戏!\n");
break;
case 1:
printf("开始游戏\n");
game();
break;
default:
printf("输入错误,请重新选择:\n");
break;
}
} while (input);
}
int main()
{
test();
return 0;
}
game.h
#include <stdio.h>
2. 初始化
test.c
void game()
{
char show[ROW][COL] = {
0};//存放排查出的雷的信息
char mine[ROW][COL] = {
0};//存放布置好的雷的信息
InitBoard(show, ROW, COL,'*');
InitBoard(mine, ROW, COL,'0');
}
game.h
#define ROW 11
#define COL 11
void InitBoard(char board[ROW][COL],int row,int col,char set);
game.c
#include "game.h"