Olá, boa tarde! Tudo bem? Do jeito que a fução foi implementada ela não está explodindo as 4 direções no plano cartesiano?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, boa tarde! Tudo bem? Do jeito que a fução foi implementada ela não está explodindo as 4 direções no plano cartesiano?
Olá, Pedro! Tudo bem?
A função explodepilula2 é chamada quatro vezes dentro da explodepilula, cada uma com parâmetros diferentes que representam as direções: direita, esquerda, cima e baixo.
Um resumo de como cada chamada está configurada:
explodepilula2(heroi.x, heroi.y, 0, 1, 3); - Direção direita (soma 0 no eixo x e 1 no eixo y).explodepilula2(heroi.x, heroi.y, 0, -1, 3); - Direção esquerda (soma 0 no eixo x e -1 no eixo y).explodepilula2(heroi.x, heroi.y, 1, 0, 3); - Direção para baixo (soma 1 no eixo x e 0 no eixo y).explodepilula2(heroi.x, heroi.y, -1, 0, 3); - Direção para cima (soma -1 no eixo x e 0 no eixo y).Cada chamada está configurada para modificar a posição x ou y conforme a direção desejada, e a função explodepilula2 é responsável por realizar a explosão em cada direção de forma recursiva.
Se a função não está funcionando como esperado, sugiro verificar se a função ehvalida e ehparede estão retornando os valores corretos, pois elas determinam se a explosão pode continuar em uma determinada direção.
Espero ter ajudado e bons estudos!
A função funciona conforme o esperado, a minha dúvida é se ela explode para as 4 direções ao mesmo tempo. Visto que não vi local onde delimita uma direção para a explosão dela.
Olá, Pedro! Peço desculpa pela demora em responder.
A função deve, sim, explodir em todas as quatro direções ao mesmo tempo. O funcionamento está relacionado ao fato de a explodepilula chamar a função explodepilula2 quatro vezes, uma para cada direção.
Mesmo que não haja uma "delimitação" explícita de uma direção dentro da explodepilula, essas chamadas subsequentes fazem o trabalho de espalhar a explosão nos eixos x e y. O código está montado para que, quando uma chamada é feita, ela trata uma direção específica. Cada uma dessas quatro chamadas é processada em paralelo, uma para direita, esquerda, cima e baixo, como explicado na resposta anterior.
Se a sua dúvida é se todas essas explosões acontecem simultaneamente, pode ser que o comportamento pareça "sequencial" visualmente, mas, na lógica do programa, o processo está acontecendo para todas as direções dentro da mesma execução da função.
Se precisar de mais ajuda, o fórum está à disposição!
Bons estudos e continue firme!