Implementación de un laberinto generado aleatoriamente usando el algoritmo de Prim

Estoy tratando de implementar un laberinto generado aleatoriamente usando el algoritmo de Prim.

Quiero que mi laberinto se vea así:

Sin embargo, los laberintos que estoy generando desde mi programa se ven así:

Actualmente estoy atascado en la implementación correcta de los pasos resaltados en negrita:

Comience con una cuadrícula llena de paredes.Elija una celda, márquela como parte del laberinto. Agregue los muros de la celda a la lista de muros.Si bien hay paredes en la lista:** 1. Elige un muro al azar de la lista. Si la celda del lado opuesto aún no está en el laberinto:Haz que la pared sea un pasaje y marca la celda en el lado opuesto como parte del laberinto. **Agregue los muros vecinos de la celda a la lista de muros.Eliminar el muro de la lista.

deEste artículo sobre la generación de laberintos.

¿Cómo determino si una celda es o no un candidato válido para la lista de pared? Me gustaría cambiar mi algoritmo para que produzca un laberinto correcto. Cualquier idea que me ayude a resolver mi problema sería apreciada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta