Aplicación para crear clasificaciones de potencia a través del algoritmo GLICKO-2.
La idea básica de esta aplicación es crear clasificaciones de potencia. Originalmente destinado a la competitiva Super Smash Bros. Melee para Nintendo GameCube, GGScore puede crear PRS para cada disciplina competitiva en la que dos lados compitan entre sí. Las clasificaciones se crean a través del algoritmo GLICKO-2.
Se puede encontrar una construcción lista para llevar en este Dropbox.
La idea general de usar esta herramienta es importando torneos de challonge.com. Para esto, necesitará una clave API de desarrollador de su cuenta de Challonge. Entonces los nombres/alias de los jugadores de los sets del torneo deben estar asociados con los jugadores. Puede asociar un alias con un jugador existente o crear uno nuevo (al importar el primer torneo, tendrá que crear todos los jugadores nuevos, por supuesto). Los resultados, que consisten en el ganador, el perdedor y la fecha del partido, se agregarán a la tabla en el "Informe del partido" -TAB y se puede eliminar manualmente (o agregar), si es necesario. Una vez que importó sus resultados, debe ingresar un período de calificación. El algoritmo solo tendrá en cuenta los resultados que ocurrieron dentro de un período de calificación. Se recomienda permitir que un jugador tenga al menos 10-15 juegos en un período de calificación para que la calificación sea precisa (especialmente para el primer período de calificación). Si el "Informe de coincidencia" se agrupa demasiado, puede usar la opción "Finalize Ratings" en el "Períodos de calificación" -TAB (donde también se muestra el PR real) para borrar las tablas que muestran los resultados y los períodos de calificación. Esto también significa que no podrá eliminar/agregar resultados de los períodos de calificación existentes antes de finalizar (finalizando así las calificaciones hasta ese punto). Sin embargo, puede agregar/eliminar e importar resultados como antes a partir de entonces.
Tenga en cuenta que solo los resultados dentro de un período de calificación se utilizarán para calcular una calificación. También se consideran que todos los resultados dentro de un período de calificación ocurren a la vez (por la definición del algoritmo GLICKO-2). Eso significa que si creas a todos los jugadores con los mismos valores iniciales (uso previsto) solo habrá coincidencias de personas con exactamente los mismos valores. Entonces, si hay un PR como este con solo un período de calificación actualmente y todos los jugadores comenzaron con 1500 puntos de calificación y usted ingresa al resultado de un jugador (actualmente) con calificación de 1000 que gane contra un jugador (actualmente) con clasificación de 2000, todo el cálculo de ese período se repitirá y ese resultado se tiene en cuenta como un jugador con clasificación de 1500 ganando contra un jugador clasificado por 1500. Por lo tanto, el primer período se trata más de tener una idea general de los valores de calificación y las molestias tendrá menos influencia. Sin embargo, este es probablemente un comportamiento bastante común para un algoritmo de calificación. Para evitar esto, tendría que proporcionar valores iniciales precisos, pero el usuario promedio probablemente no debería (no lo haría).
Esta aplicación consta de dos módulos: la API GLICKO-2, que proporciona el algoritmo GLICKO-2 y la GUI que proporciona al usuario medios para usar la API y visualizar los resultados de los cálculos. También asocia las ID de los Glicko-Players con sus alias.
La API GLICKO-2 consta de varias clases para configurar las condiciones necesarias para aplicar el algoritmo y, por supuesto, el algoritmo en sí:
La GUI implementa que el usuario use la API y muestre los resultados del algoritmo. También administra los alias de los jugadores, asociándolos con la identificación de su Glicko-Counterpart. Además de eso, crea todos los resultados (usando la clase GLICKO-RESULT) y los guarda junto con la fecha en la que se ingresó.
La API GLICKO-2 solo aplica el algoritmo a los jugadores existentes con cualquier resultado que se le pase. Por lo tanto, los períodos de calificación se implementan aquí para agrupar los resultados y darlos al algoritmo.
Continuará...
Si crea la aplicación como es de este repositorio, el formato de fecha será DD.MM.YYYY, que se puede cambiar en el archivo GlobalVars.h. El "defaultFormatString" se puede cambiar utilizando los especificadores que se muestran aquí. El formato de fecha estándar de EE. UU. Será "%m/%d/%y" y se puede encontrar una compilación en Dropbox.
Cambiar el formato de fecha se puede hacer sin preocuparse por los archivos de guardado (principalmente resultados. Json, siendo las únicas fechas de ahorro). Las fechas siempre se guardan en formato ISO 8601 y solo se muestran según lo descrito por el valor predeterminado para el valor.
Esta aplicación utiliza algunas API que deberán construirse y vincularse antes de que pueda construir este proyecto. Las API necesarias son WXWidgets, JSONCPP y LibCurl (7.62.0 utilizadas, pero otras deberían funcionar, por supuesto, pero tendrá que cambiar la ruta en el archivo de proyecto suministrado, si desea usarlo). Los archivos de proyecto de Visual Studio suministrados requieren la siguiente estructura de carpetas para construir con éxito la aplicación:
└── ┐
├── GGScore
│ └── .git
│ └── PR Tool
├── wxWidget
│ ├── lib
│ └── include
├── jsoncpp-master
│ └── dist
└── curl-7.62.0
├── include
└── lib
Estas API están estáticamente vinculadas, solo la API GLICKO-2 está vinculada dinámicamente (nuevamente, solo hablando para el archivo de proyecto suministrado).