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

Não entendi onde as funções são invocadas no código.

def boas_vindas
    puts "Olá, e seja bem vindo ao jogo da adivinhação!"
    puts "Qual o seu nome?"
    nome = gets
    puts "\n\n\n\n\n"
    puts "Tudo pronto," + nome
end

def sorteio
    puts "Escolhi um número secreto!"
    sorteado = 175
    puts "Que tal tentar adivinhar o número?"
    sorteado
end

def pede_numero(tentativa, limite_de_tentativas)
    puts "\n\n\n\n"
    puts "Tentativa número " + tentativa.to_s + " de " + limite_de_tentativas.to_s
    puts "Escolha um número!"
    chute = gets
    puts "Você escolheu o número: " + chute
    chute.to_i
end

def verifica(chute, numero_secreto)
    acertou = numero_secreto == chute

    if acertou
        puts "Resposta correta!"
        return true
    else
        maior = numero_secreto < chute
        if maior    
            puts "O número secreto é maior!"
            return false
        else
            puts "O número secreto é menor!"
            return false
        end
    end
end

boas_vindas
numero_secreto = sorteio

limite_de_tentativas = 5


for tentativa in 1..limite_de_tentativas

    chute = pede_numero(tentativa, limite_de_tentativas)

    if verifica(numero_secreto, chute)
        break
    end

end
3 respostas

Oi Giuliano, tudo bem? As funções são executadas sempre que você digita seus nomes sem o uso do def antes. Olha esse trecho:

boas_vindas
numero_secreto = sorteio

boas_vindas é uma função sendo executada e o sorteio também. Só o numero_secreto que é uma variável e não uma função.

Certo, mas onde que a função "pede_numero" está sendo invocada por exemplo?

solução!

Está sendo invocada dentro do laço neste ponto:

for tentativa in 1..limite_de_tentativas

    chute = pede_numero(tentativa, limite_de_tentativas)

    if verifica(numero_secreto, chute)
        break
    end

end

Nesta linha pra ser mais específico:

    chute = pede_numero(tentativa, limite_de_tentativas)