1
resposta

mensagem dupla

def da_boas_vindas
    puts " Bem vindo ao jogo da forca"
    puts "Qual e o seu nome?"
    nome = gets.strip
    puts " Comecaremos o jogo pra voce, #{nome}"
    nome
end

def escolhe_palavra_secreta
    puts " Escolhendo uma palavra secreta"
    palavra_secreta = "programador"
    puts " Palavra secreta escolhida com #{palavra_secreta.size} caracteres! Boa sorte adivinhando"
    return palavra_secreta

end

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

end

def pede_chute(chutes, erros)
    puts "\n\n\n\n"
    puts " Erros ate agora #{erros}"
    puts "Chutes ate agora #{chutes}"
    puts "Entre com uma letra ou uma palavra"
    chute = gets.strip
    puts "Sera que voce acertou? Voce chutou #{chutes}"
    chute

end




def joga(nome)
    palavra_secreta = escolhe_palavra_secreta

    erros = 0
    chutes = []
    pontos_ate_agora = 0

    while erros < 5
        chute = pede_chute(chutes, erros)
        chutes << chute
    end

    puts "Voce ganhou #{pontos_ate_agora} pontos."
end



nome = da_boas_vindas
palavra_secreta = escolhe_palavra_secreta



loop do 
    joga(nome)
    if nao_quer_jogar
        break
    end
end

Quando executo esse codigo a mensagem " Escolhendo uma palavra secreta Palavra secreta escolhida com 11 caracteres! Boa sorte adivinhando Escolhendo uma palavra secreta Palavra secreta escolhida com 11 caracteres! Boa sorte adivinhando" aparece duas vezes ... nao consigo identificar o pq... alguem pode dar uma ajudinha? ;)

1 resposta

Olá Marconi,

Isso está acontecendo porque o escolhe_palavra_secreta está sendo chamado 2 vezes, uma vez na linha 56: palavra_secreta = escolhe_palavra_secreta que está depois de nome = da_boas_vindas e antes do loop e uma segunda vez dentro do def joga(nome) na linha 39.

Você pode então apenas apagar o da linha 56 que está logo antes do loop no final.

Espero ter ajudado, qualquer dúvida é só falar!