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
{ p>
//?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);
}