Torneio

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:

pnúmero de jogadores
nnúmero de entradas (incluindo re-entradas)
bo buy-in
zmontante do prémio
mnúmero de lugares pagos
tformato do torneio (1 standard, 2 split, 3 shootout, 4 mystery bounty)

Sobre o jogador a ser pontuado:

fposição final
co que gastaram (buy-in mais os seus próprios rebuys e addon)
kknockouts que fizeram
rrebuys que fizeram
aaddons que fizeram
xbullets que usaram (o seu total de buy-ins)
wganhos (o montante que ganharam)
drondas 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] : 0

Use o valor : para definir um mínimo para todos os outros, por exemplo : 5 para 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 queriaFórmula
Um ponto por aparecer, nada mais1
Uma classificação apenas de vitóriasf == 1 ? 1 : 0
Knockouts, mais um ponto pela vitóriak + (f == 1 ? 1 : 0)
Um ponto por adversário superado, com bónus de pódiop - f + 1 + (f < 4 ? [4, 2, 1][f] : 0)
Uma tabela fixa, mas todos os outros ainda pontuamf < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100
Stakes mais altos valem mais, cada rebuy custa pontoslog(p + 1) / f * 10 + b - c / 4
Pontos escalados pelo tamanho do montante do prémiosqrt(p + 1) / f * z / 500
Apenas o terço superior pontua, escalado pelo tamanho do field30 * 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 fieldf == 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.