Se quando ele achasse o fantas eu usasse o break para parar o loop, daria o mesmo efeito?
Se quando ele achasse o fantas eu usasse o break para parar o loop, daria o mesmo efeito?
Olá Pedro! Tudo bem?
Usar break
interromperia o loop interno assim que um fantasma fosse encontrado e movido, mas não resolveria o problema de mover o mesmo fantasma várias vezes para a direita. Isso acontece porque, ao usar break
, você sairia apenas do loop mais interno, e ao retornar ao loop externo, o processo de busca e movimentação começaria novamente.
O problema que você está enfrentando é que, sem uma estrutura auxiliar, o mesmo fantasma pode ser encontrado e movido várias vezes em uma única execução da função fantasmas()
.
A solução proposta no exercício é criar uma cópia do mapa antes de começar a mover os fantasmas. Dessa forma, você varre o mapa original (copia
) para encontrar os fantasmas, mas move-os apenas no mapa principal (m
). Isso garante que cada fantasma seja movido apenas uma vez por execução da função.
Portanto, enquanto o uso do break
poderia parar o loop interno ao encontrar um fantasma, ele não resolveria o problema de mover o mesmo fantasma várias vezes. A solução com a cópia do mapa é mais eficaz para esse tipo de situação.
Espero ter ajudado e bons estudos!