文章目录
扫雷游戏的逻辑
今天我们要实现的是扫雷游戏,实现9X9的棋盘,

但是值得注意的一点是,当排雷坐标在1 1 的时候该如何知道这个坐标旁边有几个雷呢?(当选择这个坐标时,看其周围8给坐标是否有雷——>(排雷))
为了使在边缘的坐标也可以检测周围8个坐标是否有雷的时候,所以我们的棋盘需要是11X11的

game.h
这里放的是我们的头文件
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
//这里定义的是我的10个雷
#define Easy_count 10
//初始化棋盘
void Initboard(char board[ROWS][COLS], int row, int col,char set);
//打印棋盘
void Displayboard(char board[ROWS][COLS], int row, int col);
//设置雷
void Setmine(char board[ROWS][COLS], int row, int col);
//排雷
void Changemine(char mine[ROWS][COLS],char show[ROWS][COLS], int row, int col);
test.c
游戏菜单
void meum()
{
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,'*');//展示的棋盘
//打印棋盘
Displayboard(show, ROW, COL);
//埋雷
Setmine(mine, ROW, COL);
Displayboard(mine, ROW, COL);
//排雷
Changemine(mine,show, ROW, COL);
}
主函数
int main()
{
int input = 0;
//生成随机数,等会在Setmine()随机放雷
srand((unsigned int)time(NULL));
do
{
meum();
printf("请选择数字:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");

本文详细介绍了一个9x9到11x11扫雷游戏的实现,涉及初始化棋盘、设置雷、计算雷数及周围雷数、简易版和进阶版排雷逻辑,包括标记功能和游戏开始时的炸雷特性。
最低0.47元/天 解锁文章
420

被折叠的 条评论
为什么被折叠?



