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

LOOP DO (Ruby)

Estou tentando utilizar o "LOOP DO" no jogo da forca. Mas ele não funciona.

Alguém poderia me dizer aonde estáo erro?

Código:

def da_boas_vindas
    puts "Bem vindo ao jogo da forca"
    puts "Qual é o seu nome?"
    nome = gets.strip
    puts "\n\n\n"
    puts "Começaremos o jogo para você, #{nome}."
    nome
end

def escolhe_palavra_secreta
    puts "Escolhendo uma palavra secreta.."
    palavra_secreta = "programador"
    puts "Palavra secreta com #{palavra_secreta.size} letras .. boa sorte."
    palavra_secreta
end

def nao_quer_jogar?
    puts "Deseja jogar novamente? (S/N)"
    quero_jogar = gets.strip
    nao_quer_jogar = quero_jogar.upcase == "N"
end

def pede_um_chute
    puts "\n\n\n\n"
    puts "Erros até agora: #{erros}."
    puts "Chutes até agora: #{chutes}"
    puts "Entre com uma letra ou uma palavra."
    chute = gets.strip
    puts "Será que acertou? Você chutou #{chute}."
    chute
end


def joga(nome)
    palavra_secreta = escolhe_palavra_secreta

    erros = 0
    chutes =[]
    pontos_ate_agora = 0

    while erros < 5
        chute = pede_um_chute chutes, erros
        chute << chute
    end



    puts "Você ganhou #{pontos_ate_agora} pontos."


end

nome = da_boas_vindas

loop do 
    joga nome
    if nao_quer_jogar?
        break
    end
end
1 resposta
solução!

Oi Luis Gustavo!

Percebi alguns erros aqui no seu código:

Na função joga(nome) você chama a função pede_um_chute(chutes, erros). Porém, ao declarar a função pede_um_chute ela não recebe argumento algum, apenas retorna o chute.

Outro erro é logo na linha abaixo, onde você tenta inserir o chute do jogador no vetor de chutes. Você esqueceu do s em chutes e ficou chute << chute.

Identifiquei também que o contador de erros nunca é alterado. Corrigindo esses problemas acho que seu programa vai funcionar direitinho =)

Espero ter ajudado! Caso sim, lembre-se de marcar a solução de sua pergunta! Isso facilita a vida de pessoas com problemas parecidos =)

Bons estudos e boa sorte!