急:C语言迷宫问题求解,请大虾帮忙,万分感谢。

来源:百度知道 编辑:UC知道 时间:2024/09/25 20:01:26
#include<stdio.h>
#define ROW 6
#define COL 6
//*************变量及函数声明*******************
typedef struct
{
int x;
int y;
}direction;

direction move[4]={
{1,0},
{-1,0},
{0,-1},
{0,1}};

int findpath(int row,int col);
void print_path();

//4×4迷宫图:
int pic[ROW][COL]={
{1,1,1,1,1,1},
{1,0,0,1,1,1},
{1,1,0,0,0,1},
{1,0,0,1,1,1},
{1,1,0,0,0,1},
{1,1,1,1,1,1}};

//****************主函数************************
int main(void)
{
if(findpath(1,1)==1)
print_path();

return 0;
}
//*****************子函数***********************
int findpath(int row,int col)
{
int i=0,next_row,next_col,sign;

while(i<4){

next_col=col+move[i].x;
next_row=row+move[i].y;

if(pic[next_row][next_col]==0){

pic[next_row][next_col]=2;

if(nex

我自己做的一个走迷宫,给你提个思路吧;
测试的话,要写一个文本文件,文件的第一行是迷宫的长度和宽度
第二行开始是迷宫的形状(没有边框),把这个文件放到运行文件同目录下。

具体到你这个就是

4 4
0 0 1 1
1 0 0 0
0 0 1 1
1 0 0 0

然后执行就可以了。

#include "stdio.h"

struct Path
{
char x;//当前步的横坐标
char y;//当前步的纵坐标
char Ward;//向那个方向走
Path* pNext;//指向下一步
Path* pPrev;//指向上一步
};

int Pop();
void Push(int x, int y);
Path* IsExist(int x, int y);
int Search(char **Maze, int Width, int Height);

Path Top={0,0,0,NULL,NULL};
Path* pBottom;

int Pop()//出栈,也就是向回走
{
if(pBottom!=&Top)
{
Path* pNode=pBottom;
pNode->pPrev->pNext=NULL;
pBottom=pNode->pPrev;
delete pNode;
return 1;
}
return 0;
}

void Push(int x, int y)//压栈,走向下一步
{
pBottom->pNext=new Path;
pBottom->pNext->pPrev=pBottom;
pBottom=pBottom-&