Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] ERRO NO CÓDIGO! HELP

Meu código está apresentando alguns erros. será que podem me ajudar?

import random

def jogar():
    print("***************************")
    print("BEM VINDO AO JOGO DA FORCA!")
    print("***************************")

    arquivo = open("palavras.txt", "r")
    palavras = []

    for linha in arquivo:
       linha = linha.strip()
       palavras.append(linha)
    arquivo.close()

    numero = random.randrange(0, len(palavras))
    palavra_secreta = numero[palavras].upper()

    letras_certas = ['_' for letra in palavra_secreta]
    chutes_realizados = []
    letras_chutadas = 'letras chutadas: '

    tentativas = len(palavra_secreta)

    print("\nA palavra secreta é {}:\n".format(letras_certas))
    print('Você tem {} tentativas para descobrir a palavra secreta!\n'.format(tentativas))

    while (tentativas >= 0):
        chute = input('Digite uma letra:\n')
        chute = chute.upper().strip()

        chutes_realizados.append(chute)

        print(f'{letras_chutadas}{str(chutes_realizados)}')
        if (chute in palavra_secreta):

            index = 0
            for letra in palavra_secreta:
                if (chute == letra):
                    letras_certas[index] = letra
                index += 1
            print(letras_certas)

        if (chute not in palavra_secreta):
            print('A letra escolhida não existe na palavra secreta. Você possui {} tentativas.'.format(tentativas - 1))
            tentativas -= 1

            if (tentativas == 0):
                print('\nSuas chances acabaram!! Você não descobriu a palavra secreta.')
                print(' ---------------------- FIM DE JOGO -------------------------')
                break
        if ('_' not in letras_certas):
            print('\nParabéns!!! Você descobriu a palavra secreta!!')
            print('---------------- FIM DE JOGO -----------------')
            break


if __name__ == "__main__":
    jogar()

o erro que aparece é esse: File "C:\Users\Ana Carolina\PycharmProjects\jogos\forca.py", line 17, in jogar palavra_secreta = numero[palavras].upper() TypeError: 'int' object is not subscriptable

2 respostas

Você não pode dar .upper() em variaveis que são inteiros. .upper() serve apenas para ser usado em Strings de forma a tornar elas em letras maiusculas. Variaveis como int, float, bool não aceitam esse método.

solução!

Obrigada! Também identifiquei um erro na hora de definir a variável palavra_secreta!