3
respostas

estou tendo erro no meu programa, fecha rapidamente e não faz as 5 tentativas

puts "Bem vindo ao jogo da adivinhação"
puts "Qual é o seu nome?"
nome = gets

puts "\n\n\n\n\n\n"
puts"Começaremos o jogo para você, " + nome

puts "Escolhendo um número secreto entre 0 e 200.."
numero_secreto = 175
puts "Escolhido... que tal adivinhar hoje nosso número secreto?"

limite_de_tentativas = 5

for tentativa in 1 ... limite_de_tentativas
   puts "\n\n\n\n"
   puts "Tentativa " + tentativa.to_s + " de " + limite_de_tentativas.to_s
   puts "Entre com o numero"
   chute = gets
   puts "Será que acertou? Você chutou" + chute

   acertou = numero_secreto == chute.to_i
   if acertou
       puts "Acertou!"
       break
    else
    maior = numero_secreto > chute.to_i
        if mair
        puts "O número secreto é maior!"
        else
        puts "O número secreto é menor!"
        end
    end
end
3 respostas

Oi Eduardo tudo bem?

Você escreveu if mair ao invés de if maior .

Espero ter ajudado!!!

Bom dia , já corrigir mas infelizmente aparece a seguinte mensagem" :in pede_um_numero': undefined local variable or methodchutes' for main:Object (NameError)"

Colocarei meu código abaixo:


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

def pede_dificuldade
    puts "Qual o nível de dificuldade que deseja? (1 fácil, 5 difícil)"
    dificuldade = gets.to_i    
end

def sorteia_numero_secreto(dificuldade)
    case dificuldade
        when 1
            maximo = 30
        when 2
            maximo = 60
        when 3
            maximo = 100
        when 4
            maximo = 150
        else
            maximo = 200
        end
        puts "Escolhendo um número secreto entre 0 e 200.."
     sorteado = rand (maximo)
     puts "Escolhido... que tal adivinhar hoje nosso número secreto?"
    sorteado
end

def pede_um_numero (tentativa,limite_de_tentativas)
   puts "\n\n\n\n"
   puts "Tentativa #{tentativa} de #{limite_de_tentativas}"
   puts "Chutes até agora: #{chutes}"
   puts "Entre com o numero"
   chute = gets.strip
   puts "Será que acertou? Você chutou #{chute}"
   chute.to_i
end

def verifica_se_acertou(numero_secreto,chute)
    acertou = numero_secreto == chute.to_i

   if acertou
       puts "Acertou!"
       return true
    end

    maior = numero_secreto > chute.to_i
        if maior
        puts "O número secreto é maior!"
    else
        puts "O número secreto é menor!"
    end
    false
end    




da_boas_vindas
dificuldade = pede_dificuldade
numero_secreto = sorteia_numero_secreto dificuldade

pontos_ate_agora = 1000
limite_de_tentativas = 5
chutes =[]

for tentativa in 1..limite_de_tentativas
    chute = pede_um_numero tentativa, limite_de_tentativas
    chutes << chute

pontos_a_perder = (chute - numero_secreto).abs / 2.0
pontos_ate_agora -= pontos_a_perder

    if verifica_se_acertou numero_secreto,chutebreak
        break
    end
end

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

Oi Eduardo tudo bem?

Na linha

   puts "Chutes até agora: #{chutes}"

a variável não é chutes mas sim tentativa

E na linha

    if verifica_se_acertou numero_secreto,chutebreak

a variável não é chutebreak mas sim limite_de_tentativas

Espero ter ajudado!!!

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