- Trata-se de um simulador de gerenciamento de times de futebol.
- A intenção é usar esse jogo como forma de aprender técnicas relacionadas a inteligência artificial.
Uma lista de requisitos para guiar o desenvolvimento do jogo a longo prazo.
- Menus
- Menu Inicial
- O jogo deve sempre começar por um menu inicial, com opções para o jogador escolher o que fazer.
- O jogo deve sempre inicializar com a tela maximizada.
- O menu inicial deve ter as opções de jogar e personalizar.
- O jogo deve ir para o menu de personalização quando o jogador humano escolher a opção "personalizar".
- O jogo deve ser iniciado quando o jogador humano escolher a opção "jogar".
- Menu Personalizar
- O menu personalizar deve ter a opção de Editar Times
- O jogo deve permitir a criação de times
- O jogo deve permitir a visualização de times criados como tabela com barra de rolagem.
- O jogo deve permitir a exclusão de times com base no ID
- O jogo deve permitir a alteração de times cadastrados.
- Os atributos iniciais de um time devem ser:
- Nome (not null - string)
- País (not null - string)
- O jogo deve permitir a escolha do país através de uma lista de países.
- Estado (string)
- O jogo não deve permitir informar o estado se o país não for Brasil.
- O jogo deve permitir a escolha do estado se o país for Brasil.
- Cidade (string)
- O jogo não deve permitir informar a cidade se o país não for Brasil.
- O jogo deve permitir a escolha da cidade de acordo com o estado selecionado.
- Nível Início (not null - integer, de 0 a 100)
- Estádio (id do estádio)
- O jogo deve permitir a escolha de um estádio previamente cadastrado, exibindo nome e gravando o id do estádio.
- Cor Primária (not null - rgb)
- Cor Secundária (not null - rgb)
- Técnico (id do técnico)
- O jogo deve permitir a escolha de um técnioc previamente cadastrado, exibindo nome e gravando o id do técnico.
- O menu personalizar deve ter a opção de Editar Jogadores
- O jogo deve permitir a criação de jogadores
- O jogo deve permitir a visualização de jogadores criados como tabela com barra de rolagem.
- O jogo deve permitir a exclusão de jogadores com base no ID
- O jogo deve permitir a alteração de jogadores cadastrados.
- Os atributos iniciais de um jogador devem ser:
- Nome (not null - string)
- País (not null - string)
- Idade (not null - integer, de 0 a 100)
- Nível Início (not null - integer, de 0 a 100)
- Posição (not null string)
- O menu personalizar deve ter a opção de Editar Campeonatos
- O menu personalizar deve ter a opção de Editar Estádios
- O menu personalizar deve ter a opção de Editar Times
- Menu Inicial
- Gerenciamento de Times
- O jogo deve permitir criação, leitura, atualização e exclusão de times e seus respectivos atributos.
- O jogo deve ter uma interface para adicionar, editar ou remover times.
- Os atributos dos times devem ser persistidos em um banco de dados SQLite.
- Gerenciamento de Jogadores
- O jogo deve permitir criação, leitura, atualização e exclusão de jogadores e seus respectivos atributos.
- O jogo deve ter uma interface para adicionar, editar ou remover jogadores.
- Os atributos dos jogadores devem ser persistidos em um banco de dados SQLite.
- O jogo deve
- Simulação de Partidas
- O jogo deve simular partidas entre dois times com base nas habilidades dos jogadores e nas táticas escolhidas.
- O jogo deve permitir que os resultados das partidas sejam salvos em um banco de dados SQLite e retomados em um momento posterior.
- O jogo deve permitir a inclusão, atualização e exclusão de resultados de partidas, para futura utilização pela IA.
- Gerenciamento de Táticas
- O jogo deve permitir que o usuário defina táticas de jogo para seus times, incluindo formações e estratégias de ataque e defesa.
- Gerenciamento de Campeonatos
- O jogo deve permitir a criação e gerenciamento de campeonatos e seus respectivos atributos.
- Mercado da bola
- O jogo deve permitir que os jogadores tenham um salário definido e que seja possível propor uma alteração de salário ao jogador.
- O jogo deve permitir que os jogadores possam ser comprados, vendidos ou leiloados, com base no preço de mercado.
- Gestão do Estádio e da Bilheteria
- O jogo deve permitir que os clubes recebam após cada jogo uma receita de ingressos.
- O jogador humano deve poder escolher o preço dos ingressos.
- Simulação de Lesões e Suspensões
- A IA deve simular eventos imprevistos, como lesões e suspensões de jogadores.
- A IA deve sugerir medidas corretivas, como mudanças táticas ou contratações de jogadores de reposição diante desses eventos imprevistos.
- Análise de Desempenho Pós-Jogo
- A IA do jogo deve fornecer uma análise detalhada do desempenho dos jogadores e do time após cada partida.
- Com base nessa análise, a IA deve sugerir mudanças táticas ou de treinamento para melhorar o desempenho futuro da equipe.
- Sistema de Recomendação de Jogadores
- A IA do jogo deve sugerir jogadores para contratação com base nas necessidades do time e no desempenho histórico dos jogadores.
- Simulação de jogo aprimorada pela IA
- A IA deve considerar não apenas as habilidades individuais dos jogadores, mas também a química da equipe, a forma física dos jogadores e as condições de jogo (por exemplo, se estão jogando em casa ou fora de casa, se é uma fase eliminatória ou se está perdendo ou se é um campeonato importante ou só um amistoso).
- A IA deve reagir de forma inteligente às ações dos jogadores humanos, e às mudandas na dinâmica do jogo. Por exemplo alterações de jogadores e da tática de jogo.
- Simulação aprimorada de bilheteria
- A IA deve simular a quantidade de espectadores no estádio com base na capacidade, preço, performance recente do time e importância do campeonato, bem como ao histórico de espectadores.
- Para times reais, a IA deve considerar o histórico de público real de jogos reais para poder
- A interface do usuário deve ser simples e fácil de usar.
- O jogo deve ser capaz de simular cada tempo de uma partida de futebol em 45 segundos.
- O sistema deve garantir que os dados não sejam corrompidos e que a simulação de partidas seja consistente.
- O sistema deve ser compatível com Windows.
- O jogo deve ser executado localmente e não ter qualquer tipo de conexão com a internet.
- O jogo não deve salvar nenhum tipo de dado do usuário que possa ser utilizado na identificação, exceto o nome do jogador.