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

Vídeo 3.6

Estou com um problema ao tentar reproduzir o código que está no vídeo. o Terminal cita o erro "syntax error, unexpected keyword_end, expecting end-of-input" (isso na linha onde está um end)

Há algo que eu esteja esquecendo ou fazendo de forma diferente a do vídeo?

desde já agradeço

CÓDIGO:

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

def sorteia_numero_secreto
    puts "Escolhendo um número secreto entre 0 e 200..."
    sorteado = 175
    puts "Escolhido...Que tal tentar adivinhar o número secreto"
    sorteado
end

def pede_um_numero(tentativa, limite_de_tentativas)
    puts "\n\n\n\n"
    puts "Tentativa " + tentativa.to_s + " de " + limite_de_tentativas.to_s
    puts "Digite o número"
    chute = gets
    puts "Será que você acertou? Você chutou o número " + chute
    chute
end

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

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


da_boas_vindas
numero_secreto = sorteia_numero_secreto

limite_de_tentativas = 5

for tentativa in 1..limite_de_tentativas
    chute = pede_um_numero(tentativa, limite_de_tentativas)
    if verifica_se_acertou (numero_secreto, chute)
        break
    end    
end
2 respostas
solução!

Olá, Gabriel! O seu código tem um errinho que você deixou passar despercebido! Na linha

 if verifica_se_acertou (numero_secreto, chute)

você coloca um espaço não permitido entre o nome da função e seus parâmetros! Corrigindo, então, para

if verifica_se_acertou(numero_secreto, chute)

tudo vai funcionar perfeitamente! Quando os erros acontecem em nossos códigos, em grande parte das vezes é uma coisinha que parece boba mas que passa despercebida - então é sempre legal procurar na linha que o interpretador do Ruby indica que está o erro, porque ele quase sempre acerta!

Muito obrigado, não tinha notado esse espaço. O que eu havia achado estranho é que o erro no Terminal apontava para a última linha do código ( pensei que tinha colocado um "end" a mais). Mas muito obrigado, tudo funcionou perfeitamente.