Eu não consigo entender no meu código, que está igual ao do Professor, o porque ele não consegue rodar tudo certo. No console dá o seguinte erro:
Bem vindo ao jogo da forca
Qual é o seu nome?
Murilo
Começaremos o jogo, Murilo...
Escolhendo uma palavra secreta
Palavra secreta com 11 letras... Boa Sorte!!!!
Erros até agora: 0
Chutes até agora: []
Entre com uma letra ou uma palavra
a
Será que acertou? Voce chutou a
forca.rb:42:in `joga': undefined local variable or method `chute' for main:Object (NameError)
Did you mean? chutes
from forca.rb:65:in `block in <main>'
from forca.rb:64:in `loop'
from forca.rb:64:in `<main>'
E o meu código está assim:
def boas_vindas
puts"Bem vindo ao jogo da forca"
puts "Qual é o seu nome?"
nome = gets.strip
puts "\n\n\n\n"
puts "Começaremos o jogo, #{nome}..."
nome
end
def escolhe_palavra_secreta
puts "Escolhendo uma palavra secreta"
palavra_secreta = "programador"
puts"Palavra secreta com #{palavra_secreta.size} letras... Boa Sorte!!!!"
palavra_secreta
end
def nao_quer_jogar
puts "Deseja jogar novamente? (S/N)"
quero_jogar = gets.strip
nao_quero_jogar = quero_jogar.upcase == "N"
end
def pede_um_chute (chutes, erros)
puts "\n\n\n\n"
puts "Erros até agora: #{erros}"
puts "Chutes até agora: #{chutes}"
puts "Entre com uma letra ou uma palavra"
chute = gets.strip
puts "Será que acertou? Voce chutou #{chute}"
chute
end
def joga nome
palavra_secreta = escolhe_palavra_secreta
erros = 0
chutes = []
pontos_ate_agora = 0
while erros < 5
chutes = pede_um_chute chutes, erros
chutes << chute
chutou_uma_letra = chute.size == 1
if chutou_uma_letra
else
acertou = chute == palavra_secreta
if acertou
puts "Parabéns! Acertou!"
pontos_ate_agora += 100
break
else
puts "Que pena.. errou"
pontos_ate_agora -= 30
erros += 1
end
end
end
puts "Você ganhou #{pontos_ate_agora} pontos."
end
nome = boas_vindas
loop do
joga nome
break if nao_quero_jogar
end