Google Classroom
GeoGebraGeoGebra Classroom

Labirinto Perfeito 20x10

Um labirinto perfeito é aquele que se pode ir de qualquer ponto a qualquer outro ponto por um caminho único.

Entendendo o algoritmo utilizado

O algoritmo de busca em profundidade frequentemente segue as etapas abaixo: Numa malha quadriculada, cada quadrícula será chamada de célula. Uma matriz do tamanho do quadriculado é preenchida inicialmente com zeros, indicando células não visitadas. Cria-se uma lista de células que, inicialmente, está vazia.
  1. Escolhe-se aleatoriamente uma célula inicial, tornando-a a célula corrente e marca-se como célula visitada, fazendo o elemento correspondente na matriz igual a 1.
  2. Enquanto existirem células não visitadas, procede-se da seguinte maneira:
    1. Se a célula corrente tem alguma célula vizinha que ainda não foi visitada (0 na matriz):
      1. Escolhe-se aleatoriamente uma das células vizinhas não visitadas
      2. Insere-se a célula corrente no final da lista de células
      3. Remove-se a parede entre a célula corrente e a célula escolhida
      4. Faz-se a célula escolhida ser a célula corrente e marque-a como visitada (1 na matriz)
    2. Se todas as células vizinhas foram visitadas:
      1. Remove-se a última célula da lista de células
      2. Faz-se dessa célula a célula corrente
(Isso fará um caminho de volta até encontrar uma célula vizinha não visitada)