UNIVERSIDADE ESTADUAL DO PIAUÍ
CENTRO DE TECNOLOGIA E URBANISMO
CIÊNCIA DA COMPUTAÇÃO
TEORIA DOS GRAFOS
Prof. Marcus Vinicius
2018-2
por Lucas Pinheiro de Oliveira
Ajude um rato a encontrar um pedaço de queijo num labirinto como o do desenho abaixo:
Um labirinto desses pode ser representado por uma matriz retangular , cujo elemento vale 0 ou −1 conforme a casa correspondente do labirinto seja uma passagem livre ou uma parede, respectivamente. O labirinto (de tamanho ) deve ser criado dinamicamente por meio da leitura de um arquivo texto. O arquivo deve conter exatamente linhas por colunas de números inteiros, com valor 0 ou −1 para indicar espaço livre ou não (respectivamente) no labirinto. O objetivo do trabalho é desenvolver um programa, baseado na Busca em Largura, para, a partir de um ponto inicial, encontrar o menor caminho que o rato deve seguir até alcançar o queijo.
-
a. O programa deve permitir que o usuário possa carregar um novo arquivo de configuração de labirinto antes de executar a busca;
-
b. O programa deve solicitar a definição da posição inicial do rato, bem como da localização do queijo.
- a. Além da implementação do algoritmo de busca, o programa deverá conter um módulo de interface com o usuário, para exibir uma animação correspondente à solução encontrada. Existem boas bibliotecas disponíveis para a maioria das linguagens, como a PyGame (Python), Allegro (C/C++), JMonkeyEngine (Java), Unity (C#), dentre outros.
No casso desta aplicação foi utilizado Python com PyQt4
# Clone o repositório
$ git clone https://github.com/luccasPh/tp-grafo1.git && cd tp-grafo1
# Instale o virtualenv
$ pip install virtualenv
# Crie uma nova virtualenv
$ virtualenv nome_da_virtualenv
# Ative a nova virtualenv
$ source nome_da_virtualenv/bin/activate
# Instale as dependência
$ pip install -r requirements.txt
# executar a aplicação
$ python main.py