Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Uso de comandos next e break

Pessoal, no código da função joga resolvi fazer a construção sem o comando next:

def joga(nome)
    mapa = le_mapa 1

    while true
        desenha mapa
        direcao = pede_movimento
        heroi = encontra_jogador mapa
        nova_posicao = calcula_nova_direcao heroi, direcao

        if posicao_valida? mapa, nova_posicao
            mapa[heroi[0]][heroi[1]] = " "
            mapa[nova_posicao[0]][nova_posicao[1]] = "H"
        end

    end
end

O programa também funcionou normalmente. Desde que comecei a estudar programação, sempre houve orientação para evitar comandos que quebrem de forma brusca o fluxo de execução. A construção que eu fiz é equivalente? Existe mesmo essa boa prática?

1 resposta
solução!

Opa João, tudo bem? A questão do next evita que o laço todo seja executado quando desnecessário, tipo, se a condição for inválida, ele não precisa executar o que vem abaixo, então segue para a próxima iteração. Essa não é uma interrupção brusca.

Acho sim que existe essa boa prática, mas não neste contexto em si. Acho que ela está mais ligada a fluxos visuais.

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