Como funcionam as fórmulas de pontos de liga?
Cada liga atribui pontos aos seus jogadores por cada torneio que jogam, utilizando o sistema de pontuação que escolhe quando cria ou edita a liga:
- Logarítmico
- Raiz Quadrada
- Linear
- Fixo (introduz os pontos exatos para cada posição)
- Personalizado (escreve a sua própria fórmula)
Variáveis de fórmula personalizada
Uma fórmula personalizada é calculada uma vez para cada jogador no final de um torneio. Algumas das suas variáveis descrevem o torneio, pelo que mantêm o mesmo valor para todos os participantes, e algumas descrevem o jogador a ser pontuado. Saber qual é qual constitui a maior parte da habilidade na escrita de uma fórmula.
Sobre o torneio, igual para todos os jogadores:
| p | número de jogadores |
| n | número de entradas (incluindo re-entradas) |
| b | o buy-in |
| z | montante do prémio |
| m | número de lugares pagos |
| t | formato do torneio (1 standard, 2 split, 3 shootout, 4 mystery bounty) |
Sobre o jogador a ser pontuado:
| f | posição final |
| c | o que gastaram (buy-in mais os seus próprios rebuys e addon) |
| k | knockouts que fizeram |
| r | rebuys que fizeram |
| a | addons que fizeram |
| x | bullets que usaram (o seu total de buy-ins) |
| w | ganhos (o montante que ganharam) |
| d | rondas desde a final num shootout (1 é a ronda final) |
Por exemplo, esta fórmula dá a cada jogador um ponto por cada adversário que superou, um bónus de 2 pontos por cada knockout, e subtrai um ponto por cada rebuy:
(p - f + 1) + (2 * k) - r
Avançado: escrever a sua própria fórmula
Para além da aritmética, dois elementos de notação fazem a maior parte do trabalho em fórmulas de liga reais: condições e tabelas de pontos. Também pode usar sqrt, log, log10, exp, pow, round, floor, fix, abs, min e max, e ^ para potências.
Condições com ? :
Uma condição lê-se como teste ? valor se verdadeiro : valor caso contrário.
f == 1 ? 50 : 10
Isso atribui 50 pontos ao vencedor e 10 a todos os outros. Note o duplo == para "é igual a". Também tem <, <=, >, >= e !=, e pode juntar testes com and e or:
p >= 20 and f <= 3 ? 10 : 0
As condições encadeiam-se, que é como os clubes escrevem uma regra diferente para cada posição. Cada : passa para o próximo teste:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tabelas de pontos com [ ... ][f]
Em vez de encadear condições, pode listar os pontos por ordem e escolher o correspondente à posição final do jogador:
[100, 85, 70][f]
A lista é lida por posição: o primeiro lugar recebe 100, o segundo 85, o terceiro 70. As posições começam em 1, pelo que f alinha-se com a lista sem qualquer ajuste.
Proteja sempre uma tabela de pontos com uma condição. Se um jogador terminar abaixo do fim da lista, a fórmula falha e esse jogador não pontua de todo. Uma lista de três entradas precisa de
f < 4:
f < 4 ? [100, 85, 70][f] : 0Use o valor
:para definir um mínimo para todos os outros, por exemplo: 5para dar cinco pontos por aparecer.
Atenção aos parênteses
A multiplicação e a adição são aplicadas antes de uma comparação, o que altera silenciosamente o que uma fórmula testa. Escrito sem parênteses:
30 * k + f < p / 3 + 1 ? 100 : 1
o teste torna-se "é 30 * k + f menor que p / 3 + 1", e não "está f dentro do terço superior". Uma liga pode decorrer uma época inteira com a regra errada desta forma. Coloque a condição, ou todo o condicional, entre parênteses:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Fórmulas que os clubes realmente usam
Estes são padrões reais de ligas a decorrer no Blind Valet, simplificados apenas quando a lista de posições de um clube era muito longa.
| O que o clube queria | Fórmula |
|---|---|
| Um ponto por aparecer, nada mais | 1 |
| Uma classificação apenas de vitórias | f == 1 ? 1 : 0 |
| Knockouts, mais um ponto pela vitória | k + (f == 1 ? 1 : 0) |
| Um ponto por adversário superado, com bónus de pódio | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Uma tabela fixa, mas todos os outros ainda pontuam | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Stakes mais altos valem mais, cada rebuy custa pontos | log(p + 1) / f * 10 + b - c / 4 |
| Pontos escalados pelo tamanho do montante do prémio | sqrt(p + 1) / f * z / 500 |
| Apenas o terço superior pontua, escalado pelo tamanho do field | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Cada lugar uma percentagem de uma base que cresce com o field | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
O exemplo dos stakes mostra porque os dois grupos importam. Usa b e c, que parecem semelhantes mas situam-se em lados opostos: adicionar b aumenta todas as pontuações num torneio de buy-in mais alto, porque o buy-in pertence ao torneio, enquanto subtrair c retira uma parte do que cada jogador individualmente gastou. Um jogador que faz dois rebuys termina com menos pontos do que um jogador que ficou na mesma posição com um bullet.
Verificar a sua fórmula
As definições da liga pré-visualizam os pontos para cada posição final enquanto escreve, para que possa ver a forma do payout antes de guardar. Se a pré-visualização estiver em branco, a fórmula ainda não é válida: verifique se falta um parêntese, ou uma tabela de pontos que uma posição baixa possa ultrapassar o fim.