What tips would you give to improve this gaming code in Python? In the "course" I'm doing in Python I have not yet learned how to use string methods yet. It's a very simple game, with no graphical interface because I do not know how to do it and with 5 words that I used to test. What do you guys think of to improve the code and make it more compact? Thanks
from random import choice
def imprime(letra, pl):
#imprime como está o resultado do jogo. Exemplo: c _ _ c l e _ _
impressao = ''
for i in range(len(palavra)):
if palavra[i] not in pl:
impressao += "%s "%palavra[i]
else:
impressao += '_ '
return impressao
#palavras pré-definidas
palavras = ['chiclete', 'arroz', 'banana', 'feijao', 'nutella']
#escolhe a palavra do jogo
palavra = choice(palavras)
erros = 0
pl = []
#adiciona todas as letras da palavra a uma lista 'pl'
for i in range(len(palavra)):
pl.append(palavra[i])
#imprime a quantidade de letras da palavra
print("A palavra é: %s"%('_ '*len(palavra)))
print("")
jogo = True
tentativas = []
while jogo:
letra = input("Digite uma letra ou palavra: ")
#o usuario digita uma letra ou palavra
if letra == palavra:
#verifica se o jogador acertou a palavra, caso sim encerra o programa
print("Você ganhou. A palavra era %s"%palavra)
break
#verifica se a letra escolhida ainda não havia sido escolhida pelo usuario
while letra in tentativas:
letra = input("Você já tentou essa letra ou palavra. Digite novamente: ")
tentativas.append(letra)
if letra in palavra:
#se o usuario acertou uma letra, ela é removida da lista 'pl'.
for i in range(palavra.count(letra)):
pl.remove(letra)
else:
erros += 1
#se o usuario errar a letra ou palavra, é contabilizado um erro. Com 6 erros o usuario é derrotado.
if erros == 6:
print("Você errou pela 6ª vez. Fim de jogo")
print("Você perdeu")
break
print("Você errou pela %iª vez. Tente de novo!"%erros)
print("A palavra é: ",imprime(letra, pl))
print("")
if len(pl) == 0:
#se a lista 'pl' possuir 0 elementos, então o usuario ganhou
print("Você ganhou!")
break