C语言递归实现扫雷小游戏

本文介绍了使用C语言编写扫雷小游戏的过程,包括初始化界面、制作棋盘与布雷、判断雷区、游戏结束条件及游戏执行。通过递归方式展开格子,利用二维数组模拟地图,使用随机数布雷,并在边缘处理上避免数组越界问题。
摘要由CSDN通过智能技术生成

前言

为了复习C语言的语法嘛,就简单的写了一下扫雷这样一个小游戏,完全在命令行窗口运行。思路也比较简单,采用数组来模拟棋盘。一个用来模拟地雷的分布的数组。一个用来打印玩家开始看到的数组。在选择坐标后展开周围的地方。判断未展开的格子数与地雷数是否相等。结束游戏。

简单的初始界面

简单的一个初始界面,用来选择开始游戏和退出。也可以在这里在后续加上难度选择等等功能。

void ShowMenu()
{
   
	printf("*********************************\n");
	printf("*********************************\n");
	printf("**********输入1 开始游戏*********\n");
	printf("**********输入0 退出游戏*********\n");
	printf("*********************************\n");
	printf("*********************************\n");
	printf("\n");
	printf("\n");
	printf("\n");
	printf("               请输入:\n");

}

制作棋盘和布雷

棋盘采用二维数组来构成,为了保证游戏可以重复开始,在每次开始时都要对数组进行初始化,然后随机布“雷”。为了方便在接下来扫描展开位置周围是否有“雷”。我们将数组全部初始化为0,将“雷”标记为1。这样就可以布置好地图。

void InitMap()
{
   
	int count = 0;

	for (int i = 0; i <= ROW; i++)// 初始化地图
		for (int j = 0; j <= COLUMN; j++)
		{
   
			map[i][j] = 0;
			show_map[i][j] = '*';
		}

	while (count != BANG_NUMBER)        //埋雷
	{
   
		int x = rand() % ROW + 1;
		int y = rand() % COLUMN + 1;
		if (map[x][y] != 1)
		{
   
			map[x][y] = 1;
			++count;
		}
	}
}

void Show_BangMap()
{
   
	system("CLS");
	printf("*********************************\n");
	printf("*********************************\n");
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值