Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

5. Usando recursão para solucionar problema de distância.

No aula o Guilherme explica que usamos a recursão para efetuar a mesma chamada 4 vezes,

Ele falou que na prática andaremos 4 para todos os lados, e depois 3 para todos os lados, e assim até 0.

Mas nao ficou claro pra mim ainda um ponto, toda vez que efetuamos a chamada recursiva:

        executa_remocao(mapa, posicao.direita, quantidade)
        executa_remocao(mapa, posicao.esquerda, quantidade)
        executa_remocao(mapa, posicao.cima, quantidade)
        executa_remocao(mapa, posicao.baixo, quantidade)

Ele nao irá decrementar nossa quantidade, como vou poder passar todos com 4, depois com 3 ?

XXXXXX
XHXXXX
X*FXXX
XXFXXX
XFFFFX
XXXXXX



def remove(mapa, posicao, quantidade)
        if quantidade == 0
            return
        end
        executa_remocao(mapa, posicao.direita, quantidade)
        executa_remocao(mapa, posicao.esquerda, quantidade)
        executa_remocao(mapa, posicao.cima, quantidade)
        executa_remocao(mapa, posicao.baixo, quantidade)
end

def executa_remocao(mapa, posicao, quantidade)
        if mapa[posicao.linha][posicao.coluna] == "X"
            return
        end
        mapa[posicao.linha][posicao.coluna] = " "
        remove(mapa, posicao, quantidade - 1)
end


if mapa[nova_posicao.linha][nova_posicao.coluna] == "*"
        remove(mapa, nova_posicao, 4)
    end
2 respostas
solução!

Oi Eduardo,

Decrementa, sim! Olha o quantidade-1 ali. Entendeu?

Oi Mauricio, verdade lembro que no dia fiquei refletindo e entendi que ele se chama, e varre verificando quais a s possibilidades que ele tem com base na quantidade, e no mapa, e posição atual,, e caso uma delas seja false e nao faz nada, sinceramente faz tempinho que vi o código...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software