Olá pessoal, no meu código, eu separei a funcionalidade de escolher uma palavra secreta numa função à parte do código. Porém, quando preciso usar a variável palavra_secreta no escopo global, mesmo tendo dando return na função, o código não reconhece, dá erro 'name 'palavra_secreta' is not defined'.
import random
def jogar():
exibe_mensagem_boas_vindas("Bem-vindo ao jogo da forca!")
seleciona_palavra_secreta()
enforcou = False
acertou = False
tentativas = 5
esqueleto_palavra = ['_' for letra in palavra_secreta]
lista_erros = []
print(f'A palavra secreta tem {esqueleto_palavra.__len__()} letras. Boa sorte!')
print(esqueleto_palavra)
while not enforcou and not acertou:
index = 0
letra_chute = input('Digite uma letra: ').strip().upper()
if letra_chute in palavra_secreta:
for letra in palavra_secreta:
if letra == letra_chute:
print(f'Tem a letra {letra_chute}. Ela está na posição {index}')
esqueleto_palavra[index] = letra
index += 1
else:
if tentativas > 0:
print(f'Não tem a letra {letra_chute} na palavra!')
print(f'Ainda restam {tentativas} chances.')
tentativas -= 1
else:
print('Suas tentativas acabaram. Você foi enforcado!')
enforcou = True
break
print('Faltam {} letras para preencher.'.format(esqueleto_palavra.count('_')))
print(esqueleto_palavra)
acertou = '_' not in esqueleto_palavra
if acertou:
print('Parabéns, você venceu!')
def exibe_mensagem_boas_vindas (mensagem):
print('=' * 32)
print(mensagem)
print('=' * 32)
def seleciona_palavra_secreta():
lista_possiveis_nomes_forca = []
with open("lista_possiveis_nomes_forca3.txt") as arquivo:
for linha in arquivo:
lista_possiveis_nomes_forca.append(linha.strip())
numero_palavra_lista_forca = random.randrange(0, lista_possiveis_nomes_forca.__len__())
palavra_secreta = lista_possiveis_nomes_forca[numero_palavra_lista_forca].upper()
return palavra_secreta
if(__name__ == "__main__"):
jogar()