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.
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.
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 method
sorteado' 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.