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

O ruby não reconhece a subtração.

Eu tento rodar o jogo e dá erro Eu revisei o código e comparei com a vídeo aula e os exercícios e não sei o que fazer.

O código é esse:

pontos_ate_agora = 1000
limite_de_tentativas = 5
chutes = []

for tentativa in 1..limite_de_tentativas

    chute = pede_numero chutes, tentativa, limite_de_tentativas
    chutes << chute

    pontos_a_perder = (chute - numero_secreto) / 2
    pontos_ate_agora -= pontos_a_perder

    if verifica numero_secreto, chute
        break
    end
end

E a mensagem de erro no prompt é essa:

Tentativa 1 de 5
Chutes ate agora: []
Entre com o numero
89
Sera que acertou?? Voce chutou 89
C:/Users/Programar/Desktop/Jogo/maior_ou_menor.rb:56:in `block in <main>': undefined method `-' for "89":String (NoMethodError)
Did you mean?  -@
        from C:/Users/Programar/Desktop/Jogo/maior_ou_menor.rb:50:in `each'
        from C:/Users/Programar/Desktop/Jogo/maior_ou_menor.rb:50:in `<main>'
3 respostas
solução!

Oi Genilson, você transformou o seu chute em inteiro com o chute.to_i ?

Genilson, você tem que transformar o chute em um inteiro, já que quando você captura o numero do terminal ele por padrão vem como uma String ;)

Olá, provavelmente você esqueceu de realizar a conversão do texto recebido através do gets para um número inteiro:

chute.to_i