Boa tarde!
Implementei algumas funcionalidades em meu código além do que é passado no curso:
- Ao informar opções inválidas em qualquer um dos input (jogo escolhido, nível do jogo etc.), o usuário receberá uma mensagem de opção inválida e será solicitado novamente que insira sua escolha.
- Ao final de cada partida, são dadas 3 opções ao usuário: uma nova partida do mesmo jogo, retornar ao menu principal (onde poderá escolher qual jogo quer jogar), ou sair. Estas 3 opções foram definidas em uma função no arquivo jogos.py, que é acessada nos outros dois arquivos ao final das partidas.
Além disso, fiz algumas alterações no código em si, como na formatação de strings, utilização dos if/elif/else etc.
Gostaria da opinião de vocês, acham que ficou bom o código? Ou têm alguma sugestão de melhoria?
Seguem:
jogos.py
import adivinhacao
import forca
import jogos
def main():
print('******************\nEscolha o seu jogo!\n******************')
print('1 - Forca\n2 - Adivinhação')
jogo = int(input('Escolha um jogo:'))
if (jogo == 1):
print('Jogando forca.')
forca.main()
elif (jogo == 2):
print('Jogando adivinhação.')
adivinhacao.main()
else:
while jogo not in [1, 2]:
jogo = int(input('Opção inválida! Escolha um jogo:'))
def func_fazer_agora(jogo_escolhido):
print('Fim de jogo.\n'
'O que você gostaria de fazer agora?\n'
'1 - Nova partida\n'
'2 - Retornar ao menu principal\n'
'3 - Sair')
fazer_agora = int(input())
if (fazer_agora == 1):
jogo_escolhido.main()
elif (fazer_agora == 2):
main()
elif (fazer_agora == 3):
pass
else:
while fazer_agora not in [1, 2, 3]:
print('Opção inválida.\n'
'O que você gostaria de fazer agora?\n'
'1 - Nova partida\n'
'2 - Retornar ao menu principal\n'
'3 - Sair')
fazer_agora = int(input())
if (__name__ == '__main__'):
main()
adivinhacao.py
import random as rd
import jogos
import adivinhacao
def main():
print('*********************************\nBem vindo ao jogo de Adivinhação!\n*********************************')
print('Qual o nível de dificuldade?\n1 - Fácil\n2 - Médio\n3 - Difícil')
nivel = int(input('Digite o nível de dificuldade escolhido (1 a 3):'))
while nivel not in [1, 2, 3]:
nivel = int(input('Opção inválida!\nDigite o nível de dificuldade escolhido (1 a 3):'))
if nivel == 1:
total_de_tentativas = 20
elif nivel == 2:
total_de_tentativas = 10
elif nivel == 3:
total_de_tentativas = 5
pontos = 1000
numero_secreto = rd.randint(1, 100)
chute = 0
acertou = False
for tentativa in range(1, total_de_tentativas + 1):
print('*****************\nTentativa {} de {}.'.format(tentativa, total_de_tentativas))
chute = int(input('Digite um número entre 1 e 100:'))
if (chute < 1 or chute > 100):
print('Você deve digitar um número entre 1 e 100.')
continue
chute_maior = chute > numero_secreto
chute_menor = chute < numero_secreto
acertou = chute == numero_secreto
pontos_perdidos = abs(numero_secreto - chute)
pontos -= pontos_perdidos
print(f'Você digitou {chute}.')
if(chute_maior):
print('Você errou! Seu chute foi maior que o número secreto.')
elif(chute_menor):
print('Você errou! Seu chute foi menor que o número secreto.')
elif(acertou):
print(f'Você acertou e fez {pontos} pontos!')
break
if not acertou:
print(f'O número secreto era {numero_secreto}. Você fez {pontos} pontos.')
jogos.func_fazer_agora(adivinhacao)
if (__name__ == '__main__'):
main()
forca.py
import jogos
import forca
def main():
print('****************************\nBem vindo ao jogo da Forca!\n****************************')
jogos.func_fazer_agora(forca)
if (__name__ == '__main__'):
main()
Agradeço desde já!