require_relative 'ui'
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_efetuado chute
else
return chute
end
end
end
def joga(nome)
palavra_secreta = escolhe_palavra_secreta
erros = 0
chutes = []
pontos_ate_agora = 0
while erros < 5
mascara = palavra_mascarada chutes, palavra_secreta
chute = pede_um_chute_valido chutes, erros, mascara
chutes << chute
if chute.size == 1
palavra_secreta
letra_procurada = chute[0]
total_encontrado = palavra_secreta.count letra_procurada
if total_encontrado == 0
avisa_letra_nao_encontrada
erros += 1
else
avisa_letra_encontrada total_encontrado
end
else
if chute == palavra_secreta
avisa_acertou_palavra
pontos_ate_agora += 100
break
else
avisa_errou_palavra
pontos_ate_agora -= 30
erros += 1
end
end
end
avisa_pontos pontos_ate_agora
end
nome = da_boas_vindas
def jogo_da_forca
loop do
joga nome
if nao_quer_jogar?
break
end
end
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 "Parabens! Você 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_chute_efetuado(chute)
puts "Você já chutou #{chute}"
end
def da_boas_vindas
puts "Bem-vindo(a) ao joga da forca"
puts "Qual o seu nome?"
nome = gets.strip
puts "\n\n"
puts "Começaremos o jogo para você #{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.strip
end
ta dando erro no terminal: undefined vairable or method 'nome' for main object def nao_quer_jogar? puts "Deseja jogar novamente? (S/N)" quero_jogar = gets.strip nao_quer_jogar = quero_jogar.upcase == "N" end
def cabecalho_de_tentativa(chutes, erros, mascara) puts "\n\n" puts "A palabra secreta é #{mascara} ." puts "Erros até agora: #{erros}" puts "Chutes até agora: #{chutes}" end
def pede_um_chute puts "Entre com uma letra ou uma palavra" chute = gets.strip puts "Será que acertou? Você chutou #{chute}" chute end