3
respostas

Erro de Verificação

Estou realizando a terceira aula e estou tendo um problema... não consigo identificar o erro que impende que a função de verificação seja realizada.

Traceback (most recent call last): 3: from exercicio.rb:31:in <main>' 2: from exercicio.rb:31:ineach' 1: from exercicio.rb:33:in block in <main>' exercicio.rb:17:inverification': undefined local variable or method `resposta' for main:Object (NameError) Did you mean? respond_to?

def name_and_value
    puts "Bem-vindo ao The Game, qual seria o seu nome?"
    nome = gets
    valor = rand(101)
    valor.to_i
end

number = name_and_value

def answer (tentativas)
    puts "Está é a tentativa "+tentativas.to_s+", Qual é o valor que estou pensando?"
    guess = gets
    guess.to_i
end

def verification
    if resposta == number
        puts "Acertou"
        return true
    else
        if aproximação = resposta > number
            puts "O número secreto é menor"
            return false
        else
            puts "O número secreto é maior"
            return false
        end
    end
end

for tentativas in 1..10
    resposta = answer (tentativas)
    if verification
        break
    end
end
3 respostas

Olá Maycon,

Na sua função verification você utiliza as variáveis resposta e number, então você precisa passar esses valores para a função assim:

# Na criação da função
def verification (resposta, number)

# No uso da função
verification(resposta, number)

Segue abaixo o código completo modificado (modifiquei a posição de number = name_and_value por questão de organização):

def name_and_value
    puts "Bem-vindo ao The Game, qual seria o seu nome?"
    nome = gets
    valor = rand(101)
    valor.to_i
end

def answer (tentativas)
    puts "Está é a tentativa "+tentativas.to_s+", Qual é o valor que estou pensando?"
    guess = gets
    guess.to_i
end

# Adicionando os parâmetros resposta e number
def verification (resposta, number)
    if resposta == number
        puts "Acertou"
        return true
    else
        if aproximação = resposta > number
            puts "O número secreto é menor"
            return false
        else
            puts "O número secreto é maior"
            return false
        end
    end
end

number = name_and_value

for tentativas in 1..10

    resposta = answer (tentativas)

    # Passando os valores de resposta e number para verification
    if verification(resposta, number)
        break
    end
end

Finalmente após muito tempo tive uma oportunidade para voltar a estudar. Fui realizar o teste e me deparo com o seguinte erro;

exercicio.rb:33: syntax error, unexpected ')', expecting '=' ...verification (resposta, number) exercicio.rb:36: syntax error, unexpected end, expecting end-of-input

Verifiquei o código e até mesmo tentei executar o código já deixado aqui. Quando edito o meu, encontro este erro, quando tento utilizar o já deixado aqui o código nem mesmo compila. Imagino que o erro esteja na verificação, mas ainda não sei como desenvolver

Olá Maycon, nesse caso compartilha o seu código atual com as alterações por favor.

Testei novamente o código que eu enviei e não tive problemas ao executar, qual foi o erro ou mensagem que apareceu ao tentar executar?

Abaixo você pode testar a execução do código:

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