Gerenciamento de Jogadores e Times

  1. Vamos começar criando a estrutura de repetição e a lógica de execução do nosso programa. Note que já implementamos a função de saída do nosso programa, que refere-se à opção 7. Crie o arquivo exercicio_final.py:

    teams = {} 
    done = False
    while not done:
        # print options
        print("O que você deseja fazer?")
        print("1. Adicionar um time")
        print("2. Remover um time")
        print("3. Listar times")
        print("4. Adicionar jogador em um time")
        print("5. Remover jogador em um time")
        print("6. Listar jogadores de um time")
        print("7. Sair")
        
        # get user input
        choice = input("> ")
    
    		if choice == "1":
    			pass
    		elif choice == "2":
    			pass
    		elif choice == "3":
    			pass
    		elif choice == "4":
    			pass
    		elif choice == "5":
    			pass
    		elif choice == "6":
    			pass
    		elif choice == "7":
    			feito = True
    		else:
    			print("Opção inválida")
    	
    
  2. Em seguida vamos criar duas funções utilitárias em muitas operações: a função para listar o time e para listar jogadores de um time:

# função para listar times
def print_teams():
    print("Times listados:")
    for i, team in enumerate(teams.values()):
        print(f"{i+1}. {team['name']} ({len(team['players'])} jogadores)")

# função para listar jogadores de um time
def print_team_players(team):
    print(f"Jogadores do {team['name']}:")
    for i, player in enumerate(team['players']):
        print(f"{i+1}. {player}")
  1. Agora vamos desenvolver as três operações de times: inclusão, remoção e listagem de times.
# Adiciona um time
    if choice == "1":
        team_name = input("Digite o nome do time: ")
        teams[team_name] = {'name': team_name, 'players': []}
        print("Time adicionado.")
        
    # Remove um time
    elif choice == "2":
        print_teams()
        team_num = int(input("Informe o número do time para remover: "))
        if team_num <= len(teams):
            team_name = list(teams.keys())[team_num-1]
            del teams[team_name]
            print("Time removido.")
        else:
            print("Número de time inválido.")
    
    # Lista times
    elif choice == "3":
        print_teams()
  1. Por fim, vamos desenvolver as três operações de relacionamento de jogador com time: inclusão de jogador no time, remoção de jogador no time e listagem de jogador de um time.
# Adicionar jogador em um time
    elif choice == "4":
        print_teams()
        team_num = int(input("Informe o número do time que deseja adicionar jogador: "))
        if team_num <= len(teams):
            team_name = list(teams.keys())[team_num-1]
            player_name = input("Informe o nome do jogador: ")
            teams[team_name]['players'].append(player_name)
            print("Jogador adicionado no time.")
        else:
            print("Número do time inválido")
    
    # Remove jogador de um time
    elif choice == "5":
        print_teams()
        team_num = int(input("Informe o número do time que deseja adicionar jogador: "))
        if team_num <= len(teams):
            team_name = list(teams.keys())[team_num-1]
            print_team_players(teams[team_name])
            player_num = int(input("Informe o número do jogador para remover: "))
            if player_num <= len(teams[team_name]['players']):
                del teams[team_name]['players'][player_num-1]
                print("Jogador removido do time.")
            else:
                print("Número do jogador inválido.")
        else:
            print("Número do time inválido.")
    
    # Lista jogadores de um time
    elif choice == "6":
        print_teams()
        team_num = int(input("Informe o número do time para listar jogadores: "))
        if team_num <= len(teams):
            team_name = list(teams.keys())[team_num-1]
            print_team_players(teams[team_name])
        else:
            print("Número do time inválido.")
    
    # exit
    elif choice == "7":
        done = True
    
    # invalid choice
    else:
        print("Opção inválida.")