Torneo

¿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:

pnúmero de jugadores
nnúmero de entradas (incluyendo reentradas)
bel buy-in
zbote
mnúmero de puestos premiados
tformato del torneo (1 estándar, 2 dividido, 3 shootout, 4 mystery bounty)

Sobre el jugador que está siendo puntuado:

fposición de finalización
clo que gastaron (buy-in más sus propias recompras y addon)
kknockouts que realizaron
rrecompras que tomaron
aaddons que tomaron
xbalas que usaron (sus buy-ins totales)
wganancias (la cantidad que ganaron)
drondas 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] : 0

Usa el valor : para establecer un mínimo para todos los demás, por ejemplo : 5 para 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íaFórmula
Un punto por presentarse, nada más1
Una clasificación solo de victoriasf == 1 ? 1 : 0
Knockouts, más un punto por la victoriak + (f == 1 ? 1 : 0)
Un punto por oponente superado, con bonificación de podiop - f + 1 + (f < 4 ? [4, 2, 1][f] : 0)
Una tabla fija, pero todos los demás aún puntúanf < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100
Apuestas más altas valen más, cada recompra cuesta puntoslog(p + 1) / f * 10 + b - c / 4
Puntos escalados por el tamaño del botesqrt(p + 1) / f * z / 500
Solo el tercio superior puntúa, escalado por tamaño del field30 * 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 fieldf == 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.