Here is a simple implementation for maze issue.
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->#include<stdio.h>
#include<stdlib.h>
#include<stdext.h>
#include<stdbool.h>
#defineROW_NUM8
#defineCOL_NUM8
typedefstruct{
intx;
inty;
structposition*next;
}position;
staticintmaze[ROW_NUM][COL_NUM]={{0,0,1,0,0,0,0,1},
{1,1,0,1,1,0,1,0},
{0,1,0,1,1,0,1,0},
{0,1,0,1,0,1,0,1},
{0,1,1,0,1,1,1,1},
{0,0,0,1,1,0,0,1},
{1,1,0,1,0,1,1,0},
{0,0,1,0,1,1,0,0}};
boolisvalid(intx,inty)
{
if(x>=0&&x<ROW_NUM&&y>=0&&y<COL_NUM&&maze[x][y]==0)returntrue;
returnfalse;
}
boolinpath(intx,inty,position*pos)
{
while(pos!=NULL){
if(pos->x==x&&pos->y==y)returntrue;
pos=(position*)(pos->next);
}
returnfalse;
}
staticboolpathfound=false;
voidwalkmaze(intx,inty,position*pos)
{
if(pathfound||!isvalid(x,y)||inpath(x,y,pos))return;
if(x==ROW_NUM-1&&y==COL_NUM-1){
printf("(%d,%d)",x,y);
while(pos!=NULL){
printf("<-(%d,%d)",pos->x,pos->y);
pos=(position*)pos->next;
}
puts("");pathfound=true;return;
}
positionpos6;pos6.x=x,pos6.y=y;pos6.next=pos;walkmaze(x+1,y+1,&pos6);
positionpos8;pos8.x=x,pos8.y=y;pos8.next=pos;walkmaze(x,y+1,&pos8);
positionpos5;pos5.x=x,pos5.y=y;pos5.next=pos;walkmaze(x+1,y,&pos5);
positionpos1;pos1.x=x,pos1.y=y;pos1.next=pos;walkmaze(x-1,y+1,&pos1);
positionpos2;pos2.x=x,pos2.y=y;pos2.next=pos;walkmaze(x-1,y,&pos2);
positionpos4;pos4.x=x,pos4.y=y;pos4.next=pos;walkmaze(x+1,y-1,&pos4);
positionpos7;pos7.x=x,pos7.y=y;pos7.next=pos;walkmaze(x,y-1,&pos7);
positionpos3;pos3.x=x,pos3.y=y;pos3.next=pos;walkmaze(x-1,y-1,&pos3);
}
intmain()
{
walkmaze(0,0,NULL);
return0;
}
分享到:
相关推荐
迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法
迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法
迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法迷宫算法
迷宫算法 Java版的 采用的是搜索回溯算法 并且采用了有方向倾向性的策略。
迷宫算法c语言代码。迷宫算法c语言经典代码迷宫算法c语言经典代码
下载该资源前请确认已下载前置资源(随机迷宫生成算法),使用时先使用随即迷宫生成算法生成迷宫.txt文件,再将该文件复制到破解迷宫算法C文件同目录下才可使用。请确保头文件中的raw值和column值与随机迷宫生成算法...
学习数据结构时候编写的迷宫算法, 欢迎批评指正相互学习!
迷宫的详细步骤及算法 /*迷宫的行数*/ /*迷宫的列数*/ /*初始化栈*/
带选路优化的迷宫算法。在选路过程中做了部分优化,对优化算法函数扩张可以达到选最短路径。
简易的迷宫算法 js实现简单的迷宫模版生成
智能老鼠走迷宫算法,很经典,有拓展性,适合算法狂人
这是一个迷宫算法,能自动生成迷宫,有较好的图形用户界面,并能找出相关的出口路径。
Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法
数据结构经典,vc/c++,队列,迷宫算法
迷宫算法的c语言实现,数据结构中关于栈的应用。
stl 简易迷宫算法,实现了基本的算法,仅供参考啊!!!
c语言数据结构迷宫算法 有详细的注释 动态堆栈的详细
比较经典的迷宫算法 学数据结构很好的参考
这是我自己写的一个迷宫算法,可以运行,不过没有包括可以随机生成正确迷宫的算法。随机数生成的我自己测试还没出现过能走出迷宫的。
自己写的数据结构的课程设计,迷宫算法,可实现查找多条路径。。完全c的语法,编辑环境vc++。