美文网首页
老鼠走迷宫2

老鼠走迷宫2

作者: gtxe | 来源:发表于2019-12-04 10:13 被阅读0次

说明由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢?
解法求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只要作一点修改就可以了。

(好好思考,先找一个简单的迷宫走一次过程)

#include <stdio.h>
#include <stdlib.h>

void visit(int ,int);
int a[9][9]={{2, 2, 2, 2, 2, 2, 2, 2, 2},
             {2, 0, 0, 0, 0, 0, 0, 0, 2},
             {2, 0, 2, 2, 0, 2, 2, 0, 2},
             {2, 0, 2, 0, 0, 2, 0, 0, 2},
             {2, 0, 2, 0, 2, 0, 2, 0, 2},
             {2, 0, 0, 0, 0, 0, 2, 0, 2},
             {2, 2, 0, 2, 2, 0, 2, 2, 2},
             {2, 0, 0, 0, 0, 0, 0, 0, 2},
             {2, 2, 2, 2, 2, 2, 2, 2, 2}};
int starti=1,startj=1;
int endi=7,endj=7;
int num=0;

int main()
{
   int i,j;
   printf("显示路径:\n");
   for(i=0;i<9;i++)
   {
       for(j=0;j<9;j++)
        {
            if(a[i][j]==2) printf("█");
            else printf("  ");
        }
        printf("\n");
   }
   visit(starti,startj);

   return 0;
}

void visit(int i,int j)
{
    a[i][j]=1;
    if(i==endi&&j==endj)
    {
        num++;
        printf("第%d条路为:\n",num);
        int m,n;
        for(m=0;m<9;m++)
        {
            for(n=0;n<9;n++)
                {
                    if(a[m][n]==2) printf("█");
                    else if(a[m][n]==1) printf("◇");
                    else printf("  ");
                }
            printf("\n");
        }
    }

    if(a[i][j+1]==0)  visit(i,j+1);
    if(a[i+1][j]==0)  visit(i+1,j);
    if(a[i][j-1]==0)  visit(i,j-1);
    if(a[i-1][j]==0)  visit(i-1,j);
    a[i][j]=0;

}
image.png

相关文章

  • 老鼠走迷宫2

    说明由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢?解法求所有路径看起来复杂但其实更...

  • 老鼠走迷宫1

    说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由...

  • 菜鸟的进击——C语言实现老鼠走迷宫

    老鼠走迷宫,一只实验室的小老鼠被用来做迷宫智力实验。科学家在迷宫的一角放上一块奶酪,小老鼠要在最快时间内找到奶酪。...

  • 《正念禅修》读书笔记7-9篇

    第7章:正念禅修第3周——迷宫中的老鼠。 本章中用迷宫中的老鼠这一个实验来表明,因为迷宫出口摆放的不同东西对老鼠造...

  • 被剥夺食物来源后,会促使你产生更强的生活驱力

    知识卡片015 动机心理学 P38 【原文引述】 与没有被剥夺食物的老鼠相比,被剥夺食物的老鼠不仅走迷宫的速度更快...

  • 离开熟悉的环境,会让你产生更强的生活驱力

    知识卡片016动机心理学 P38 【原文引述】 与没有被剥夺食物的老鼠相比,被剥夺食物的老鼠不仅走迷宫的速度更快,...

  • 基于Java的迷宫老鼠游戏

    一、功能简介 迷宫老鼠系统包括以下功能: 自定义迷宫大小 使用图的深度遍历随机生成迷宫 用户使用鼠标绘制自定义迷宫...

  • 迷宫问题

    深度优先遍历走迷宫 广度优先遍历走迷宫 代码见github

  • 我们,穿梭于城市间

    城市像迷宫,我们穿行其中。 时而像老鼠,时而像英雄。

  • 走迷宫

    今天下雨了,所以外面有很多小水坑,如果踩到水,我的鞋子就会湿了。所以我和妹妹绕着水坑走。我们一会儿往左走,一会儿往...

网友评论

      本文标题:老鼠走迷宫2

      本文链接:https://www.haomeiwen.com/subject/qierfqtx.html