Estou tentando implementar essa função, mas não estou fazendo com que ela continua falando que por exemplo a letra "a", não está contida na palavra_secreta.
#ruby 2.4.1
def da_boas_vindas
puts "Bem vindo ao jogo da Forca!"
puts "Qual é o seu nome?"
nome = gets.strip
puts "Começaremos o jogo para você, #{nome}"
puts "\n\n\n"
nome
end
def sorteia_palavra_secreta
puts "Escolhendo a palavra secreta"
palavra_secreta = "programador"
puts "Escolhido... sua palavra secreta tem #{palavra_secreta.size} letras, que tal tentarmos adivinhar?"
puts "\n\n\n\n"
palavra_secreta
end
def nao_quer_jogar?
puts "Quer jogar novamente? (S/N)"
nao_quero_jogar = gets.strip
nao_quero_jogar.upcase == N
end
def pede_um_chute chutes, erros
puts "Erros até agora: #{erros}"
puts "Chutes até agora #{chutes}"
puts "Escolha uma palavra ou uma letra."
chute = gets.strip
puts "Será que acertou? Você chutou #{chute}!"
chute
end
def conta(palavra_secreta, chute)
contador = 0
for letra in palavra_secreta.chars
if letra == chute
contador += 1
end
end
contador
end
def joga nome
palavra_secreta = sorteia_palavra_secreta
erros = 0
chutes = []
pontos_ate_agora = 0
while erros < 5
chute = pede_um_chute chutes, erros
chutes << chute
chutou_uma_unica_letra = chute.size == 1
if chutou_uma_unica_letra
# contador = palavra_secreta.count(chute[0])
contador = conta chute, palavra_secreta
if contador == 0
erros += 1
puts "Nao existe esta letra na palavra secreta.Você errou!"
else
puts "A letra foi encontrada #{contador} vezes"
end
else
acertou = chute == palavra_secreta
if acertou
pontos_ate_agora += 100
puts "Parabains! Você acertou a palavra secreta."
break
else
erros += 1
pontos_ate_agora -= 30
puts "Você errou!"
end
end
end
puts "Você ganhou #{pontos_ate_agora} pontos."
end
nome = da_boas_vindas
loop do
joga nome
break if nao_quer_jogar?
end
Sei que posso usar o seguinte trecho para a minha funcionalidade, porém gostaria de entender meu erro no anteriormente
contador = palavra_secreta.count(chute[0])
Desde já agradeço