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!