1
resposta

[Bug] o código para selecionar os jogos nçao funcionou no vs code

fiz o jogo de adivinhação e forca no vs code com os códigos conforme foram descritos na aula, e depois fui abrir outro arquivo para fazer a seleção dos jogos com o seguinte código:

import forca import testewhile

def escolhe_jogo(): print("") print("Escolha seu jogo") print("")

print("(1)forca (2)adivinhação")

jogo =int(input("Qual o jogo ?"))

if(jogo ==1):
    print("bora de forca")
    forca.jogarforca()
elif(jogo ==2):
    print(" bora de adivinhação")
    testewhile.jogar()

if(name=="main"): escolhe_jogo()

depois disso só gera uma saída da seguinte forma:


**************************

Bem vindo ao jogo de forca


fim do jogo


Vamos começar a adivinhação


Que nível quer jogar? (1)fácil (2)médio (3) difícil define o nível

ou seja ele só executa os dois arquivos sem pedir para selecionar, como posso resolver ?

1 resposta

Olá, Gustavo!

Pelo que pude entender, o seu código está executando ambos os jogos automaticamente, sem pedir para que você selecione um deles, correto? Isso pode estar acontecendo porque os arquivos "forca.py" e "testewhile.py" estão sendo executados no momento em que são importados.

No Python, quando importamos um arquivo, todo o código que está no nível de indentação 0 (ou seja, não está dentro de nenhuma função ou classe) é executado. Isso inclui a definição de funções e classes, mas também qualquer outro código que você tenha colocado lá.

Se você colocou o código do jogo diretamente no nível 0 (fora de qualquer função), ele será executado no momento da importação. Para evitar isso, você pode colocar o código do jogo dentro de uma função (como parece que você fez com forca.jogarforca() e testewhile.jogar()) e então chamar essa função apenas quando o jogo for selecionado.

Agora, se você já fez isso e mesmo assim o problema persiste, o problema pode estar na maneira como você está organizando o código dentro dos arquivos "forca.py" e "testewhile.py". Certifique-se de que o código que inicia o jogo está dentro de uma função e que essa função só é chamada se o arquivo for o script principal.

Por exemplo, no arquivo "forca.py", você pode ter algo assim:

def jogarforca():
    # código do jogo aqui

if __name__ == "__main__":
    jogarforca()

Dessa forma, o jogo só será iniciado automaticamente se você executar "forca.py" diretamente. Se você importar "forca.py" de outro script (como você está fazendo), o jogo não será iniciado até que você chame forca.jogarforca().

Espero que isso ajude a resolver o seu problema. Se não ajudar, por favor, compartilhe mais detalhes sobre como você organizou o código dentro de "forca.py" e "testewhile.py" para que possamos entender melhor o que está acontecendo.

Espero ter ajudado e bons estudos!