Problema de programación en C++: programar un juego de laberinto
Lo encontré en un libro y solo escribí una estructura (¡demasiadas! ¡Usé pila para hacerlo!). ¡Espero que ayude! El programa es el siguiente:
typedef struct{
int ord;//El número de serie en la ruta del bloque de canal
PosType seat;// Las coordenadas del bloque de canal en el laberinto Posición
int di;//La dirección desde este bloque de canal al siguiente bloque de canal
}SelemType;//El tipo de elemento de la pila
Status MazePath(MazeType maze,PosType start,PosType end){
//Si hay un pasaje desde el inicio de la entrada hasta el final de la salida en el laberinto, por lo tanto, busque un pasaje almacenado en la pila
// (desde abajo hacia arriba de la pila) y devuelve VERDADERO; de lo contrario, devuelve FALSO
InitStack(S);
curpos=start;//Establecer la posición actual como posición de entrada
curstep=1;//El primer paso de la exploración
hacer{
if(Pass(curpos)){//Se puede pasar la posición actual, es decir, es un pasaje que nunca se ha pasado Bloque
FootPrint(curpos);//Dejar huellas
e=(curstep,curpos,1);
Push(s,e);/ /Agregar ruta
if(curpos==end)
return(TRUE);//llegar al punto final
curpos=NextPos(curpos,1);/ /La siguiente posición está al este de la posición actual
curstep++;/ /Explora el siguiente paso
}
else{//No se puede pasar la posición actual
if(!StackEmpty(S)){
Pop(S,e);
while(e.di==4&&!StackEmpty(S)){ p>
MarkPrint(e.seat);//Dejar un marca que no se puede pasar y dar un paso atrás
Pop(S,e);
}
if(e.di<4){ p>
e.di++;
Push(s.e);//Cambia a la siguiente dirección para explorar
curpos =NextPos(e.seat e.di);/ /Establece la posición actual para que sea el bloque adyacente en la nueva dirección
}//if
}//if p>
}//else
}mientras(!StackEmpty(S));
return(FALSE);
}//MazePath