Red de conocimiento informático - Computadora portátil - Problema de programación en C++: programar un juego de laberinto

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)){

MarkPrint(e.seat);//Dejar un marca que no se puede pasar y dar un paso atrás

Pop(S,e);

}

if(e.di<4){

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

}//else

}mientras(!StackEmpty(S));

return(FALSE);

}//MazePath