Olá. Meu programa está apresentando erro na hora de perguntar se o usuário deseja jogar novamente. Não consigo achar o problema. Podem me ajudar a entender?
Esta é a mensagem:
maior_ou_menor.rb:132:in `block in <main>': undefined method `não_quer_jogar?' for main:Object (NoMethodError)
from maior_ou_menor.rb:130:in `loop'
from maior_ou_menor.rb:130:in `<main>'
E o código segue abaixo:
def da_boas_vindas
puts
puts " P /_\ P "
puts " /_\_|_|_/_\ "
puts " n_n | ||. .|| | n_n Bem vindo ao "
puts " |_|_|nnnn nnnn|_|_| Jogo de Adivinhação!"
puts " |' ' | |_| |' ' | "
puts " |_____| ' _ ' |_____| "
puts " \__|_|__/ "
puts
puts "Jogador, qual é o seu nome?"
nome = gets.strip
puts "\n\n\n\n"
puts "Começaremos o jogo para voce, #{nome}"
nome
end
def pede_dificuldade
puts "Qual o nível de dificuldade?"
puts "(1) Muito fácil (2) Fácil (3) Normal (4) Difícil (5) Impossível"
puts "Escolha:"
dificuldade = gets.to_i
end
def ganhou
puts
puts " OOOOOOOOOOO "
puts " OOOOOOOOOOOOOOOOOOO "
puts " OOOOOO OOOOOOOOO OOOOOO "
puts " OOOOOO OOOOO OOOOOO "
puts " OOOOOOOO # OOOOO # OOOOOOOO "
puts " OOOOOOOOOO OOOOOOO OOOOOOOOOO "
puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO "
puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO "
puts "OOOO OOOOOOOOOOOOOOOOOOOOOOOOO OOOO "
puts " OOOO OOOOOOOOOOOOOOOOOOOOOOO OOOO "
puts " OOOO OOOOOOOOOOOOOOOOOOOO OOOO "
puts " OOOOO OOOOOOOOOOOOOOO OOOO "
puts " OOOOOO OOOOOOOOO OOOOOO "
puts " OOOOOO OOOOOO "
puts " OOOOOOOOOOOO "
puts
puts " Acertou! "
puts
end
def sorteia_numero_secreto(dificuldade)
case dificuldade
when 1
maximo = 30
when 2
maximo = 60
when 3
maximo = 100
when 4
maximo = 150
else
maximo = 200
end
puts "Escolhendo um numero secreto entre 1 e #{maximo}..."
sorteado = rand(maximo) + 1
puts "Escolhido! Que tal adivinhar nosso numero secreto?"
sorteado
end
def pede_um_numero(chutes,tentativa,limite_de_tentativas)
puts "\n\n\n\n"
puts "Tentativa #{tentativa} de #{limite_de_tentativas}"
puts "Chutes até agora: #{chutes}"
puts "Entre com o numero"
chute = gets.strip
puts "Será que você acertou? Voce chutou: #{chute}"
chute.to_i
end
def verifica_se_acertou(numero_secreto,chute)
acertou = numero_secreto == chute.to_i
if acertou
ganhou
return true
end
maior = numero_secreto > chute.to_i
if maior
puts "Errou! O número secreto é maior."
else
puts "Errou! O número secreto é menor."
end
false
end
def joga(nome,dificuldade)
numero_secreto = sorteia_numero_secreto dificuldade
limite_de_tentativas = 5
chutes = []
pontos_ate_agora = 100
for tentativa in 1..limite_de_tentativas
chute = pede_um_numero chutes, tentativa, limite_de_tentativas
chutes << chute
if nome == "Fabio"
ganhou
break
end
pontos_a_perder = (chute - numero_secreto).abs / 2.0
pontos_ate_agora -= pontos_a_perder
if verifica_se_acertou numero_secreto, chute
break
end
end
puts "Você ganhou #{pontos_ate_agora} pontos."
end
def nao_quer_jogar?
puts "Deseja jogar novamente? (S/N)"
quero_jogar = gets.strip
nao_quero_jogar = quero_jogar.upcase == "N"
end
nome = da_boas_vindas
dificuldade = pede_dificuldade
loop do
joga nome, dificuldade
break if não_quer_jogar?
end