1
resposta

Erro na execução do programa

require_relative 'ui'

def palavra_mascarada(chutes, palavra_secreta)
    mascara = ""
    for letra in palavra_secreta.chars
        if chutes.include? letra
            mascara << letra
        else 
            mascara << "_"
        end
    end
    mascara
end

def pede_um_chute_valido(chutes, erros, mascara)
    cabecalho_de_tentativa chutes, erros, mascara
    loop do
        chute = pede_um_chute
        if chutes.include? chute
            avisa_chute_efetuado chute
        else 
            return chute
        end
    end
end

def joga(nome)
    palavra_secreta = escolhe_palavra_secreta

    erros = 0
    chutes = []
    pontos_ate_agora = 0

    while erros < 5
        mascara = palavra_mascarada chutes, palavra_secreta
        chute = pede_um_chute_valido chutes, erros, mascara
        chutes << chute

        if chute.size == 1
            palavra_secreta
            letra_procurada = chute[0]
            total_encontrado = palavra_secreta.count letra_procurada

            if total_encontrado == 0 
                avisa_letra_nao_encontrada 
                erros += 1 
            else
                avisa_letra_encontrada total_encontrado
            end

        else
            if chute == palavra_secreta
                avisa_acertou_palavra
                pontos_ate_agora += 100
                break
            else
                avisa_errou_palavra
                pontos_ate_agora -= 30
                erros += 1
            end
        end
    end

    avisa_pontos pontos_ate_agora
end

nome = da_boas_vindas

def jogo_da_forca
    loop do
        joga nome
        if nao_quer_jogar?
            break
        end
    end
end

def avisa_letra_nao_encontrada
    puts "Letra não encontrada."
end

def avisa_letra_encontrada(total_encontrado)
    puts "Letra encontrada #{total_encontrado} vezes."
end

def avisa_acertou_palavra
    puts "Parabens! Você acertou!"
end

def avisa_errou_palavra
    puts "Que pena.. você errou!"
end

def avisa_pontos(pontos_ate_agora)
    puts "Você ganhou #{pontos_ate_agora} pontos."
end

def avisa_chute_efetuado(chute)
    puts "Você já chutou #{chute}"
end

def da_boas_vindas
    puts "Bem-vindo(a) ao joga da forca"
    puts "Qual o seu nome?"
    nome = gets.strip
    puts "\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.strip
end

ta dando erro no terminal: undefined vairable or method 'nome' for main object def nao_quer_jogar? puts "Deseja jogar novamente? (S/N)" quero_jogar = gets.strip nao_quer_jogar = quero_jogar.upcase == "N" end

def cabecalho_de_tentativa(chutes, erros, mascara) puts "\n\n" puts "A palabra secreta é #{mascara} ." puts "Erros até agora: #{erros}" puts "Chutes até agora: #{chutes}" end

def pede_um_chute puts "Entre com uma letra ou uma palavra" chute = gets.strip puts "Será que acertou? Você chutou #{chute}" chute end

1 resposta

Oi Reginaldo, tudo bem? Até onde vi, você está chamando a função nao_quer_jogar? sem informar o nome do jogador. E você não colou essa função aqui, então não dá pra mim confirmar se é exatamente isso.

Cola essa função aqui pra gente ver?

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