A figura abaixo representa um labirinto formado por um array bidimensional composto por ?#? e ?.?.
# # # # # # # # # # # #
# . . . # . . . . . . #
. . # . # . # # # # . #
# # # . # . . . . # . #
# . . . . # # # . # . .
# # # # . # . # . # . #
# . . # . # . # . # . #
# # . # . # . # . # . #
# . . . . . . . . # . #
# # # # # # . # # # . #
# . . . . . . # . . . #
# # # # # # # # # # # #
(A figura não está correta, como podem ver)
Neste array, os #s representam as paredes do labirinto e os pontos representam os possíveis caminhos pelo labirinto. Os movimentos só podem ser feitos através de posições do array que contém ponto. Assumindo que haja uma saída no labirinto, deve-se criar um programa que encontre essa saída.
Durante o processo de procura da saída do labirinto, deve-se marcar a saída de alguma forma, e quando o labirinto for solucionado, deve ser apresentado na tela o labirinto com o caractere ?X? em cada posição que faz parte do caminho de saída do labirinto.
Escreva um método que permita o seu programa produzir novos labirintos de qualquer altura e largura de forma aleatória e que permita ao seu programa achar a saída nestes labirintos criados.
Substitua os ?#?s e ?.?s por uma interface gráfica (utilize cores diferentes para identificar paredes, caminhos percorridos e caminhos não percorridos).
Amigos gostaria de uma ajuda, estou com pouco tempo para desenvolver este programa, se alguém tiver um código que de uma idéia, seria de grande ajuda.
grato
EDIT - Artnol, use as tags [ code ] para mostrar texto monoespaçado (não somente código). Editei seu post para que todos posssam ver corretamente o labirinto.