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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 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.