Quando eu rodo o meu código e digito a palavra correta ele retorna que eu acertei , mas quando antés disso eu digito uma letra ( que está nessa palavra ) ele retorns dizendo que achou a letra 11 vezes na palavra (sendo que ela só aparece 1 vez na palavra ) e apartir dai nem a palavra secreta e reconhecida com a respsota correta . O que faço para corrigir isto ?
Segue o código abaixo :
def daBoasVindas()
puts ("\n")
puts ("===========================")
puts ("Bem Vindo Ao Jogo da Forca ")
puts ("===========================")
puts ("\n")
puts ("Qual é o seu nome ? ")
nome = gets.strip
puts ("\n\n")
puts ("Olá , #{nome} , começaremos o jogo para você ...")
return nome
end
def escolhePalavraSecreta()
puts ("\n\n")
puts ("escolhendo a palavra secreta....")
palavraSecreta = "programador"
puts ("\n")
puts("a palavra secreta possui #{palavraSecreta.size} letras ")
return palavraSecreta
end
def pedeChute(erros , chutes , nomeJogador)
puts ("\n\n\n\n")
puts ("Erros até agora : #{erros}")
puts ("Chutes até agora : #{chutes}")
puts ("\n")
puts ("Digite uma letra ou uma palavra :")
chuteUsuario = gets.strip
puts ("\n\n")
puts ("Será que você acertou #{nomeJogador} ? Você chutou : #{chuteUsuario}")
return chuteUsuario
end
def joga(nomeJogador)
resposta = escolhePalavraSecreta()
erros = 0
chutes = []
pontosAtéAgora = 0
while erros < 5
chute = pedeChute(erros , chutes , nomeJogador)
chutes << chute
if (chute.size == 1)
letraProcurada = chutes[0]
numeroDeLetrasEncontradas = 0
for i in 0..(resposta.size - 1 )
if (resposta[i] = letraProcurada)
numeroDeLetrasEncontradas += 1
end
end
if numeroDeLetrasEncontradas != 0
puts ("\n")
puts ("encontrei a letra #{chute} #{numeroDeLetrasEncontradas} vezes na palavra secreta ")
else
puts ("\n")
puts ("letra #{chute} não encontrada na palavra secreta")
erros += 1
end
else
chute == resposta
if (chute == resposta)
puts ("\n\n")
puts ("========================================")
puts ("Parabéns #{nomeJogador} você acertou !!!")
puts ("========================================")
pontosAtéAgora += 100
break
else
puts ("\n\n")
puts ("Que pena #{nomeJogador} você errou .....")
puts ("\n")
pontosAtéAgora -= 30
puts ("Você tem #{pontosAtéAgora} pontos.")
puts ("\n")
erros += 1
end
end
end
puts ("Você ganhou #{pontosAtéAgora} pontos.")
end
def nãoQuerJogar?()
puts ("\n")
puts ("=========================")
puts ("Deseja jogar novamente ?")
puts ("S = Sim")
puts ("N = Não")
puts ("=========================")
queroJogar = gets.strip
nãoQueroJogar = queroJogar.upcase == "N"
end
nomeJogador = daBoasVindas()
loop do
joga(nomeJogador)
if(nãoQuerJogar?)
break
end
end