Releases: Gustavo-A-Costa/Projeto-Copa
Projeto Copa V2.6
IMPORTANTE: Troque o nome do arquivo de "PAISES.E.ELENCOS" para "PAÍSES E ELENCOS"!
Enfim temos todas as seleções classificadas para a Copa do Mundo! Aproveitei a ocasião especial para fazer alguns ajustes, sendo eles:
- Seleções e elencos atualizados, com os níveis de cada time ponderados de forma um pouquinho diferente. Dessa vez, ao invés de considerar diretamente o Ranking da FIFA (Brasil com 99 de nível e assim proporcionalmente), os níveis foram atribuídos considerando a porcentagem (elevada a 1,05) da soma dos níveis que cada uma das seleções possuem, tendo isso sido feito para tentar acentuar as diferenças técnicas entre os times ainda mantendo o Ranking da FIFA como base principal. O Brasil, por exemplo, manteve-se com 99 de nível. O Qatar, todavia, caiu de 78 para 61. Isso foi feito para reduzir a probabilidade das chamadas "zebras", que vinham acontecendo em muitas simulações;
- O arquivo que guarda as seleções e elencos agora é um .txt, que é mais facilmente editável :);
- Sem mais problemas com acentos! Os nomes dos jogadores e das seleções agora podem ser escritos corretamente;
- Pequenos ajustes estéticos: Tema mudado de "Dark Brown" para "Dark Green" além de ajustes na exibição dos grupos sorteados;
- Tendo em vista que o sorteio na vida real já aconteceu, ao abrir o programa, você pode escolher se deseja realizar uma simulação sorteando grupos diferentes ou se quer fazer uma simulação com os grupos reais!
Projeto Copa V2.5
(Percebi agora a inconsistência entre os V's maiúsculos e minúsculos entre as versões. Da V2.5 em diante, vou manter a forma "V.NÚMERO.NÚMERO nos títulos e nas tags).
Versão com as artilharias (Novembro de 2021)! Mudei um pouquinho o simulador para garantir que o artilheiro do campeonato tivesse em torno de 6 gols marcados. Na penúltima tela da simulação, é possível conferir a tabela com todos os anotadores de gols do campeonato!
Além disso, na última tela, agora há uma representação do chaveamento final do torneio simulado.
Projeto Copa v2.4.1 (ou 2.41)
Versão 2.4.1 (ou 2.41, conforme arquivos), de Outubro / 2021. Tive que colocar o ponto entre o "4" e o "1" para que o GitHub mantivesse a ordem correta dos releases. Versão idêntica à V2.4, porém com um menu de seleção de resolução.
Projeto Copa v2.4
Super atualização! Além disso, por um tempo, será a atualização "final". Trabalhei durante cerca de um mês no projeto e não tenho mais muitas ideias do que posso implementar, sendo que decidi também me dedicar a outros projetos.
v2p2_partida - O motor de partidas mudou um pouco, novamente. Agora, seleções mais fortes têm potencial de gol maior do que o de seleções mais fracas. Vou explicar melhor em um documento que vem em breve, mas em resumo, isso está ligado ao comprimento da lista "chance de gol", que funciona +/- como a pontaria dos atacantes, tendo sido ajustada para que o número de gols marcados por uma seleção seja razoavelmente próximo ao número de gols marcados por uma seleção real. Fiz isso para reduzir um pouco a quantidade de zebras, que estavam sendo muito frequentes (e portanto "não-zebras").
copa_menu - Atualizações no front-end, especialmente com relação ao tamanho da janela.
copa.csv e engine geral - Adição dos jogadores e elencos!
Essa é a GRANDE novidade desse release: Agora, o arquivo CSV também guarda o time titular de cada país em cada linha. Fiz isso para que além de mostrar o momento em que cada gol da partida foi marcado, o simulador mostrasse quem marcou o gol, para dar um grau maior de realismo. Além disso, programei os jogadores da linha de frente do campo para terem uma chance maior de fazer gols do que o goleiro, por exemplo. Os elencos estão atualizados na medida do possível, levando em consideração que não sei muito bem onde consigo times atualizados na internet.
Lembrando que você pode colocar as seleções que quiser no programa, basta seguir a sintaxe das seleções que estiverem no documento. Divirtam-se e salvem suas previsões, a Copa do Mundo é logo ali!
Projeto Copa v2.3
Grande atualização!
O que foi implementado:
- Sistema de prorrogação! Adicionei mais uma variável no sistema de simulação de partidas, que quando é mudada para True (ou seja, nas partidas eliminatórias), adiciona mais 30 minutos na duração das partidas. Caso ao fim da prorrogação a peleja continue empatada, assim como antes, vamos aos pênaltis. Falando em pênaltis...
- Melhora no sistema de pênaltis! De acordo com uma matéria publicada no diário de notícias de Portugal (https://www.dn.pt/desportos/estudo-analisou-100-mil-penaltis-em-10-anos-conheca-as-conclusoes-surpreendentes-10538039.html), cerca de 75,5% das penalidades resultam em gol. Atribuí essa proporção ao simulador. Se antes, não era muito incomum ver um resultado de 2x1 nas penalidades, agora é mais comum observarmos um 5x4 ou 4x2, valores que nos parecem mais realistas do que um 2x1.
- Antes de exibir os resultados diretamente, agora o menu mostra os grupos que foram sorteados! Sendo que, cada linha corresponde ao pote da seleção (Linha 1 - Pote 1 / Linha 2 - Pote 2 e assim por diante)
- O sistema de níveis passou por uma grande atualização. No começo, os níveis eram arbitrários, de 0 a 10. Depois da atualização da engine, na versão 2.2, o sistema de níveis continuou a ser arbitrário, mas agora, de 0 a 99. Agora, o sistema de níveis não é mais arbitrário! Para se obter o nível de uma seleção, no novo modelo, basta pegar a pontuação da mesma no Ranking da FIFA e multiplicá-la por 99/1780, arredondando-a até que não haja nenhuma casa decimal. Para poupar-lhes de trabalho, já atualizei o copa.csv com os dados novos. Aproveitem!
Projeto Copa v2.2
Grande update! Segue o que mudou abaixo:
sorteio - Método de organização das seleções por nível melhorado, através do método Sorted. Isso foi necessário pois, agora, as seleções não possuem mais força de 2 a 10, mas sim de 1 a 99.
penaltis - Consertado o bug que fazia o último resultado decidido nos pênaltis ser exibido no terminal ao se executar o programa.
v2p2_partida - Sem dúvida o update mais importante: Mudei completamente o motor de simulação de partidas. Ele continua recebendo, como parâmetros, as forças das duas seleções, mas agora, ele faz uma simulação em "tempo real', isto é:
Uma partida de futebol normalmente possui 90 minutos + acréscimos. A cada minuto, um gol pode acontecer, e a probabilidade de um gol ocorrer está diretamente relacionada à força da equipe (isso na vida real). No programa, a partir da força, o motor cria três variáveis p/ cada time: "ataque", "meio" e "defesa", aleatoriamente geradas a cada ciclo do programa que chamei de "minuto", havendo 90 ciclos em cada partida. Se em um ciclo, o meio do time A vence o meio do time B, e nesse mesmo ciclo, o ataque do time A vence a defesa do time B (numericamente), e ainda, nesse mesmo ciclo, uma variável chamada "chance de gol" recebe o valor 1 (chance de 1/11 p/ cada minuto), um gol é contabilizado para o time A e a minutagem / ciclo atual é armazenado, e vice-versa. OU SEJA:
Agora, além do resultado da partida, é possível ver em qual minuto de partida o gol foi marcado! Eu particularmente acho isso bem emocionante, já que podemos ver, por exemplo, uma seleção fraca fazendo o gol da classificação aos 51 do segundo tempo. Fator emoção, né?
Simulei mais de 360000 partidas para chegar em resultados consistentes e atribuir níveis decentes para cada seleção, que foi o que fiz no arquivo copa.csv. Para seleções de nível igual, a chance de vitória reside em 40% p/ cada uma, enquanto que, para seleções com uma diferença do tipo 100/50 (algo como França x Panamá, por exemplo), a chance de vitória para cada uma chega a ser de 97% para a seleção mais forte. Tabelei esses resultados e os colocarei em um pequeno estudo, que virá futuramente.
Projeto Copa v2.1
Agora os grupos aparecem em tabelas automaticamente ajustadas! :)
Projeto Copa v2.0
Nova versão do Projeto Copa!
O que foi implementado:
- Ao invés de gerar um arquivo.txt quando executado, agora o programa possui seu próprio front-end, construído com o PySimpleGUI. Através dele, é possível navegar pelos grupos, visualizar os jogos de cada rodada e do mata-mata, até o final.
- Sistema de país sede implementado. A seleção que for marcada como "sede" no último campo do arquivo CSV será a cabeça de chave do Grupo A, assim como ocorre na vida real. Como default, incluí o Qatar, sede da próxima copa, mas você pode incluir a seleção que quiser.
- Código simplificado. Os códigos do mata-mata e da fase de grupos agora possuem duas funções cada: Uma é responsável por gerar os resultados e tabelas / cruzamentos, outra é responsável por gerar os textos para o front-end. Além disso, ao invés de programar a fase de grupos para cada grupo, transformei-a em uma função, que recebe as seleções como entrada e gera a tabela como saída. Essas mudanças tornaram a gestão dos dados muito mais simples.
- Agora o executável possui seu próprio ícone, que desenhei.
Projeto Copa v1.0
Meu primeiro executável! Para que ele funcione, basta colocar o .CSV e o .EXE na mesma pasta.
Espero que se divirta com as zebras!