c语言——扫雷游戏

目录

前言

一、基本思路

二、代码实现

1.创建游戏界面地图以及地雷生成地图

2.打印出用户地图

3.由用户输入坐标

4.判定用户是否踩到地雷

5.更新地图,显示地雷信息

6.胜利判定

 三、效果展示

 四、代码

总结


前言

扫雷是一个大家耳熟能详的游戏,游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。今天就跟大家分享一下如何用c语言实现简单版本的扫雷。



一、基本思路

1、创建游戏界面地图以及地雷生成地图

2、打印出用户地图

3、由用户输入坐标

4、判定用户是否踩到地雷

5、更新地图,显示地雷信息

6、胜利判定


二、代码实现


1.创建游戏界面地图以及地雷生成地图

char ShowMap[MAX_ROW][MAX_COL] = { 0 };
char MineMap[MAX_ROW][MAX_COL] = { 0 };
init(ShowMap, MineMap);
void init(char ShowMap[MAX_ROW][MAX_COL], char MineMap[MAX_ROW][MAX_COL])
{
	/*for (int row = 0;row < MAX_ROW;row++)
	{
		for (int col=0;col<MAX_COL;col++)
		{
			ShowMap[row][col] = '*';
		}
	}*/
	memset(ShowMap, '*', MAX_ROW * MAX_COL);
	memset(MineMap, '0', MAX_ROW * MAX_COL);
	//随机产生十个地雷
	srand((unsigned int)time(0));
	int minecount = 0;
	while (minecount < MINE_COUNT)
	{
		int row = rand() % MAX_ROW;
		int col = rand() % MAX_COL;
		if (MineMap[row][col] == '1')
		{
			continue;
		}
		MineMap[row][col] = '1';
		minecount++;
	}
}

2.打印出用户地图

system("cls");
print(ShowMap);
void print(char Map[MAX_ROW][MAX_COL])
{
	for (int row = 0; row < MAX_ROW; row++)
	{
		for (int col = 0; col < MAX_COL; col++)
		{
			printf("%c ", Map[row][col]);
		}
		printf("\n");
	}
}

3.由用户输入坐标

用户输入坐标,进行合法性判定

int row = 0;
int col = 0;
printf("请输入坐标(row,col):");
scanf_s("%d %d", &row, &col);
//合法性判定
if (row<0||row>=MAX_ROW||col<0||col>=MAX_COL)
{
	printf("输入的坐标有误,请重新输入!\n");
	continue;
}
if (ShowMap[row][col]!='*')
{
	printf("输入的位置已翻开,请重新输入!");
	continue;
}

4.判定用户是否踩到地雷

if
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值