算法丑陋,时间略长,还望指教。
#include <stdio.h>
#include <stdlib.h>
int flag;
void findway(int size,char*a,char*b,int ay,int ax,int by,int bx)//在a位置寻找走向b的下一步
{
int side=size-2;//真实迷宫的大小
//输入问题
if(*a=='#'||*b=='#')
return;
//找到的判断
if((by==ay&&(bx==ax-1||bx==ax+1))||(bx==ax&&(by==ay+1||by==ay-1))||(by==ay&&ax==bx))
{
flag=1;
return;
}
//必然找不到的情况
if(*(a+1)=='#'&&*(a-1)=='#'&&*(a+size)=='#'&&*(a-size)=='#')
return;
//还有希望的情况
else
{
*a='#';//反正是废了
if(*(a+size)=='.')
findway(size,a+size,b,ay+1,ax,by,bx);
if(*(a-size)=='.')