“纯C”实现——扫雷游戏(递归实现展开功能)

这篇具有很好参考价值的文章主要介绍了“纯C”实现——扫雷游戏(递归实现展开功能)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

文章目录

📺游戏动画演示

  • 🚀扫雷实现思路
    • 🚀棋盘实现
    • 🚀布置雷实现
    • 🚀玩家扫雷实现
    • 🚀带展开功能的扫雷
    • 🚀小结语

🚗text.c文件
🚗game.h文件
🚗game.c文件


📺游戏动画演示

游戏实现完成的模样:

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

🚀扫雷实现思路

实现扫雷游戏的前提是要知道:>扫雷游戏的玩法(会玩的跳过这步)

扫雷游戏也就是排雷,让玩家点一个坐标,然后显示该坐标周围八个格子有多少个雷

如图所示:

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

如果踩到雷了就游戏结束,如图

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

那如果把全部非雷的位置找了出来那么游戏就胜利!


那么知道了游戏的规则,我们就可以大概知道要实现什么功能了!

还是老规矩,玩之前是不是得要把一个游戏画面打印出来给玩家看着进行排雷,那么游戏没有开始的时候我们的游戏画面该是怎么样的呢,你可以要一些字符来填充,比如“#”,“+”等等,我这就用字符“ * ”表示还没被点的坐标

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

那打印字符前是需要一个数组存放数据,这样子的话二维数组的选择是无可厚非的了!

我们用“ * ”来初始化的数组是用来展示给玩家看的,那么我们是不是还需要一个二维数组,用来存放地雷数据呀!

因为开两个二维数组,这样子才不会混乱,一个用来展示给玩家看,可以理解成前端,一个是用来控制雷的信息,可以理解成后端。

那么下一步,就是怎样去布置雷呢?

记不记得我们之前实现的三子棋游戏,让电脑下棋的时候是不是用随机值进行下棋的,那我们布置雷不也是随机放的吗!

那简直不要太简单,直接让随机值去完成即可

那么最后一步,就是玩家一直输入坐标,然后显示该坐标的周围八个格子有多少个雷,就一直判断玩家是否踩雷了,直至游戏胜利了或者失败!

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

游戏的大概思路知道了!我们就开始层层解剖啦!

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

🚀棋盘实现

实现棋盘我们是不是说过要用二维数组来存放“ * ”表示没有被排过雷的初始状态。

那么二维数组的行列该怎么确定呢?

其实我们也不知道具体要多少,是根据玩家来确定的嘛,玩家想玩20*20,就打印20*20,玩家想玩简单一点的9*9,我们就打印9*9,所以是不是需要一个宏定义来设定行列的大小呢,这样的方便了后续想修改多少行就多少行,多少列就多少列,灵活性就更高了!

#define ROW 10  //实际游戏的行
#define COL 10  //实际游戏的列

#define EASY_COUNT 30  //要布置多少个雷的设置(游戏难度)

//为什么要这样定义,下面排雷的时候会讲,别急
#define ROWS ROW+2 //方便后台处理的行  
#define COLS COL+2//放后台处理的行 

那行列确定好了,是不是就需要初始化数组了,那需要把二维数组传给函数,比如我这里的show数组是展示给玩家看的数组,那是不是需要初始化成“ * ”,这个mine就是存放雷信息的,为了避免和show数组重复我们可以先初始化成字符’0’

	//模拟一下调用函数的过程
	char mine[ROWS][COLS] = { 0 };
	char show[ROWS][COLS] = { 0 };
	//初始化雷的棋盘
	BoardInit(mine, ROWS, COLS, '0');
	//初始化展现的棋盘
	BoardInit(show, ROWS, COLS, '*');
//**************************************************//
void BoardInit(char board[ROWS][COLS], int rows, int cols, char set)
{
	int i, j;
	for (i = 0; i < rows; i++)
	{
		for (j = 0; j < cols;j++)
		{
			board[i][j] = set;
		}
	}
}

初始化完成后就需要把它打印出来给玩家看,所以还需要一个打印数组的函数,打印的方式可以任意,你喜欢以什么样的方式打印就用什么方式(怎么好看怎么来),我这里就用我上面演示的那样!

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

注意:我们那里mine数组的内容是不用打印的,打印的话就可以知道雷的信息(开挂专用!)

void BoardPrint(char board[ROWS][COLS], int row, int col)
{
	int i, j;
	printf("********扫雷游戏*********\n");
	for (i = 0; i <= col; i++)
	{
		printf("%d ", i);
	}
	printf("\n");
	for (i = 0; i <= col; i++)
	{
		printf("--");
	}
	printf("\n");

	for (i = 1; i <= row; i++)
	{
		if (i < 10)
			printf("%d |", i);
		else
			printf("%d|", i);
		for (j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);

		}
		printf("\n");
	}
	printf("********扫雷游戏*********\n");

}

🚀布置雷实现

布置雷要用的就是随机数的获取,我们就保证获取的坐标在要展示二维数组的范围内即可,这里就给大家解释一下上面为什么要定义一个比游戏实现行列数多2行2列的原因,完全是为了我们在检测有多少个雷的时候,防止数组越界

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

所以我们是需要把雷放在中间要展示的区域,不要把雷放在边界的地方!!

而且我们的show数组,也就是展示给玩家看的数组也要定义多两行两列,因为这样就可以跟mine数组相对于,把玩家输入的坐标就可以直接进行判断对应位置是否有雷 前提是同样是把原来的行列打印出去给玩家看,比如玩家选择的是9*9的,我们后台就实现11*11的show,而打印就打印show中间9*9的格子 ,11*11只是为了和我们的mine数组的雷相对于

我们用字符’1’来表示是雷的标志,字符‘ 0 ’表示不是雷

void setmine(char board[ROWS][COLS], int row, int col)
{
	//count为雷的数量
	int count = EASY_COUNT;
	while (count)
	{
        //确定坐标在合法范围内
		int x = rand() % row + 1;		//模row加一为了让它不要布置在边界的地方
		int y = rand() % col + 1;

		if (board[x][y] == '0')
		{
			//每布一个雷,就把count-1
			count--;
			board[x][y] = '1';
		}
	}
}

我们可以把存放雷信息的mine数组打印看一下:>

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

🚀玩家扫雷实现

把上面的工作做完了,就要进行最后一步,也是这个游戏最重要的一步,玩家输入坐标,然后根据坐标判断游戏的情况

不管怎么样,玩家输入坐标后第一件事就是判断坐标是否合法,非法的话提醒玩家重新输入坐标。

合法之后就要判断输入的坐标是否踩雷,为了就直接结算游戏,非雷就把该坐标的周围8个格子检查有多少个雷,把雷数赋值给show数组,提示给玩家看周围分布有几个雷!

然后最后一步就是判断游戏胜利的条件了,我们可以定义一个变量win,而且的值就等于要排雷的次数,比如你是99行列的游戏,雷的数量为20,99-20就是剩下你要排雷的次数

达了这个次数就说明已经把全部非雷的区域确定好,游戏就胜利!

不过要注意的是因为我们是采用char字符数组,所以我们虽然是把雷初始化成"1",但它是一个字符‘1’,而非雷的格子为字符‘0’,它们的本质是ascll码,字符‘0’的ascll码为48,字符‘1’就为49,所以我们只需要要周围8个格子的字符加起来,然后减去8*字符‘0’就可以了。

比如你如果周围只有一个雷,那就是7 * 48 +1 * 49- 8 * 48=1

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{

	int x = 0;
	int y = 0;
	//win为要胜利排雷的总次数   比如你是9*9行列的游戏,雷的数量为20,9*9-20就是剩下你要排雷的次数
	int win = row*col- EASY_COUNT;
	while (win)
	{
		printf("输入坐标:>");
		scanf("%d%d", &x, &y);
		//判断坐标是否合法
		if (x >= 1 && x <= row && y >= 1 && y <= col)
		{
			if (show[x][y]!='*')
			{
				printf("坐标已被占用,请重新输入\n");
				
			}
			else
			{
				if (mine[x][y] == '1')
				{
					printf("很遗憾,你被炸死了\n");
					//游戏结束前打印雷的布置位置给玩家看
					BoardPrint(mine, ROW, COL);

					break;
				}
				else
				{
					//没踩雷,就把win-1,直至win为0就胜利
					win--;
					//获取周围雷的个数
					int  count = get_mine_count(mine, x, y);//函数实现在下面
					//加字符'0'是为了将数字变为字符表示

					show[x][y] = count + '0';
					BoardPrint(show, row, col);
				}
			}
		}
		else
		{
			printf("坐标非法,请重新输入\n");
		}
	}
	if(win==0)
	printf("恭喜你,游戏胜利!\n");
}
//获取坐标中心周围雷的个数
int get_mine_count(char mine[ROWS][COLS], int x, int y)
{
	//检查坐标周围8个格子有多少个雷
	return (mine[x - 1][y - 1] +
		mine[x - 1][y] +
		mine[x - 1][y + 1] +
		mine[x][y - 1] +
		mine[x][y + 1] +
		mine[x + 1][y - 1] +
		mine[x + 1][y] +
		mine[x + 1][y + 1] - 8 * '0');
}

🚀带展开功能的扫雷

什么是带展开功能的扫雷呢,请看动画
纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

就是一点就把所有为周围为零个雷的区域展开

最要思想就是下面的openshow函数实现的递归,如果对于坐标为零,就把改坐标该为显示‘ 0 ’,并就把周围8个坐标在传给openshow函数,非零就停止递归

int win = ROW * COL - EASY_COUNT;
//展开功能
void openshow(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y)
{
	if (x >= 1 && x <= ROW && y >= 1 && y <= COL)
	{
		win--;
		int count = get_mine_count(mine, x, y);
		if (count == 0)
		{
			if (show[x][y] != '0')
			{
				show[x][y] = '0';
				for (int i = -1; i <= 1; i++)
				{
					for (int j = -1; j <= 1; j++)
					{
						openshow(mine, show, x + i, y + j);
					}
				}
			}

		}
		else
		{
			show[x][y] = count + '0';
			return;
		}
	}

}

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{

	int x = 0;
	int y = 0;
	//win为要胜利排雷的总次数
	
	while (win)
	{
		printf("输入坐标:>");
		scanf("%d%d", &x, &y);
		//判断坐标是否合法
		if (x >= 1 && x <= row && y >= 1 && y <= col)
		{
			if (show[x][y] != '*')
			{
				printf("坐标已被占用,请重新输入\n");

			}
			else
			{
				if (mine[x][y] == '1')
				{
					printf("很遗憾,你被炸死了\n");
					//游戏结束前打印雷的布置位置给玩家看
					BoardPrint(mine, ROW, COL);

					break;
				}
				else
				{
					openshow(mine, show, x, y);
					BoardPrint(show, row, col);
				}
			}
		}
		else
		{
			printf("坐标非法,请重新输入\n");
		}
	}
	if (win == 0)
		printf("恭喜你,游戏胜利!\n");
}


🚀小结语

看到这个游戏的基础功能就已经完成了,但有一些比标记雷的位置,这个功能还没实现,感兴趣的小伙伴可以自行实现,不出意外的话,后续会更新
这次扫雷和上一期的三子棋游戏其实都是对二维数组的理解,然后加上一些C语言的基础语法加以组装的实现,你们有get到吗?

纯c可以实现的游戏,C语言系列,c语言,游戏,unity,visual studio,游戏引擎

下面还是老规矩,分享一下我的源代码给你们玩玩!!文章来源地址https://www.toymoban.com/news/detail-780012.html

🚗text.c文件

#define _CRT_SECURE_NO_WARNINGS

#include"game.h"

void menu()
{
	printf("**********************\n");
	printf("********1.play********\n");
	printf("********0.exit********\n");
	printf("**********************\n");

}
void game()
{
	char mine[ROWS][COLS] = { 0 };
	char show[ROWS][COLS] = { 0 };
	//初始化雷的棋盘
	BoardInit(mine, ROWS, COLS, '0');
	//初始化展现的棋盘
	BoardInit(show, ROWS, COLS, '*');

	BoardPrint(show, ROW, COL);

	//布雷
	setmine(mine, ROW, COL);
	//BoardPrint(mine, ROW, COL);  //作弊开关
	
	//排查雷
	FindMine(mine, show, ROW, COL);


	//扫雷开始
	//FindMine(mine, show, ROW, COL);

}

int main()
{
    	system("color 2");//改变字体颜色
	srand((unsigned int)time(NULL));
	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

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>

#define ROW 10
#define COL 10

#define ROWS ROW+2
#define COLS COL+2
#define EASY_COUNT 30
//初始化棋盘
void BoardInit(char board[ROWS][COLS], int rows, int cols, char set);

//打印棋盘
void BoardPrint(char board[ROWS][COLS], int row, int col);

//布置雷
void setmine(char board[ROWS][COLS], int row, int col);

//扫雷开始
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS],int row, int col);


🚗game.c文件

#define _CRT_SECURE_NO_WARNINGS

#include"game.h"


void BoardInit(char board[ROWS][COLS], int rows, int cols, char set)
{
	int i, j;
	for (i = 0; i < rows; i++)
	{
		for (j = 0; j < cols;j++)
		{
			board[i][j] = set;
		}
	}
}

void BoardPrint(char board[ROWS][COLS], int row, int col)
{
	int i, j;
	printf("********扫雷游戏*********\n");
	printf(" ");
	for (i = 0; i <= col; i++)
	{
		printf("%d ", i);
	}
	printf("\n");
	for (i = 0; i <= col; i++)
	{
		printf("--");
	}
	printf("\n");

	for (i = 1; i <= row; i++)
	{
		if (i < 10)
			printf("%d |", i);
		else
			printf("%d|", i);
		for (j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);

		}
		printf("\n");
	}
	printf("********扫雷游戏*********\n");

}



void setmine(char board[ROWS][COLS], int row, int col)
{
	//count为雷的数量
	int count = EASY_COUNT;
	while (count)
	{
		int x = rand() % row + 1;
		int y = rand() % col + 1;

		if (board[x][y] == '0')
		{
			//每布一个雷,就把count-1
			count--;
			board[x][y] = '1';
		}
	}
}

int get_mine_count(char mine[ROWS][COLS], int x, int y)
{
	//检查坐标周围8个格子有多少个雷
	return (mine[x - 1][y - 1] +
		mine[x - 1][y] +
		mine[x - 1][y + 1] +
		mine[x][y - 1] +
		mine[x][y + 1] +
		mine[x + 1][y - 1] +
		mine[x + 1][y] +
		mine[x + 1][y + 1] - 8 * '0');
}
//

不带展开功能
//void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
//{
//
//	int x = 0;
//	int y = 0;
//	//win为要胜利排雷的总次数
//	int win = row*col- EASY_COUNT;
//	while (win)
//	{
//		printf("输入坐标:>");
//		scanf("%d%d", &x, &y);
//		//判断坐标是否合法
//		if (x >= 1 && x <= row && y >= 1 && y <= col)
//		{
//			if (show[x][y]!='*')
//			{
//				printf("坐标已被占用,请重新输入\n");
//				
//			}
//			else
//			{
//				if (mine[x][y] == '1')
//				{
//					printf("很遗憾,你被炸死了\n");
//					//游戏结束前打印雷的布置位置给玩家看
//					BoardPrint(mine, ROW, COL);
//
//					break;
//				}
//				else
//				{
//					//没踩雷,就把win-1,直至win为0就胜利
//					win--;
//					//获取周围雷的个数
//					int  count = get_mine_count(mine, x, y);
//					//加字符'0'是为了将数字变为字符表示
//
//					show[x][y] = count + '0';
//					BoardPrint(show, row, col);
//				}
//			}
//		}
//		else
//		{
//			printf("坐标非法,请重新输入\n");
//		}
//	}
//	if(win==0)
//	printf("恭喜你,游戏胜利!\n");
//}
//

//win为要胜利排雷的总次数
int win = ROW * COL - EASY_COUNT;
//展开功能
void openshow(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y)
{
	if (x >= 1 && x <= ROW && y >= 1 && y <= COL)
	{
		win--;
		int count = get_mine_count(mine, x, y);
		if (count == 0)
		{
			if (show[x][y] != '0')
			{
				show[x][y] = '0';
				for (int i = -1; i <= 1; i++)
				{
					for (int j = -1; j <= 1; j++)
					{
						openshow(mine, show, x + i, y + j);
					}
				}
			}

		}
		else
		{
			show[x][y] = count + '0';
			return;
		}
	}

}

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{

	int x = 0;
	int y = 0;

	
	while (win)
	{
		printf("输入坐标:>");
		scanf("%d%d", &x, &y);
		//判断坐标是否合法
		if (x >= 1 && x <= row && y >= 1 && y <= col)
		{
			if (show[x][y] != '*')
			{
				printf("坐标已被占用,请重新输入\n");

			}
			else
			{
				if (mine[x][y] == '1')
				{
					printf("很遗憾,你被炸死了\n");
					//游戏结束前打印雷的布置位置给玩家看
					BoardPrint(mine, ROW, COL);

					break;
				}
				else
				{
					openshow(mine, show, x, y);
					BoardPrint(show, row, col);
				}
			}
		}
		else
		{
			printf("坐标非法,请重新输入\n");
		}
	}
	if (win == 0)
		printf("恭喜你,游戏胜利!\n");
}


到了这里,关于“纯C”实现——扫雷游戏(递归实现展开功能)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言小项目 -- 扫雷游戏完整代码(递归展开 + 选择标记)

    大家好,今天我们将一起用C语言实现一个经典小游戏 – 扫雷,Let is go ! 扫雷游戏相信大家都玩过,上图就是一个网页版的扫雷,它的规则是玩家选择一个方格,若此方格没有地雷,那么该方格会显示与它相邻的八个方格中雷的个数,若此方格有地雷,那么游戏失败,当玩

    2024年02月05日
    浏览(55)
  • C语言实现扫雷(包含递归展开)

    目录 一:扫雷游戏的基础逻辑 二:关于扫雷相关的信息存储 三:游戏大体实现逻辑 四:具体实现 (1)初始化 (2)打印 (3)布置雷 (4)查雷 五:全部代码 (1)game.h (2)game.c (3)test.c 六:实际效果演示 扫雷游戏逻辑如下: 1. 游戏开始时,玩家将看到一个方格棋盘,每个方格上有一个数

    2024年02月05日
    浏览(42)
  • 童年回忆--扫雷(包括标记功能和递归展开)--万字讲解让你学会扫雷制作

    魔王的介绍:😶‍🌫️一名双非本科大一小白。 魔王的目标:🤯努力赶上周围卷王的脚步。 魔王的主页:🔥🔥🔥大魔王.🔥🔥🔥 ❤️‍🔥大魔王与你分享:人生人山人海人来人往,自己自尊自爱自由自在。 小时候我们在家里刚买电脑的时候,网络还不是很发达(两三

    2023年04月14日
    浏览(36)
  • C语言初阶之扫雷代码详解(含递归展开)

    主要分为下面几个过程: 1、建立棋盘 2、初始化棋盘 3、设置棋盘雷数 4、打印棋盘 5、玩家找雷 6、判定胜负 文件名:game.h 代码如下: 在game头文件中,首先包含会使用到的库头文件,这里的ROW以及COL是雷区的行和列大小,也就是说这是玩家实际能看到的行数及列数,而RO

    2024年02月03日
    浏览(36)
  • 【C语言】万字教学,带你分步实现扫雷游戏(内含递归函数解析),剑指扫雷,一篇足矣

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello,这里是君兮_,今天更新一篇关于利用C语言实现扫雷游戏的博客。对于初学者来说,这也是一个非常容易上手的小项目,看完不妨自己试试哦! 废话不多说,我们直接开始吧! 相信很多人在小时候都玩过扫雷游戏,但

    2024年02月11日
    浏览(42)
  • 【C语言】扫雷游戏(可展开)——超细教学

    🚩 纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C语言 🔥该篇将运用数组来实现 扫雷游戏。 通过迭代保证每次玩完游戏后可以再来一局或者退出。 说明: 1 .   实现扫雷,首先需要布置雷,通过一个二维数组就可以很容易的将雷的信息存储下来。 只需

    2024年02月11日
    浏览(40)
  • 【C语言】代码实现 扫雷 游戏及进阶功能(初学者详解)

    扫雷游戏的起源可以追溯到20世纪60年代,当时这款游戏是由IBM开发出来的。在80年代初,微软公司将其收归旗下,并将其作为Windows操作系统自带的一款游戏。自此以后,扫雷成为了Windows用户最喜欢的休闲游戏之一,也受到了全球范围内的玩家喜爱。 现在,我们使用C语言,来

    2024年01月20日
    浏览(48)
  • 入门C语言第三话:数组之实战篇——扫雷(进阶版——图形化界面,递归展开,播放音乐与音效,标记取消雷,记录雷的个数,鼠标点击,文末附有完整代码)

     不为模糊不清的未来过分担忧,只为清清楚楚的现在奋发图强。  如果思路不是特别清晰的兄弟,建议多看一下基础版扫雷:数组之实战篇——带你从0到1实现扫雷(简易版)  如果EasyX图形库不是特别明白:可以看一下这篇文章:入门EasyX图形库(带你进入不一样的程序

    2024年02月09日
    浏览(46)
  • C语言300行代码实现扫雷(可展开+可标记+可更改困难级别+内附图形界面版本)

    扫雷是一个经典的游戏,是一个益智类小游戏,在80、90年代曾风靡一时,当然现在也是十分受欢迎; 废话不多说; 让我们来了解一下如何用C语言去实现它吧!!!(❁´◡`❁) 运行环境:VS2019 图形化界面版本 先实现一个初级版本的: 1、我们得有一个9*9的棋盘; 2、我们在棋

    2024年01月25日
    浏览(43)
  • 【C语言】实现扫雷游戏

    详细介绍扫雷游戏的思路和实现过程,并用随机数实现埋雷。 • 使用控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格⼦ • 默认随机布置10个雷 • 可以排查雷 ◦ 如果位置不是雷,就显示周围有几个雷 ◦ 如果位置是雷,就炸

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包