Red de conocimiento informático - Aprendizaje de código fuente - Algoritmo para buscaminas cuando el clic llega a un espacio. Por favor.

Algoritmo para buscaminas cuando el clic llega a un espacio. Por favor.

Procese el espacio en el que se hizo clic manualmente y juzgue si el formato de la posición correspondiente es un espacio y no se ha hecho clic según arriba, derecha, abajo, izquierda o en un orden definido por usted. De lo contrario, omita. Si es así, haga clic en él automáticamente y agregue estas posiciones a la cola para su posterior procesamiento.

Diagrama de flujo simple:

¿La posición actual es una posición en blanco? ----No---gt;?Procesamiento no en blanco

|

|?Sí

|

V

Unirse a la cola

|

V

---gt; ¿La cola está vacía? --------gt;Sí---gt;?Fin

||

||No

||

|V

|?El primer elemento se retira de la cola

||

|V

|?Haga clic para abrir el La posición señalada por el elemento

||

|V

|? Si las posiciones superior, izquierda, inferior y derecha están en blanco y no se hace clic en ellas, se agregará a la cola

||

--------

La solución anterior es no recursiva, la solución recursiva es más fácil:

Pseudocódigo El algoritmo se describe a continuación:

Haga clic(pos)//?Haga clic para abrir?pos?esta posición

{

//?IsClicked()?Determinar si es La cuadrícula en la que se ha hecho clic

if?(IsClicked(pos))

return;

//?IsBlank()? Determinar si es una cuadrícula en blanco

p>

if?(!?IsBlank(pos))

{

Hacer clic en una cuadrícula que no está en blanco

}

//?El siguiente es el proceso de hacer clic en una cuadrícula en blanco

ClickBlank(pos );

}

Haga clic en blanco(pos)

{

if?(!?IsBlank(pos))

rerurn;

if?(IsClicked(pos))

return;

//?Lo siguiente hace clic automáticamente en las cuadrículas en las cuatro direcciones

//?Debe calcular las posiciones de la cuadrícula en las cuatro direcciones y regresar directamente si no es válido

ClickBlank (la cuadrícula arriba de pos);

ClickBlank (la cuadrícula a la derecha de pos);

ClickBlank (la cuadrícula debajo de pos);

ClickBlank (la cuadrícula a la izquierda de pos);

}