¿Cómo funcionan las fórmulas de puntos de liga?
Cada liga otorga puntos a sus jugadores por cada torneo que juegan, utilizando el sistema de puntuación que elijas al crear o editar la liga:
- Logarítmico
- Raíz Cuadrada
- Lineal
- Fijo (introduces los puntos exactos para cada puesto)
- Personalizado (escribes tu propia fórmula)
Variables de fórmula personalizada
Una fórmula personalizada se calcula una vez para cada jugador al final de un torneo. Algunas de sus variables describen el torneo, por lo que mantienen el mismo valor para todos los participantes, y algunas describen al jugador que está siendo puntuado. Saber cuál es cuál es la mayor parte de la habilidad al escribir una fórmula.
Sobre el torneo, igual para cada jugador:
| p | número de jugadores |
| n | número de entradas (incluyendo reentradas) |
| b | el buy-in |
| z | bote |
| m | número de puestos premiados |
| t | formato del torneo (1 estándar, 2 dividido, 3 shootout, 4 mystery bounty) |
Sobre el jugador que está siendo puntuado:
| f | posición de finalización |
| c | lo que gastaron (buy-in más sus propias recompras y addon) |
| k | knockouts que realizaron |
| r | recompras que tomaron |
| a | addons que tomaron |
| x | balas que usaron (sus buy-ins totales) |
| w | ganancias (la cantidad que ganaron) |
| d | rondas desde la final en un shootout (1 es la ronda final) |
Por ejemplo, esta fórmula otorga a cada jugador un punto por cada oponente que superó, una bonificación de 2 puntos por cada knockout, y resta un punto por cada recompra:
(p - f + 1) + (2 * k) - r
Avanzado: escribir tu propia fórmula
Más allá de la aritmética, dos piezas de notación hacen la mayor parte del trabajo en las fórmulas reales de liga: condiciones y tablas de puntos. También puedes usar sqrt, log, log10, exp, pow, round, floor, fix, abs, min y max, y ^ para potencias.
Condiciones con ? :
Una condición se lee como prueba ? valor si es verdadero : valor en caso contrario.
f == 1 ? 50 : 10
Eso otorga 50 puntos al ganador y 10 a todos los demás. Nota el doble == para "es igual a". También tienes <, <=, >, >= y !=, y puedes unir pruebas con and y or:
p >= 20 and f <= 3 ? 10 : 0
Las condiciones se encadenan, que es como los clubs escriben una regla diferente para cada posición. Cada : pasa a la siguiente prueba:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tablas de puntos con [ ... ][f]
En lugar de encadenar condiciones, puedes listar los puntos en orden y seleccionar el que corresponde a la posición de finalización del jugador:
[100, 85, 70][f]
La lista se lee por posición: el primer puesto obtiene 100, el segundo 85, el tercero 70. Las posiciones comienzan en 1, por lo que f se alinea con la lista sin ningún ajuste.
Protege siempre una tabla de puntos con una condición. Si un jugador termina por debajo del final de la lista, la fórmula falla y ese jugador no obtiene puntos en absoluto. Una lista de tres entradas necesita
f < 4:
f < 4 ? [100, 85, 70][f] : 0Usa el valor
:para establecer un mínimo para todos los demás, por ejemplo: 5para dar cinco puntos por presentarse.
Cuidado con los paréntesis
La multiplicación y la suma se aplican antes que una comparación, lo que cambia silenciosamente lo que prueba una fórmula. Escrito sin paréntesis:
30 * k + f < p / 3 + 1 ? 100 : 1
la prueba se convierte en "¿es 30 * k + f menor que p / 3 + 1?", no "¿está f dentro del tercio superior?". Una liga puede funcionar toda una temporada con la regla incorrecta de esta manera. Envuelve la condición, o todo el condicional, entre paréntesis:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Fórmulas que los clubs realmente usan
Estos son patrones reales de ligas que funcionan en Blind Valet, simplificados solo donde la lista de puestos de un club era muy larga.
| Lo que el club quería | Fórmula |
|---|---|
| Un punto por presentarse, nada más | 1 |
| Una clasificación solo de victorias | f == 1 ? 1 : 0 |
| Knockouts, más un punto por la victoria | k + (f == 1 ? 1 : 0) |
| Un punto por oponente superado, con bonificación de podio | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Una tabla fija, pero todos los demás aún puntúan | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Apuestas más altas valen más, cada recompra cuesta puntos | log(p + 1) / f * 10 + b - c / 4 |
| Puntos escalados por el tamaño del bote | sqrt(p + 1) / f * z / 500 |
| Solo el tercio superior puntúa, escalado por tamaño del field | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Cada puesto un porcentaje de una base que crece con el field | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
El ejemplo de apuestas muestra por qué los dos grupos importan. Usa b y c, que parecen similares pero están en lados opuestos: añadir b eleva cada puntuación en un torneo de buy-in más alto, porque el buy-in pertenece al torneo, mientras que restar c quita una parte de lo que cada jugador gastó individualmente. Un jugador que recompra dos veces termina con menos puntos que un jugador que quedó en el mismo puesto con una sola bala.
Verificar tu fórmula
La configuración de la liga previsualiza los puntos para cada posición de finalización mientras escribes, para que puedas ver la forma del pago antes de guardar. Si la vista previa está en blanco, la fórmula aún no es válida: verifica que no falte un paréntesis, o una tabla de puntos de la que una posición baja pueda salirse del final.