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