C语言学习之路 -- 扫雷

一、前言

  • 在系统学习完C语言中的一些内容后,想自己写出来一个类似于扫雷的代码,后续会持续优化。
  • 在这个项目中,我们分为”test.c"“game.c”"game.h"三个文件。

二、扫雷分函数讲解

1、主函数

  • 在主函数中,我们希望少放一些代码,因此只调用一个函数
int main()
{
   
	test();
	return 0;
}

2、test()中

  • 初始化后面的随机值time()
  • 引入菜单
  • 让玩家输入选择进行游戏还是退出
void test()
{
   
	srand((unsigned int)time(NULL));
	int input = 0;
	//打印菜单
	do {
   
		menu();
		printf("请选择1/0:>");
		scanf("%d", &input);
		switch (input)
		{
   
		case 1:
			printf("开始游戏\n");
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default :
			printf("输入错误,请重新选择\n");
			break;
		}
	} while (input);
}

3、menu()

  • 打印菜单
void menu()
{
   
	printf("*****************\n");
	printf("*****1.play******\n");
	printf("*****0.exit******\n");
	printf("*****************\n");
}

4、game()

  • 初始化信息
  • 初始化雷盘和展示盘
  • 打印雷,设置雷,排雷
void game()
{
   
	//1. 需要存放布置好的雷的信息,存放排查出的雷的信息,我们需要2个二维数组
	//2. 排查坐标的时候,为了防止坐标越界,我们给数组的行增加2行,列增加了2列
	char mine[ROWS][COLS] = {
    0 };//布置好的雷的信息
	char show[ROWS][COLS] = {
    0 };//排查出的雷的信息

	//初始化雷盘和展示盘
	init_board(mine, ROWS, COLS,'0');
	init_board(show, ROWS, COLS,'*');

	//打印
	display_board(show, ROW, COL);

	//设置雷
	set_lei(mine, ROW, COL);
	display_board(mine, ROW, COL);

	//排雷
	find_lei(mine, show, ROW, COL);
}

5、init_board()

  • 初始化
void init_board(char board[ROWS][COLS], int rows, int cols, char sets)
{
   
	int a = 0;
	for (a = 0; a <= rows - 1; a++)
	{
   
		int b = 0;
		for (b = 0; b <= cols - 1; b++)
		{
   
			board[a][b] = sets;
		}
	}
}

6、display_board()

  • 打印展示盘
void display_board(char board[ROWS][COLS], int row, int col)
{
   
	
	int a = 0;
	for (a = 0; a <= col; a++)
	{
   
		printf("%d "
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值