C语言学习笔记-二维数组之扫雷

这篇博客介绍了如何使用C语言编写扫雷游戏,包括游戏逻辑如随机布置炸弹、显示周围方格炸弹数目、标记和判断游戏结束等。文章详细讲解了`main.c`、`game.c`和`game.h`三个主要文件的功能,并展示了游戏截图,指出游戏的改进点,如未接入插旗数目、数字显示优化及界面美化等。
摘要由CSDN通过智能技术生成

游戏逻辑

1.随机布置炸弹

2.选中一个位置显示该位置周围八个方格的炸弹数目总和

3.当判断某个位置为炸弹可以标记 如果所有炸弹都被标记则游戏结束

4.当被炸弹炸到游戏结束

5.选中位置周围都没有炸弹时候进行扩张,扩张出来周围所有没有炸弹的位置。

游戏组成

main.c

游戏入口

#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"

int main()
{
	startgame();
	return 0;
}

game.c

函数名

#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"

int num = 0;
int arr[ROWS][COLS] = { 0 };

/*游戏菜单*/
void menu()


/*字符数组初始化*/
void Initboard(char board[ROWS][COLS])


/*数组初始化*/
void Initmine(int mine[ROWS][COLS])

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

/*打印棋盘*/
void printboard2(int board[ROWS][COLS], int row, int col)

/*布置雷*/
void setboom(int mine[ROWS][COLS])

/*检查棋已满*/
int screenboard(char board[ROWS][COLS], int row, int col)//检查棋盘是否已满


/*计算雷数目*/
int fac(int mine[ROWS][COLS],int x,int y)


/*扩张函数*/
int fac2(char board[ROWS][COLS],int mine[ROWS][COLS], int arr[ROWS][COLS],int x, int y)


/*雷位显示函数*/
int fac3(char board[ROWS][COLS], int mine[ROWS][COLS],int row,int col)


/*排查雷*/
int findboom(char board[ROWS][COLS], int mine[ROWS][COLS], int row, int col) 


/*游戏主体*/
void game(char board[ROWS][COLS], int mine[ROWS][COLS], int row, int col)

/*游戏逻辑*/
void menu2(char board[ROWS][COLS], int mine[ROWS][COLS])

/*调用主体*/
void startgame()

 布置雷

void setboom(int mine[ROWS][COLS])
{
	int x = 0;
	int y = 0;
	int i = 0;
	for (i = 1; i <= BNUM; i++)
	{
		x = rand() % (ROW);
		y = rand() % (COL);
		if ((mine[x][y] == 0)&&(x>=1&&x<=ROW) && (y>= 1 && y <= ROW))
		{
			mine[x][y] = 1;
		}
		else
			i--;

		
	}

}

扩张函数

int fac2(char board[ROWS][COLS],int mine[ROWS][COLS], int arr[ROWS][COLS],int x, int y)
{
	int temp = 0;
	arr[x][y] = 1;
	if ((fac(mine, x+1, y ) == 0)&&(arr[x+1][y]!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值