Ao escrever a função principal jogos.py como feito no curso, me deparei com as seguintes perguntas:
O programa pergunta qual jogo o usuário quer jogar e o usuário deve digitar 1 ou 2. E se o usuário não digitar nem (1) nem (2)? E se o usuário digitar (3)? Pior, e se ele digitar uma string ou qualquer outro caractere?
E se após terminar de jogar, o usuário quiser jogar de novo?
Para resolver isso, meu código ficou assim:
import forca
import adivinhacao
def escolha():
print("*******************")
print("Escolha o seu jogo!")
print("*******************")
print("(1) Forca (2) Adivinhação")
jogo = int(input("Qual jogo? "))
if jogo == 1:
print("Jogando Forca")
forca.jogar_forca()
elif jogo == 2:
print("Jogando Adivinhação")
adivinhacao.jogar_adivinhacao()
else:
print("Escolha (1) ou (2)!")
escolha()
def replay():
print("Você quer jogar novamente?")
print("(1) Sim (2) Não")
resposta = int(input("Resposta: "))
if (resposta == 1):
escolha()
elif (resposta == 2):
print("Obrigado por jogar!")
quit()
else:
print("Escolha (1) Sim ou (2) Não!")
replay()
while(True):
escolha()
while(True):
replay()
Com isso aprendi a chamar a função dentro dela mesma (recursividade) e ainda aprendi o comando quit()
Quanto a primeira pergunta "E se o usuário não digitar nem (1) nem (2)? E se o usuário digitar (3)?" eu consegui resolver. Mas e se o usuário digitar uma string? O jogo dá pau pois o input é do tipo int:
jogo = int(input("Qual jogo? "))
Quanto a isso não consegui resolver, pois se o input não for do tipo int, eu não consigo aplicar a condição no if/else:
if jogo == 1:
print("Jogando Forca")
forca.jogar_forca()
elif jogo == 2:
print("Jogando Adivinhação")
adivinhacao.jogar_adivinhacao()
else:
print("Escolha (1) ou (2)!")
escolha()
Aceito sugestões de como eu poderia resolver isso.