老鼠走迷宫全部路径

以下程序打印出老鼠走迷宫全部的路径:

 

#include<stdio.h>

#define LEN 9


int maze[9][9] = {
{2, 0, 2, 2, 2, 0, 2, 2, 2},
{2, 0, 2, 2, 2, 0, 0, 2, 2},
{2, 0, 0, 0, 0, 0, 0, 0, 2},
{2, 0, 2, 2, 0, 2, 2, 0, 2},
{2, 0, 0, 2, 0, 2, 2, 0, 2},
{2, 0, 0, 2, 0, 2, 2, 0, 2},
{2, 0, 0, 2, 0, 0, 0, 0, 0},
{2, 0, 0, 0, 0, 2, 2, 2, 2},
{2, 0, 2, 2, 0, 2, 2, 2, 2},
}; //构建迷宫
int start_x = 1, start_y = 0; //设置起点
int end_x = 8, end_y = 4; //设置终点

void step(int x, int y);
void print_maze();

int main(int argc, char argv[])
{

printf("maze:\n"); //打印迷宫图,为方便查看,将数字换为图形打印
print_maze();

step(start_x, start_y);

return 0;
}


void step(int x, int y) //用递归算法求解路径
{
maze[x][y] = 1;

if(x == end_x && y == end_y)
{
print_maze(); //打印函数放入递归中,每找到一条成功路径打印一次
}


if(y < (LEN - 1) && maze[x][y + 1] == 0){step(x, y + 1);} //边界条件,避免溢出,感谢 @别把白天当黑夜 指正
if(x < (LEN - 1) && maze[x + 1][y] == 0){step(x + 1, y);}
if(y > 0 && maze[x][y - 1] == 0){step(x, y - 1);}
if(x > 0 && maze[x - 1][y] == 0){step(x - 1, y);}

maze[x][y] = 0;
}

void print_maze()
{
int x, y;

for(x = 0; x < LEN; x++)
{
for(y = 0; y < LEN; y++)
{
if(maze[x][y] == 2)
printf("2");
else if(maze[x][y] == 1)
printf("1");
else if(maze[x][y] == 0)
printf("0");
}
printf("\n");
}

printf("\n");
}

转载于:https://www.cnblogs.com/qingjianswu/p/5652780.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值