c语言老鼠迷宫程序,C语言经典算法——老鼠走迷宫(二)
说明
由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢?
解法
求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只要作一点修改就可以了。
#include
"stdio.h"
#include "stdlib.h"
void visit(int,int);
int startI = 1, startJ = 1; // 入口
int endI = 7, endJ = 7; // 出口
int maze[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}};
void main()
{
int i,j;
printf("maze:\n");
for(i=0;i<7;i++){
for(j=0;j<7;j++)
if(maze[i][j]==2)
printf("█");
else
printf(" ");
printf("\n");
}
visit(startI,startJ);
}
void visit(int i,int j){
int m,n;
maze[i][j]=1;
if(i==endI&&j==endJ){
printf("\n显示路径: \n");
for(m=0;m<9;m++){
for(n=0;n<9;n++)
if(maze[m][n]==2)
printf("█");
else if(maze[m][n] == 1)
printf("*");
else
printf(" ");
printf("\n");
}
}
if(maze[i][j+1]==0) visit(i,j+1);
if(maze[i+1][j]==0) visit(i+1,j);
if(maze[i][j-1]==0) visit(i,j-1);
if(maze[i-1][j]==0) visit(i-1,j);
maze[i][j]=0;
}
c语言老鼠迷宫程序,C语言经典算法——老鼠走迷宫(二)相关推荐
- 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)
C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...
- 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘
搜索热词 @H_301_0@下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_301_0@编程之家小编现在分享给大家,也给大家做个参考. 说明骑士旅游(Knight tour)在十八世 ...
- C语言计算日期间隔天数的经典算法解析
C语言计算日期间隔天数的经典算法解析 网上看到一个计算日期间隔的方法,很高深,很巧妙.代码如下: #include <stdio.h> #include <stdlib.h> ...
- 经典算法研究系列:二、Dijkstra 算法初探
经典算法研究系列:二.Dijkstra 算法初探 July 二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...
- JAVA算法:走迷宫回溯算法设计(JAVA版本)
JAVA算法:走迷宫回溯算法设计(JAVA版本) 迷宫数组 int[][] maze = { {0, 1, 0, 0, 0}, {0, ...
- python求解迷宫问题,配js实现的走迷宫动画,动起来才有意思~
前言 继昨天手动实现了走迷宫问题,虽然是实现了,但是看到被我画成乱七八糟的草稿纸,总是觉得不爽,不仔细看,又得把自己给走迷糊了,于是自己使用js实现了一下,效果还不错!先看一下展示效果吧!(文末配有j ...
- 趣味c语言代码,趣味程序C语言
<趣味程序C语言>由会员分享,可在线阅读,更多相关<趣味程序C语言(36页珍藏版)>请在人人文库网上搜索. 1.趣味程序导学C语言,你玩过电脑游戏吗?,你喜欢电脑游戏吗?,电脑 ...
- c语言bfs算法走迷宫,使用广度优先算法(BFS)走迷宫
前面介绍广度优先算法的时候提及了多次走迷宫,我们就真正的走一次迷宫试试! 要求如下: 输入给出迷宫矩阵的行数和列数,并给出迷宫(使用点 (.) 表示路,使用星 (*) 表示障碍物,使用S表示起点,T表 ...
- LRU算法,走迷宫,数根,星际战争
问答题1 问答题1:一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用 LRU 算法,缺页数是几次? LRU 算法是先置换出不常用的页面,如果一个页面刚刚被访问过, ...
最新文章
- mysql raw_Oracle中的Raw类型解释
- golang range 遍历读写数据问题
- css制作圆角矩形,CSS绘制圆角矩形图形的效果
- 【深度学习】从R-CNN到Mask R-CNN的思维跃迁
- 建立最简单的repo服务器实例讲解
- NSUserDefaults的用法(轻量级本地数据存储)
- catv系统主要有哪三部分组成_光纤放大器在DWDM传输系统中的应用
- php用go做跳转翻页,go.php跳转不输出权重的跳转方式真的有用么?
- python不是内部文件_已安装python,但是出现‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。...
- mysql排序区分大小写吗_MySQL操作数据时区分大小写
- 前端集成解决方案(转)
- Java案例:清洗网址垃圾字符
- DekBox代币DEK已完成首次减产
- caffe的python接口学习(1):生成配置文件
- linux就该这么学
- (*长期更新)软考网络工程师学习笔记——Section 13 Linux网络配置命令
- 不用加减乘除做四则运算
- 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
- 工具-python包-虚拟环境管理(99.4.1)
- mapbox 绘制路线并展示路线长度
热门文章
- k8s garbage collector源码分析(1)-启动分析
- FileBeat系列:multiline的pattern negate match使用方法
- 万圣节各种搞怪的南瓜
- MODBUS RTU通信协议 CRC16校验
- codeMirror自定义关键词颜色颜色
- 【USACO题库】1.1.4 Broken Necklace破碎的项链
- 同ip网站查询,同服务器网站查询,如何检查同IP下的网站是否安全
- 如何用计算机名查看是否正确,IP能访问和计算机名不能访问解决办法
- python 扯线木偶_年轻人裸辞后过得怎样?
- 汽车中的IGBT——————转载