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

Erros no código

Segui todas as instruções passo a passo, tomando todo o cuidado com a indentação e outros problemas que viessem a surgir, e não havia nenhum erro no código, mas quando rodei, apareceram algumas mensagens.

Código

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 = palavras[numero].upper()

    letras_acertadas = ["_" for letra in palavra_secreta]

    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)
    while(not enforcou and not acertou):

        chute = input("Qual letra? ")
        chute = chute.strip()

        index = 0
        for letra in palavra_secreta:
            if(chute.upper() == letra.upper()):
                letras_acertadas[index] = letra
            index += 1
        else:
            erros += 1

            enforcou = erros == 6
            acertou = "_" not in letras_acertadas
            print(letras_acertadas)

    if(acertou):
        print("Você ganhou!")
    else:
        print("Você perdeu!")

        print("Fim do jogo")

if(__name__ == '__main__'):
    jogar()

Mensagens:

"C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\python.exe" "C:/Users/Windows 10/PycharmProjects/jogos/forca.py"
Traceback (most recent call last):
*********************************
  File "C:/Users/Windows 10/PycharmProjects/jogos/forca.py", line 54, in <module>
***Bem vindo ao jogo da Forca!***
*********************************
    jogar()
  File "C:/Users/Windows 10/PycharmProjects/jogos/forca.py", line 18, in jogar
    numero = random.randrange(0, len(palavras))
  File "C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\random.py", line 200, in randrange
    raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (0,0, 0)

Process finished with exit code 1

Alguém poderia me ajudar a resolver esse erro?

Grato.

3 respostas

Cara, por exp em desenvolvimento.... Não lembro do que é passado na aula e o código, mas te indico a abrir o arquivo 'C:\Users\Windows 10\AppData\Local\Programs\Python\Python37-32\lib\random.py', buscar a função randrange() e entender como ela realmente funciona. Vendo por cima, pode ser questão de estar faltando um parametro requerido na função, como se esperasse 3 e somente 2 foram passados. Mas investiga essa função que tu acha a solução

Cara, acho que não faz sentido ser um erro de parâmetro, pois o instrutor fez exatamente a mesma coisa e deu certo.

solução!

O erro estava na localização do arquivo, que aparentemente não estava na pasta correta. Estarei marcando isso como solução