美文网首页
老鼠走迷宫1

老鼠走迷宫1

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

说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。
解法老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,这是递回的基本题,请直接看程式应就可以理解。

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

int 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 flag=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");
   }
   if(visit(starti,startj)==0)
    printf("there is no way!\n");
   else
   {
       printf("显示路径:\n");
       for(i=0;i<9;i++)
        {
          for(j=0;j<9;j++)
           {
             if(a[i][j]==2) printf("█");
             else if(a[i][j]==1) printf("◇");
             else  printf("  ");
           }
          printf("\n");
        }
   }

   return 0;
}

int visit(int i,int j)
{
    a[i][j]=1;
    if(i==endi&&j==endj)
      flag=1;

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

    if(flag==0)
        a[i][j]=0;
    return flag;

}

image.png

相关文章

  • 老鼠走迷宫1

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

  • 老鼠走迷宫2

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

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

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

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

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

  • 初夏的柔软时光

    1、走迷宫 茉茉最近痴迷于走迷宫,一口气能走完一本迷宫书。这天,妈妈陪着茉茉走迷宫。 “慢——,画得慢一点,就不会...

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

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

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

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

  • 基于Java的迷宫老鼠游戏

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

  • 迷宫问题

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

  • 教师招聘笔试记忆口诀

    NO.1 教育心理学 巴甫洛夫的狗,桑代克的猫。斯金那的老鼠,班杜拉的宝宝。苛勒的猩猩抓香蕉,托尔曼的白鼠走迷宫。...

网友评论

      本文标题:老鼠走迷宫1

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