3
respostas

problemas ao imprimir os números chutados

Olá! ao mostrar "Chutes até agora: " + chutes.to_s" o número chutado (23) aparece da seguinte forma:

Tentativa 2 de 5 Chutes até agora: ["23\n"] Entre com um número:

O problema continua com os outros chutes, imprimindo:

Tentativa 3 de 5 Chutes até agora: ["23\n", "50\n"] Entre com um número:

Onde estou errando, por favor?

def da_boas_vindas
    puts "Bem-vindo ao jogo da adivinhação"
    puts "Entre com seu nome, jogador:"
    nome = gets 
    puts "\n\n\n"
    puts "Começaremos o jogo para você, " + nome
end

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

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

def verifica_se_acertou(numero_secreto, chute)
       acertou = numero_secreto == chute.to_i
    if acertou 
        puts "Você acertou! Parabéns!"
        return true
    end
           maior = numero_secreto > chute.to_i
        if maior
            puts "Você errou! O número é maior."
        else
            puts "Você errou! O número é menor."
            false
        end
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
3 respostas

Boa tarde Leandro!

Onde você captura a variável chute, deixe assim:

chute = gets.chomp

Resultado

Tentativa 3 de 5

Chutes até agora: ["1", "2"]

Obrigado, William!

Acabei usando o o código abaixo, e funcionou. Curiosamente, na video-aula, durante o exemplo não tinha o .to_i no return do chute, e tinha funcionado; no meu caso tive que colocar para arrumar.

def pede_um_numero(chutes, tentativa, limite_de_tentativas)
    puts "\n\n\n"
    puts" Tentativa #{tentativa} de #{limite_de_tentativas}"
    puts "Chutes até agora: #{chutes}"
    puts "Entre com um número:"
    chute = gets.strip
    puts "Será que acertou? Você escolheu #{chute}"
    chute.to_i
end

Legal Leandro, que bom que conseguiu corrigir :)