Untitled

 avatar
unknown
plain_text
2 months ago
1.5 kB
10
Indexable
moveInimigo :: Tempo -> Inimigo -> Mapa -> (Direcao,Posicao)
moveInimigo t Inimigo {posicaoInimigo = (x,y), direcaoInimigo = direcao, velocidadeInimigo = velocidade, projeteisInimigo = lprojeteis} mapa
    = if any (\proj -> tipoProjetil proj == Gelo) lprojeteis
      then (direcao,(x,y))
      else
        case direcao of
            Norte -> if validaPosicaoTerra (x,y+0.501) mapa
                     then (direcao,(x,y+(velocidade*t)))
                     else if validaPosicaoTerra (x+0.501,y) mapa
                     then (Este,(x+(velocidade*t),y))
                     else (Oeste,(x-velocidade*t,y))
  
            Sul ->  if validaPosicaoTerra (x,(y-0.501)) mapa
                    then (direcao,(x,(y-velocidade*t)))
                    else if validaPosicaoTerra (x+0.501,y) mapa
                    then (Este,(x+(velocidade*t),y))
                    else (Oeste,(x-velocidade*t,y))

            Este -> if validaPosicaoTerra (x+0.501,y) mapa
                    then (direcao,(x+(velocidade*t),y))
                    else if validaPosicaoTerra (x,y+0.501) mapa
                    then (Norte,(x,y+(velocidade*t)))
                    else (Sul,(x,y-velocidade*t))

            Oeste -> if validaPosicaoTerra (x-0.501,y) mapa
                     then (direcao,(x-(velocidade*t),y))
                     else if validaPosicaoTerra (x,y+0.501) mapa
                     then (Norte,(x,y+(velocidade*t)))
                     else (Sul,(x,y-velocidade*t))
Leave a Comment