Oi, pessoal!
Então, eu criei uma versão própria para o código e não estou conseguindo separá-lo em funções, o Pycharm aponta o problema para as variáveis jogador1, jogador 2 e letras. Como eu posso resolver esse problema?
Código sem definir funções está funcionando plenamente:
def jogar():
print("Olá, sejam bem vindos ao jogo da forca! É necessário 2 pessoas para jogar")
print("O jogador 1 definirá a palavra e o jogador 2 tentará adivinhá-la")
jogador1 = input("Jogador 1, qual é o seu nome? Digite o seu nome: ")
print("Olá,", jogador1, "! Defina a palavra secreta e, logo em seguida, passe o notebook para o jogador 2")
palavra_secreta = input("Digite a palavra: ").upper()
print("Palavra definida com sucesso. Passe para o jogador 2")
jogador2 = input("Olá, jogador 2! Qual é o seu nome? Digite o seu nome: ")
print("Olá,", jogador2, "! Vamos jogar!")
letras_acertadas = ["_" for _ in palavra_secreta]
enforcou = False
acertou = False
erro = 0
print(letras_acertadas)
while not enforcou and not acertou:
chute = input("Escolha uma letra: ")
chute = chute.strip().upper()
index = 0
if chute in palavra_secreta:
for letra in palavra_secreta:
if chute == letra:
letras_acertadas[index] = letra
index += 1
print(letras_acertadas)
else:
erro += 1
chance = 5 - erro
if chance == 1:
print("Não existe a letra {} na palavra secreta.".format(chute))
print("Tente novamente, {}! Atenção!! Essa é sua última chance.".format(jogador2))
print(letras_acertadas)
elif chance == 0:
print(jogador2, ",você perdeu :(.")
print("A palavra escolhida por {} era: {}".format(jogador2, palavra_secreta))
enforcou = True
else:
print("Não existe a letra {} na palavra secreta.".format(chute))
print("Tente novamente, {}! Você tem apenas mais {} chances...".format(jogador2, chance))
print(letras_acertadas)
if "_" not in letras_acertadas:
print("Parabéns {} !!! Você ganhou!!!".format(jogador2))
acertou = True
print("Fim do jogo")
if __name__ == "__main__":
jogar()
No caso, a forma que não está funcionando e que eu gostaria que ficasse:
def mensagem_inicial():
print("Olá, sejam bem vindos ao jogo da forca! É necessário 2 pessoas para jogar")
print("O jogador 1 definirá a palavra e o jogador 2 tentará adivinhá-la")
jogador1 = input("Jogador 1, qual é o seu nome? Digite o seu nome: ")
print("Olá,", jogador1, "! Defina a palavra secreta e, logo em seguida, passe o notebook para o jogador 2")
palavra_secreta = input("Digite a palavra: ").upper()
print("Palavra definida com sucesso. Passe para o jogador 2")
jogador2 = input("Olá, jogador 2! Qual é o seu nome? Digite o seu nome: ")
print("Olá,", jogador2, "! Vamos jogar!")
def logica_forca():
letras_acertadas = ["_" for _ in palavra_secreta]
enforcou = False
acertou = False
erro = 0
print(letras_acertadas)
while not enforcou and not acertou:
chute = input("Escolha uma letra: ")
chute = chute.strip().upper()
index = 0
if chute in palavra_secreta:
for letra in palavra_secreta:
if chute == letra:
letras_acertadas[index] = letra
index += 1
print(letras_acertadas)
else:
erro += 1
chance = 5 - erro
if chance == 1:
print("Não existe a letra {} na palavra secreta.".format(chute))
print("Tente novamente, {}! Atenção!! Essa é sua última chance.".format(jogador2))
print(letras_acertadas)
elif chance == 0:
print(jogador2, ",você perdeu :(.")
print("A palavra escolhida por {} era: {}".format(jogador2, palavra_secreta))
enforcou = True
else:
print("Não existe a letra {} na palavra secreta.".format(chute))
print("Tente novamente, {}! Você tem apenas mais {} chances...".format(jogador2, chance))
print(letras_acertadas)
if "_" not in letras_acertadas:
print("Parabéns {} !!! Você ganhou!!!".format(jogador2))
acertou = True
print("Fim do jogo")
def jogar():
mensagem_inicial()
logica_forca()
if __name__ == "__main__":
jogar()