A minha dúvida se refere a como esta estrutura auxiliar criada age no código e como eu posso identificar situações que exijam o uso de outras estruturas auxiliares.
A minha dúvida se refere a como esta estrutura auxiliar criada age no código e como eu posso identificar situações que exijam o uso de outras estruturas auxiliares.
Olá, Filipe! Tudo bem?
No código apresentado, a estrutura auxiliar utilizada é uma cópia do mapa original, chamada de copia
. Essa cópia é criada para evitar o problema de empurrar o mesmo fantasma várias vezes para a direita.
A função fantasmas()
faz uma cópia do mapa original para a copia
e, em seguida, percorre cada caractere do mapa copia
. Sempre que encontrar um fantasma, verifica se é possível movê-lo para a direita no mapa original (m
). Se for possível, o fantasma é movido apenas no mapa original.
Dessa forma, ao utilizar a estrutura auxiliar copia
, evitamos que o mesmo fantasma seja movido várias vezes na mesma iteração do loop.
Para identificar situações que exijam o uso de outras estruturas auxiliares, é importante analisar o problema em questão e identificar se há a necessidade de armazenar valores temporários, fazer cópias de estruturas ou realizar operações em diferentes momentos.
No caso do código apresentado, a criação da cópia do mapa se mostrou necessária para evitar o problema mencionado. Portanto, sempre que você se deparar com uma situação em que precisa realizar operações em diferentes momentos ou armazenar valores temporários, pode ser interessante utilizar uma estrutura auxiliar.
Espero ter ajudado a esclarecer a sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!