Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

jogador acertando na primeira tentativa

concluindo a segunda aula de Ruby conseguindo fazer o jogo rodar, eu vim com uma questão que não consegui resolver de forma bonita pelo menos… e se o jogador acertar de primeira? esse não e o problema, mas eu queria colocar uma mensagem de "parabens vc acertou na primeira tentativa..." e ate ai td bem também ficou assim meu código

puts "tentativa 1"
puts "digite seu numero"
chute = gets
puts "vc chutou " + chute

acertou = numero_secreto == chute.to_i

    if acertou
        puts "voce acertou"
        if acertou
            puts "parabens, vc acertou na primeira tentativa"
        end

a solução nada pratica que encontrei para essa solução foi colocar TUDO dentro de um loop, que leria o primeiro bloco de código individualmente depois o restante das tentativas o programa leria em outro loop

vou deixar o código completo ate agora, não tem bugs ate agora, mas o código ficou muito mal organizado e não sei como melhorar-lo

puts "\n\n\n\n" puts "olar como vai vc? \n\n" puts "vamos jogar um jogo de adivinhacao? \n" puts "digite abaixo seu nome \n\n"

nome = gets puts "muito bem " + nome + "vc aprende bem rapido mesmo" puts "\n\n\n\n"

puts "voce tera 5 tentativas para adivinhar um numero \n\n" puts "esse numero vai ser sorteado de 0 a 50 \n\n" numero_secreto = 42 puts "escolhendo um numero....... \n" puts "numero escolhido, vamos comecar"

#######################################################################

a vida que esta abaixo eh apenas um dado usado nos dois loops para demarcar

o final das tentativas

vida = 3

for blau in 1..1 for tentativa in 1..1

puts "tentativa 1"
puts "digite seu numero"
chute = gets
puts "vc chutou " + chute

acertou = numero_secreto == chute.to_i

    if acertou
        puts "voce acertou"
        if acertou
            puts "parabens, vc acertou na primeira tentativa"
        end

break else puts "voce errou" maior = numero_secreto > chute.to_i if maior puts "o numero secreto e maior" else puts "o numero secreto e menor" end end end break

for tentativa in 2..3

puts "tentativa " + tentativa.to_s + " de " + vida.to_s
puts "digite seu numero"
chute = gets
puts "vc chutou " + chute

acertou = numero_secreto == chute.to_i

    if acertou
        puts "voce acertou"

break else puts "voce errou" maior = numero_secreto > chute.to_i if maior puts "o numero secreto e maior" else puts "o numero secreto e menor" end end end end

obg galera

1 resposta
solução!

Fala Ronan beleza ?

No começo é assim mesmo, nem sempre vamos usar as melhores práticas, nem vamos fazer um "código bonito", o importante é você entender o conceito.

Com relação a sua questão, durante o curso o nosso código vai ser refatorado diversas vezes e você vai aprender boas práticas de programação.