Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

erro na hora de rodar o jogo

Olá pessoal

Quando executo o seguinte código:

def boas_vindas

    puts"\n\n"
    puts "Bem vindo ao jogo de advinhação"
    puts"\n\n\n"
    puts "Por favor insira seu nome"
    nome = gets
    puts"\n\n\n"
    puts "Hora de começar o jogo "+ nome 
    puts"\n\n\n"

end

def sorteio_numero_secreto
    puts "Escolhendo um numero entre 0 e 200"
    sorteado = 175
    puts"\n\n\n"
    puts "Gostaria de tentar um chute?"
    puts"\n\n\n"
    sorteado
end

def pede_um_numero(tentativa,limite_tentativas)
    puts "Tentativa " + tentativa.to_s + " de " + limite_tentativas.to_s
    puts "Chutes até agora: " + chutes.to_s
    puts "Entre com o numero"
    chute = gets
    puts "Você chutou " + chute
    chute

end

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

     if acertou
     puts"acertou"
     return true
     end
    maior = chute.to_i > numero_secreto
    if maior
        puts"O chute passou do numero"
        else
        puts" O chute foi menor"
    end

      false
  end

boas_vindas
numero_secreto = sorteio_numero_secreto

limite_tentativas = 5
chutes = []
total_de_chutes = 0

for tentativa in 1...limite_tentativas
    chute = pede_um_numero tentativa limite_tentativas

    chutes[total_de_chutes] = chutes
    total_de_chutes += 1
    if verifica_se_acertou numero_secreto chute
        break
      end
end

O programa não executa o jogo em si só a verificação do nome e dá a seguinte mensagem de erro:

Mais_ou_Menos.rb:58:in block in <main>': undefined methodtentativa' for main:Object (NoMethodError) from Mais_ou_Menos.rb:57:in each' from Mais_ou_Menos.rb:57:in'

O que poderia ser o erro?

3 respostas
solução!

Oi Rodrigo,

Dá sempre uma lida no que o erro está dizendo que fica mais fácil de você corrigir.

No seu caso ele está dizendo Mais_ou_Menos.rb:58:in block in <main>': undefined method tentativa for main:Object (NoMethodError). Este erro fala que não existe o método tentativa na linha 58 do seu arquivo.

A linha 58 é o seguinte trecho de código:

chute = pede_um_numero tentativa limite_tentativas

Repare que tanto tentativa quanto limite_tentativas são parâmetros para o método pede_um_numero e por isto você deve separá-los por vírgula para que o código possa compilar.

Se der outros erros, dá uma lida que geralmente vai aparecer a linha e qual variável / método está dando problema.

Abraço!

Oi Rodrigo,

Dá sempre uma lida no que o erro está dizendo que fica mais fácil de você corrigir.

No seu caso ele está dizendo Mais_ou_Menos.rb:58:in block in <main>': undefined method tentativa for main:Object (NoMethodError). Este erro fala que não existe o método tentativa na linha 58 do seu arquivo.

A linha 58 é o seguinte trecho de código:

chute = pede_um_numero tentativa limite_tentativas

Repare que tanto tentativa quanto limite_tentativas são parâmetros para o método pede_um_numero e por isto você deve separá-los por vírgula para que o código possa compilar.

Se der outros erros, dá uma lida que geralmente vai aparecer a linha e qual variável / método está dando problema.

Abraço!

Oi Rodrigo,

Dá sempre uma lida no que o erro está dizendo que fica mais fácil de você corrigir.

No seu caso ele está dizendo Mais_ou_Menos.rb:58:in block in <main>': undefined method tentativa for main:Object (NoMethodError). Este erro fala que não existe o método tentativa na linha 58 do seu arquivo.

A linha 58 é o seguinte trecho de código:

chute = pede_um_numero tentativa limite_tentativas

Repare que tanto tentativa quanto limite_tentativas são parâmetros para o método pede_um_numero e por isto você deve separá-los por vírgula para que o código possa compilar.

Se der outros erros, dá uma lida que geralmente vai aparecer a linha e qual variável / método está dando problema.

Abraço!