Trabalho final feito para conclusão do 1º período na matéria de Laboratório de Programação de Computadores 1 do curso de Engenharia da Computação no CEFET-MG Campus Divinópolis
. Neste trabalho foi utilizado estruturas de decisões e de repetições, funções, vetores e leitura/escita de arquivos na linguagem C.
*Tarefa
Dado um mapa e o ponto de onde o Jack Sparrow começa sua busca, faça um programa que o ajude a determinar a menor quantidade de tempo necessário para que ele encontre todos os tesouros.
*Entrada
A entrada é constituída de vários casos de testes que são lidos em um arquivo cujo nome será informado por Jack Sparrow. A primeira linha do caso de teste contém dois números inteiros a e l que indicam a altura e a largura do mapa respectivamente em quilômetros. Para simplificar, cada ponto do mapa representa um quilômetro quadrado. As próximas a linhas contêm l caracteres, cada um descrevendo um quadrado no mapa. Cada ponto do mapa é um dos seguintes pontos:
• @ O ponto onde Jack Sparrow começa a sua busca.
• ~ Água. Os tesouros estão dentro de uma ilha e Jack Sparrow não consegue atravessar água dentro da ilha.
• # Grupos rochosos e de despenhadeiros que Jack Sparrow não consegue atravessar.
• . Terra firme, que pode ser facilmente atravessada.
• * Local onde habitam canibais. O Jack Sparrow deve ficar a pelo menos um quadrado de distância dos canibais para não correr o risco de ser capturado por eles. Note que ficar a um quadrado de distância inclui as diagonais.
• ! Indica um tesouro. Jack Sparrow só sairá da ilha após pegar todos os tesouros escondidos.
O pirata Jack Sparrow consegue andar apenas nas quatro direções cardeais, ou seja, ele não consegue andar nas diagonais. Cada movimento corresponde a uma hora.
*Saída
Para cada caso de teste seu programa deve imprimir o menor número de horas que o Jack Sparrow precisa para recolher todos os seus tesouros e voltar ao ponto de partida. Se for impossível alcançar todos os tesouros, seu programa deverá imprimir -1. Obs: Se quiser, considere que a matriz pode ter no máximo tamanho 10x10.
- Feito em Linguagem C
- Plataforma Windows
- IDE Dev-C++
Criado por Pedro Henrique Louback Campos
Aluno do 3° periodo do curso de Engenharia da Computação
no CEFET-MG