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

Chutes até agora: ["xxx\n", "xxx\n"] - Ruby I, Aula 4, Vídeo 3

Olá, tudo bem?

Depois que digito os números, o programa os retorna seguidos de /n...

Por que isso acontece?... Como solucionar?... Será que está relacionado à versão que instalei?

Ex.:

...

Tentativa 1 de 5

Chutes até agora: []

Entre com o número

30

Será que acertou? Você chutou 30

O número secreto é maior!

Tentativa 2 de 5

Chutes até agora: ["30\n"]

Entre com o número

190

Será que acertou? Você chutou 190

O número secreto é menor!

Tentativa 3 de 5

Chutes até agora: ["30\n", "190\n"]

Entre com o número

175

Será que acertou? Você chutou 175

Acertou!

...

Obs.: Acredito que estou com a mesma dúvida do Ayrton (o tópico que ele criou ainda não está solucionado, mas não consegui escrever por lá).

Segue o meu código:

def da_boas_vindas
    puts "Bem-vindo ao jogo da adivinhação!"
    puts "Qual é o seu nome?"
    nome = gets
    puts "\n\n\n\n\n\n"
    puts "Começaremos o jogo para você, " + nome
end

def sorteia_numero_secreto
    puts "Escolhendo um número secreto entre 0 e 200..."
    sorteado = 175
    puts "Escolhido... Que tal adivinhar hoje nosso número secreto?"
    sorteado
end

def pede_um_numero(chutes, tentativa, limite_de_tentativas)
    puts"\n\n\n\n"
    puts "Tentativa " + tentativa.to_s + " de " + limite_de_tentativas.to_s
    puts "Chutes até agora: " + chutes.to_s
    puts "Entre com o número"
    chute = gets 
    puts "Será que acertou? Você chutou " + chute    
    chute
end

def verifica_se_acertou(numero_secreto, chute)
    acertou = numero_secreto == chute.to_i

    if acertou
        puts "Acertou!"
        return true
    end

    maior = numero_secreto > chute.to_i
    if maior
        puts "O número secreto é maior!"
    else
        puts "O número secreto é menor!"
    end
    false
end



da_boas_vindas
numero_secreto = sorteia_numero_secreto

limite_de_tentativas = 5
chutes = []
total_de_chutes = 0

for tentativa in 1..limite_de_tentativas

    chute = pede_um_numero chutes, tentativa, limite_de_tentativas    
    chutes[total_de_chutes] = chute
    total_de_chutes = total_de_chutes + 1

    if verifica_se_acertou numero_secreto, chute
        break
    end    

end
2 respostas
solução!

Oi Willian, esse \n é a quebra de linha que o enter insere quando você aperta a tecla.

Pra resolver, a forma mais simples é usar o strip no gets dessa forma:

chut  = gets.strip

Resolvido! Muito obrigado, Wanderson!