2
respostas

Como mostrar numero sorteado?

Oi pessoal! Tentei de diversas formas mostrar o número sorteado ao fim do jogo caso a pessoa não consiga adivinhar nas 5 tentativas. Como vcs fariam? Abraços.

2 respostas

Vou comentando aqui as formas como eu tentei fazer isso.

Meu primeiro "teste" foi alter "def sorteia_numero_secreto(dificuldade)", simplesmente modificando-a adicionando a linha puts sorteado

def sorteia_numero_secreto(dificuldade)
puts "\n" * 3
case dificuldade
when 1
    maximo = 30
when 2
    maximo = 60
when 3
    maximo = 60
when 4
    maximo = 150
else
    maximo = 200
end
puts "Escolhendo um número entre 1 e #{maximo}..."
sorteado = rand(maximo) +1
puts "Escolhido ... que tal adivinhar o nosso número secreto. qual é seu chute?"
puts sorteado
sorteado    
end 

Rodei no terminal e, obviamente, ele imprimiu o número aleatoriamente escolhido: "Escolhendo um número entre 1 e 30... Escolhido ... que tal adivinhar o nosso número secreto. qual é seu chute? 25"


O próximo passo

Pensei que daria certo inserir na penúltima linha o código puts sorteado, mas me deparei com o seguinte erro:

Traceback (most recent call last): maior_ou_menor.rb:82:in <main>':undefined local variable or methodsorteado' for main:Object (NameError)

Deu ruim, rapazeada :-(

Depois que eu conseguir imprimir o número aleatoriamente sorteado ao fim do jogo, daí vou me preocupar em criar uma regra (um "if" talvez?) para exibir o tal número apenas se o jogador errar na quinta tentativa.

Oi Leonardo, tudo bem? Nesse trecho de código que você mostrou, não teria problema, para entender melhor eu precisaria ver o código do jogo inteiro e assim eu te ajudaria.

O erro que deu, aconteceu provavelmente por que você está tentando imprimir a variável sorteado em um escopo onde ela não existe. Lembra? Variávels criadas dentro de blocos de função (def - end) só existem lá dentro.