Olá pessoal, de antemão desejo bons estudos a todes!
Estou tentando fazer melhorias no meu jogo de forca e decidi implementar a escolha de níveis. A ideia é que o usuário consiga escolher quantas tentativas terá baseando-se no nível escolhido.
Não entendi o erro.... Pq uma lista de inteiros não seria iterável, sendo que se trata de um número?
letras_acertadas = ["_" for letra in palavra_secreta]
letras_chutadas = []
erros = []
erros_ = [int(i) for i in erros]
#ESCOLHENDO NÍVEL - EM CONSTRUÇÃO
nivel = int(input("Escolha seu nível\n(1) FÁCIL\n(2) MÉDIO\n(3) DIFICIL\n"))
if (nivel) > 3:
print("Escolha um nível válido!")
else:
print("Você escolheu o nível {}".format(nivel))
if (nivel == 1):
enforcou = erros_ == 15
elif (nivel == 2):
enforcou = erros_ == 10
else:
enforcou = erros_ = 5
...
else:
erros += 1
letras_chutadas.append(chute)
print("Letras incorretas foram chutadas até agora: {}".format(letras_chutadas))
# a representação acima é a mesma coisa que erros = erros + 1
print("Você errou. Não há {} na palavra secreta.\nRestam {} tentivas".format(chute,6-erros))
O ERRO: File "c:\Users\silva\PycharmProjects\jogos\forca.py", line 71, in jogo_forca erros += 1 TypeError: 'int' object is not iterable
e o código inteiro: import random
def jogo_forca(): #O "DEF" CRIA UMA FUNÇÃO CUSTOMIZADA PARA CHAMAR O JOGO EM OUTRO CÓDIGO
print ("*************************")
print ("*******BEM VINDE*********")
print ("***VAMO JOGAR FORCAAA***\n")
arquivo = open("palavras.txt","r")
palavras = []
for linha in arquivo:
linha = linha.strip().upper()
palavras.append(linha)
arquivo.close()
numero_index = random.randrange(0,len(palavras))
palavra_secreta = palavras[numero_index].upper()
letras_acertadas = ["_" for letra in palavra_secreta] #uso de list comprehension para tornar o uso do underscore dinâmic
letras_chutadas = []
erros = []
erros_ = [int(i) for i in erros]
#ESCOLHENDO NÍVEL - EM CONSTRUÇÃO
nivel = int(input("Escolha seu nível\n(1) FÁCIL\n(2) MÉDIO\n(3) DIFICIL\n"))
if (nivel) > 3:
print("Escolha um nível válido!")
#continue
else:
print("Você escolheu o nível {}".format(nivel))
if (nivel == 1):
enforcou = erros_ == 15
elif (nivel == 2):
enforcou = erros_ == 10
else:
enforcou = erros_ = 5
enforcou = False
acertou = False
while (not enforcou and not acertou): #laço inicial do jogo
chute = input("\n**QUAL SEU CHUTE?**\n")
chute = chute.strip().upper()
if len(chute)>1:
print("Informe apenas uma letra")
continue
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if(chute.upper() == letra.upper()):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
letras_chutadas.append(chute)
print("Letras incorretas foram chutadas até agora: {}".format(letras_chutadas)
print("Você errou. Não há {} na palavra secreta.\nRestam {} tentivas".format(chute,6-erros))
acertou = "_" not in letras_acertadas
print(letras_acertadas)
if acertou:
print("VOCÊ ACERTOU E FUGIU DA FORCA\n\n")
else:
print("Você perdeu! A palavra secreta é {}\n".format(palavra_secreta))
print("FIM DO JOGO")
Desde já valeu pela atenção pessoal!