| 
				 return Maze; 
} 
函数int SetMaze(int **Maze,int s,int x,int y),用于设置迷宫中的路径,实现的核心代码如下: 
int CMaze::SetMaze(int **Maze,int s,int x,int y) 
{ 
    int r,xx,yy; 
    int i; 
    while(x!=2||y!=1)       /* 当移动点不是终点时,执行循环中的代码 */ 
    { 
        if(Maze[y][x-1]*Maze[y][x+1]*Maze[y+1][x]*Maze[y-1][x]==0) 
/*如果点(x,y)的四方有连通点*/ 
        {  
            r=rand()%4; /*随机产生r的值,r=0、1、2或3分别表示右、下、左、上*/ 
            xx=x+(r==0)-(r==2); 
            yy=y+(r==1)-(r==3); 
/*得到新点(xx,yy),该点是随机产生的,不一定是连通点*/ 
            while(Maze[yy][xx]!=0) /*当(xx,yy)走不通时,继续找可以连通的点*/ 
            { 
                r=rand()%4; 
                xx=x+(r==0)-(r==2); 
                yy=y+(r==1)-(r==3); 
            } 
            x=xx;y=yy;s++;      /*更新移动点的坐标,增加步数s的值*/ 
            Maze[y][x]=s;           /*将s赋值于新位置*/ 
        } 
        else    /*如果没有连通点,则退回到s-1处,寻找s-1四周的变量还有没有路可走*/ 
        { 
            for(i=0;i<4;i++) 
            { 
                xx=x+(i==0)-(i==2); 
                yy=y+(i==1)-(i==3); 
                if(Maze[yy][xx]==s-1) 
                { 
                    x=xx;y=yy;s=Maze[y][x]; 
                    break; 
                } 
            } 
            if(i==4)        /*s-1处也无路可走,便结束算法*/ 
                break; 
        } 
    } 			
				 |