Como funcionam as fórmulas de pontos de liga?
Cada liga concede pontos aos seus jogadores para cada torneio que jogam, usando o sistema de pontuação que você escolhe ao criar ou editar a liga:
- Logarítmico
- Raiz Quadrada
- Linear
- Fixo (você insere os pontos exatos para cada posição)
- Personalizado (escreva 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 de suas variáveis descrevem o torneio, então mantêm o mesmo valor para todos nele, e algumas descrevem o jogador sendo pontuado. Saber qual é qual é a maior parte da habilidade em escrever uma fórmula.
Sobre o torneio, o mesmo para cada jogador:
| p | número de jogadores |
| n | número de entradas (incluindo reentradas) |
| b | o buy-in |
| z | premiação |
| m | número de posições pagas |
| t | formato do torneio (1 padrão, 2 split, 3 shootout, 4 mystery bounty) |
Sobre o jogador sendo pontuado:
| f | posição final |
| c | o que eles gastaram (buy-in mais seus próprios rebuys e add-on) |
| k | knockouts que fizeram |
| r | rebuys que tomaram |
| a | add-ons que tomaram |
| x | bullets que usaram (seus buy-ins totais) |
| w | ganhos (o valor que ganharam) |
| d | rodadas da final em um shootout (1 é a rodada final) |
Por exemplo, esta fórmula dá a cada jogador um ponto para cada oponente que sobreviveram, um bônus de 2 pontos para cada knockout, e subtrai um ponto para cada rebuy:
(p - f + 1) + (2 * k) - r
Avançado: escrevendo sua própria fórmula
Além da aritmética, duas notações fazem a maior parte do trabalho em fórmulas reais de liga: condições e tabelas de pontos. Você 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 se lê como teste ? valor se verdadeiro : valor caso contrário.
f == 1 ? 50 : 10
Isso concede 50 pontos ao vencedor e 10 para todos os outros. Note o == duplo para "é igual a". Você também tem <, <=, >, >= e !=, e pode juntar testes com and e or:
p >= 20 and f <= 3 ? 10 : 0
Condições se encadeiam, que é como 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, você pode listar os pontos em ordem e escolher aquele para a posição final do jogador:
[100, 85, 70][f]
A lista é lida por posição: primeiro lugar recebe 100, segundo 85, terceiro 70. As posições começam em 1, então f se alinha com a lista sem nenhum ajuste.
Sempre proteja uma tabela de pontos com uma condição. Se um jogador terminar abaixo do final da lista, a fórmula falha e esse jogador não pontua nada. Uma lista de três entradas precisa de
f < 4:
f < 4 ? [100, 85, 70][f] : 0Use o valor
:para definir um piso para todos os outros, por exemplo: 5para dar cinco pontos por aparecer.
Cuidado com os colchetes
Multiplicação e adição são aplicadas antes de uma comparação, o que silenciosamente muda o que uma fórmula testa. Escrito sem colchetes:
30 * k + f < p / 3 + 1 ? 100 : 1
o teste se torna "é 30 * k + f menor que p / 3 + 1", não "está f dentro do terço superior". Uma liga pode rodar uma temporada inteira na regra errada desta forma. Envolva a condição, ou toda a condicional, em colchetes:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Fórmulas que clubes realmente usam
Estes são padrões reais de ligas rodando no Blind Valet, simplificados apenas onde 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 |
| Um ranking apenas de vitórias | f == 1 ? 1 : 0 |
| Knockouts, mais um ponto pela vitória | k + (f == 1 ? 1 : 0) |
| Um ponto por oponente sobrevivido, 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 maiores valem mais, cada rebuy custa pontos | log(p + 1) / f * 10 + b - c / 4 |
| Pontos escalados pelo tamanho da premiação | 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 posição uma porcentagem 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 de stakes mostra por que os dois grupos importam. Ele usa b e c, que parecem similares mas ficam em lados opostos: adicionar b eleva cada pontuação em um torneio de buy-in maior, porque o buy-in pertence ao torneio, enquanto subtrair c retira uma parte do que cada jogador individualmente gastou. Um jogador que faz rebuy duas vezes termina com menos pontos do que um jogador que ficou na mesma posição com um bullet.
Verificando sua fórmula
As configurações da liga pré-visualizam os pontos para cada posição final conforme você digita, então você pode ver a forma da premiação antes de salvar. Se a pré-visualização estiver em branco, a fórmula ainda não é válida: verifique se há um colchete faltando, ou uma tabela de pontos que uma posição baixa pode ultrapassar o final.