目录
从零开始介绍扫雷游戏的思路及写法。
我使用的软件是Visual Studio 2022。先建立3个文件分别为
1.搭建结构
2.分析
我们先从简单版(9 * 9)扫雷入手
1.布置雷(随机)
2.开始扫雷
踩到雷,炸死(游戏结束,回到主菜单)
否则,当前坐标显示周围八个坐标中雷的个数
存放雷的数组:数组中当没有雷的就存放 ' 0 '。
排查出的雷的信息:没有排查过的位置全部都是 ' * '。
3.开始布局
创建好两个数组后,开始初始化,为观察棋盘效果,我们先把棋盘打印出来(后面要注释)。棋盘打印出来后,我们把坐标的行号和列号也一起打印出来。
test.c 文件
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include "game.h"
//打印菜单
void menu()
{
printf("****************************\n");
printf("********** 1 .play *********\n");
printf("********** 0 .eixt *********\n");
printf("****************************\n");
}
//整个游戏的逻辑
void game()
{
// ROWS COLS 使用这种方法定义变量让代码更加灵活
char mine[ROWS][COLS] = { 0 };//存放布置好雷的信息
char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息并显示
//初始化棋盘
InitBorad(mine, ROWS, COLS,'0');//这里定义字符传过去,可提高代码的灵活性
InitBorad(show, ROWS, COLS,'*');//同上
//打印棋盘
DisplayBorad(mine, ROW, COL);
DisplayBorad(show, ROW, COL);
}
int main()
{
int input = 0;
do
{
//首先打印菜单
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择有误,请重新输入\n");
break;
}
} while (input);
return 0;
}
game.h 文件
#pragma once
#define ROW 9
#define COL 9
#define ROWS ROW + 2
#define COLS COL + 2
//初始化棋盘
void InitBorad(char borad[ROWS][COLS], int row, int col, char set);
//打印棋盘
void DisplayBorad(char borad[RO