O jogo não entra na pontuação e quando eu termino a palavra ele não pontua. Coloquei alguns puts para ver se entrava no laço de pontuação e ele não entra. Aqui está o foca.rb
require_relative 'ui'
require_relative "rank"
def palavra_mascarada(chutes, palavra_secreta)
mascara = ""
for letra in palavra_secreta.chars
if chutes.include? letra
mascara += letra
else
mascara += "_"
end
end
mascara
end
def pede_um_chute_valido(chutes, erros, mascara)
cabecalho_de_tentativa chutes, erros, mascara
loop do
chute = pede_um_chute
if chutes.include? chute
avisa_chute_repetido chute
else
return chute
end
end
end
def joga(nome)
palavra_secreta = sorteia_palavra_secreta
erros = 0
chutes = []
pontos_ate_agora = 0
while erros < 5
mascara = palavra_mascarada chutes, palavra_secreta
puts mascara
chute = pede_um_chute
chutes << chute
chutou_uma_unica_letra = chute.size == 1
if chutou_uma_unica_letra
total_encontrado = palavra_secreta.count(chute[0])
if total_encontrado == 0
avisa_letra_nao_encontrada
erros += 1
else
avisa_letra_encontrada total_encontrado
end
else
acertou = chute == palavra_secreta
if acertou
avisa_acertou_palavra
pontos_ate_agora +=100
puts "Entrou nesse laço"
break
else
avisa_errou_palavra
pontos_ate_agora -=30
erros += 1
puts "Entrou aqui"
end
end
end
avisa_pontos pontos_ate_agora
end
def jogo_da_forca
nome= da_boas_vindas
pontos_totais= 0
avisa_campeao_atual le_rank
loop do
pontos_totais += joga nome
avisa_pontos_totais pontos_totais
salva_rank nome, pontos_totais
if le_rank[1].to_i< pontos_totais
salva_rank nome,pontos_totais
end
break if não_quer_jogar?
end
end
e aqui o ui.rb
def da_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 para você, #{nome}"
nome
end
def pede_um_chute
puts "Entre com a letra ou palavra"
chute= gets.strip.downcase
puts "Será que acertou? Você chutou #{chute}"
chute
end
def não_quer_jogar?
puts "Deseja jogar novamente? (S/N)"
quero_jogar = gets.strip
não_quer_jogar = quero_jogar.upcase == "N"
end
def sorteia_palavra_secreta
avisa_escolhendo_palavra
texto = File.read("dicionario.txt")
todas_as_palavras = texto.split("\n")
numero_aleatorio = rand(todas_as_palavras.size)
palavra_secreta = todas_as_palavras[numero_aleatorio].downcase
avisa_palavra_escolhida palavra_secreta
end
def cabecalho_de_tentativa (chutes,erros,mascara)
puts "\n\n\n\n"
puts"Palavra secreta #{mascara}"
puts "Erros até agora #{erros}"
puts "Chutes até agora #{chutes}"
end
def avisa_chute_repetido (chute)
puts "Este chute já foi dado!"
end
def avisa_letra_nao_encontrada
puts "Letra não encontrada"
end
def avisa_letra_encontrada(total_encontrado)
puts "Letra encontrada #{total_encontrado} vezes!"
end
def avisa_acertou_palavra
puts "PArabéns!Acertou"
end
def avisa_errou_palavra
puts "Que pena... você errou!"
end
def avisa_pontos (pontos_ate_agora)
puts "Você ganhou #{pontos_ate_agora} pontos"
end
def avisa_escolhendo_palavra
puts "Escolhendo uma palavra"
end
def avisa_palavra_escolhida (palavra_secreta)
puts"Escolhida uma palavra secreta com #{palavra_secreta.size} letras... Boa sorte!"
palavra_secreta
end
def avisa_campeao_atual (dados)
puts "Nosso campeao atual é #{dados[0]} com #{dados[1]} pontos"
end
Mas o jogo roda normalmente, sem erros.