Resolvi entrar na brincadeira e fiz dessa forma para ser a mais simples possível. Espero que esteja bom.
import os
from random import randint
def jogo_da_forca( ):
title = "JOGO DA FORCA"
stuff = "*" * (len(title) + 1)
os.system("cls" if os.name == 'nt' else 'clear')
print(f"{stuff} \n{title} \n{stuff} \n")
trying = 0
forca = [ ]
escolhidas = [ ]
vencer = False
hang = ["==================",
" | | \n | | \n | | \n | | ",
" /\/\/\/\/\/\n | @ @ |\n C D\n | L |\n \ _ /\n \________/",
" _______| |_______\n / \ \n / /| |\ \ \n / / | | \ \ \n / / | | \ \ \n / / | | \ \ ",
" | | | | | | \n | | | | | | \n | | | | | | \n |___| | | |___| \n | | |__________| | | \n ( ) | | ( ) \n ||||| | | ||||| ",
" | | \n | || | \n | || | \n | || | \n | || | \n | || | \n | || | ",
" ______| || |______ \n / || \ \n |____________||____________| "]
secretas = ["AMARELO", "INIMAGINAVEL", "SUSTENTABILIDADE", "PNEUMOULTRAMICROSCOPICOSSILICOVULCANOCONIOTICO", "ZIGOMATICO", "MORFOLOGICAMENTE", "PLUMA", "TRABALHO", "PROGRAMACAO"]
num = randint(0, len(secretas) - 1)
sec = [x for x in secretas[num]]
vazio = ["_" for x in sec]
print(f"\n\n{' '.join(vazio)}")
while not vencer:
letra = input("\nLETRA: ").strip( ).upper( )
if letra in escolhidas:
print(f"\nVOCÊ JÁ ESCOLHEU A LETRA {letra}. TENTE OUTRA...")
continue
else:
escolhidas.append(letra)
if letra not in sec:
forca.append(hang[trying])
trying += 1
for x in range(len(sec)):
if letra == sec[x]:
vazio[x] = sec[x]
for x in forca:
print(x)
print(f"\n\n{' '.join(vazio)}")
if (trying == len(hang)) and ("_" in vazio):
print("\nINFELIZMENTE VOCÊ PERDEU. NA PRÓXIMA VOCÊ CONSEGUE...")
break
if (trying < len(hang)) and (not "_" in vazio):
print("\nPARABéNS. VOCÊ GANHOU.")
vencer = True
jogo_da_forca( )
Eu não cheguei a fazer muitos testes. Se encontrarem algum erro ou tiverem sugestões para melhoria, podem avisar, serão bem vindos.