Estratégia e vídeo final

    A estratégia final do robot é tal que:

  1. 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).
  2. 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.
  3. 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. 



    Devido a um problema com o video não foi possivel utiliza-lo por isso apresentamos em imagem a situação que se tratava.
    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