예제 #1
0
int main()
{
        pathtype a;
        mgpath(1,1,8,8,a); 
        system("pause");
        return 0;
}
예제 #2
0
void mgpath(int xi,int yi,int xe,int ye,pathtype path)
{
     int i,j,di,count=0,k;
     if(xi==xe&&yi==ye)
     {
       path.data[path.length].i=xi;
       path.data[path.length].j=yi;
       path.length++;
       printf("ÃÔ¹¬Â·¾¶%dÈçÏÂ:\n",++count); 
       for(k=0;k<path.length;k++)
       {
           printf("\t(%d,%d)",path.data[k].i,path.data[k].j);
           if((k+1)%5==0)
           printf("\n");
           }
           printf("\n");
           }
       else
       {
           if(mg[xi][yi]==0)
           {
             di=0;
             while(di<4)
             {
               path.data[path.length].i=xi;
               path.data[path.length].j=yi;
               path.length++;
               switch(di)
               {
                 case 0:i=xi-1;j=yi;break;
                 case 1:i=xi;j=yi+1;break;
                 case 2:i=xi+1;j=yi;break;
                 case 3:i=xi;j=yi-1;break;
                 }
                 mg[xi][yi]=-1;
                 mgpath(i,j,xe,ye,path);
                 mg[xi][yi]=0;
                 path.length--;
                 di++;
                 }
                 }
                 }
}
예제 #3
0
파일: 1.cpp 프로젝트: halfopen/data_struct
void main(void)
{
sta:
	reset();
	puts("\t\t\t\t说明:\n");
	puts("1、鼠标左键点击添加墙壁,右键取消添加");
	puts("2、双击左上角在S开始走迷宫");
	puts("3、按回车键走下一步\n");
	for(int i=0;i<10;i++)
	{	for(int j=0;j<10;j++)
				if(fkm[j][i]!=0)printf(" %2d ",fkm[j][i]);
				else printf("    ");
		puts("");

	}
	while(1)
	{	if(mousemove()==1)
		{	puts("迷宫:");
			for(int i=0;i<10;i++)
			{	for(int j=0;j<10;j++)
					if(fkm[j][i]!=0)printf(" %2d ",fkm[j][i]);
					else printf("    ");
					puts("");
			}
			if(mgpath(1,1,8,8))
			{	int ret;ret=MessageBox(NULL,"找到出口了,是否继续?","迷宫",MB_YESNO | MB_SYSTEMMODAL );
				if(ret==IDYES)goto sta;
				else break;
			}
			else
			{	int ret;ret=MessageBox(NULL,"没有找到出口,是否继续?","迷宫",MB_YESNO | MB_SYSTEMMODAL );
				if(ret==IDYES)goto sta;
				else break;
			}
		}
	}
	closegraph();                 /*图形结束*/
}