Implementando um labirinto gerado aleatoriamente usando o algoritmo de Prim

Eu estou tentando implementar um labirinto gerado aleatoriamente usando o algoritmo de Prim.

Quero que meu labirinto fique assim:

no entanto, os labirintos que estou gerando no meu programa são assim:

No momento, estou preso em implementar corretamente as etapas destacadas em negrito:

Comece com uma grade cheia de paredes.Escolha uma célula, marque-a como parte do labirinto. Adicione as paredes da célula à lista de paredes.Enquanto houver paredes na lista:** 1. Escolha uma parede aleatória da lista. Se a célula do lado oposto ainda não estiver no labirinto:Faça da parede uma passagem e marque a célula do lado oposto como parte do labirinto. **Adicione as paredes vizinhas da célula à lista de paredes.Remova a parede da lista.

deeste artigo sobre geração de labirinto.

Como determinar se uma célula é ou não um candidato válido para a lista de paredes? Gostaria de mudar meu algoritmo para que ele produza um labirinto correto. Qualquer idéia que me ajudasse a resolver meu problema seria apreciada.

questionAnswers(6)

yourAnswerToTheQuestion