Estratégia e vídeo final
A estratégia final do robot é tal que:
- Circular o mapa em Ss sucessivos de forma a encontrar todas as paredes e todas as ovelhas (falha apenas no caso de que um quadrado seja inacessível).
- Dirige-se para a primeira ovelha, calcula um caminho e empurra-a até ao curral.
- Caso se perca a ovelha (devido a paredes ou algo similar que impeça o robot de continuar atrás da ovelha), procura aleatoriamente nos quadrados que a circundam de forma a reencontrá-la, repetindo o processo.
- Dirigir-se para a outra ovelha:
- Se no quadrado está uma ovelha, calcula um caminho e empurra-a até ao curral.
- Caso se perca a ovelha (devido a paredes ou algo similar que impeça o robot de continuar atrás da ovelha), procura aleatoriamente nos quadrados que a circundam de forma a reencontrá-la, repetindo o processo.
- De forma semelhante, se não houver uma ovelha no quadrado (por se ter movido, por exemplo), procura aleatoriamente nos quadrados que a circundam.
Seguem-se dois vídeos de situações em que o robot consegue ganhar.
Estes próximos dois exemplos mostram situações em que o robot não consegue ganhar.
Esta deve-se ao facto de o robot não conseguir gritar para que a ovelha se movimente para nenhuma casa, para resolver esta situação o robot teria que perceber que esta ovelha se encontrava sem outra saida e devia gritar e afastar-se da casa onde está para dar a possibilidade de a ovelha sair donde estava presa.
Esta situação em que falha o robot deveria conseguir saber que se esse quadrado (canto inferior direito) é inacessivel de todas as direções é porque está bloqueado por uma ovelha e passar para o próximo e examiná-lo.
Todo o código usado neste projeto encontra-se disponivel em https://drive.google.com/file/d/19mHQ0c51jDf_8rBrIskxUkCPUUY9kalb/view?usp=sharing

Comentários
Enviar um comentário
Algo a comentar?