5
respostas

Por que a condição não está funcionando?

Quero que o programa interaja com o jogador. Se ele digitar o programa deveria dar a resposta "Não tem importância, explico novamente..." Se a resposta for diferente de a segunda afirmativa deveria ser lançada: "Ótimo, etc...", conforme código abaixo. Mas ao invés disso ao digitar o programa pula direto para a afirmativa após o , que deveria aparecer somente se o jogador digitasse . Onde estou errando?

puts nome + "Irei agora escolher um número aleatório entre 0 e 200 e você terá que adivinha-lo. Entendeu como funciona o nosso jogo? Digite sim ou não para continuarmos."
resposta = gets
puts "\n"
if "resposta" == "não"
puts "Não tem problema explico novamente. Basta você escolher um número entre 0 e 200. Se o seu número for o mesmo que eu escolhi você ganha o jogo. Vamos começar!"
else
puts "Ótimo! Então vamos continuar. Você parece ser bem inteligente, " + nome 
end
5 respostas

Tente retirar as aspas do resposta que esta no if

resposta = gets.strip 
# o .strip remove o ultimo caractere digitado, nesse caso o enter
if resposta == "não"
puts "Não tem problema explico novamente. Basta você escolher um número entre 0 e 200. Se o seu número for o mesmo que eu escolhi você ganha o jogo. Vamos começar!"
else
puts "Ótimo! Então vamos continuar. Você parece ser bem inteligente, " + nome 
end

Obrigado pela ajuda, André Coelho, mas continuo na mesma situação. Retirei as aspas de resposta e coloquei gets.strip, mas a condição continua não funcionando.

Fiz esse pequeno exemplo e funcionou normalmente.

puts "Ola seja bem vindo, deseja continuar?"
resposta = gets.strip
if resposta == 'nao'
    puts "Você respondeu nao"
else
    puts "Você respondeu sim"
end

André, copiei o seu código e salvei como teste.rb. Pela lógica ao responder "não" o programa deveria devolver "você respondeu não", porém ele devolveu "você respondeu sim". Será que o ruby instalado na minha máquina está com problema?

Você ta escrevendo não com o til, "não" é diferente de "nao" Por isso ele não entra na condição.