【C语言】用递归走迷宫

#include<stdio.h>
#include<windows.h>
char c[][20]=
{
"************",
"*00000*0000*",
"*0***000*0&*",
"*000*0**0***",
"***000000***",
"************"
};
int	row = sizeof(c)/sizeof(c[0]);
void bulidmaze(char c[][20],int count)
{
	int n=0;
	for(n;n<count;n++)
	{
		printf("%s\r\n",c[n]);
	}
}
int test(char c[][20],int x,int y)
{
	if(c[x][y]=='&')
	{
		printf("找到出口\n");
		exit(0);
	}
	c[x][y]='@';
	_sleep(1000);
	system("cls");
	bulidmaze(c,row);
	//system("pause");
	if('0'==c[x+1][y]||'&'==c[x+1][y])
	{
	test(c,x+1,y);
	}
	if('0'==c[x][y+1]||'&'==c[x][y+1])
	{
	test(c,x,y+1);
	}
	if('0'==c[x-1][y]||'&'==c[x-1][y])
	{
	test(c,x-1,y);
	}
	if('0'==c[x][y-1]||'&'==c[x][y-1])
	{
	test(c,x,y-1);
	}
	c[x][y]='S';
	return;
}
int main()
{
	//生成迷宫
	bulidmaze(c,row);
	//探索路线 1,1为入口
	test(c,1,1);

	return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值