Comment fonctionnent les formules de points du championnat ?
Chaque championnat attribue des points à ses joueurs pour chaque tournoi joué, en utilisant le système de points que vous choisissez lors de la création ou de la modification du championnat :
- Logarithmique
- Racine carrée
- Linéaire
- Fixe (vous saisissez les points exacts pour chaque place)
- Personnalisé (écrivez votre propre formule)
Variables de formule personnalisée
Une formule personnalisée est calculée une fois pour chaque joueur à la fin d'un tournoi. Certaines de ses variables décrivent le tournoi, elles ont donc la même valeur pour tous les participants, et d'autres décrivent le joueur évalué. Savoir distinguer les deux constitue l'essentiel de la compétence pour écrire une formule.
À propos du tournoi, identique pour chaque joueur :
| p | nombre de joueurs |
| n | nombre d'entrées (incluant les réentrées) |
| b | le buy-in |
| z | dotation |
| m | nombre de places payées |
| t | format du tournoi (1 standard, 2 split, 3 shootout, 4 mystery bounty) |
À propos du joueur évalué :
| f | position finale |
| c | ce qu'il a dépensé (buy-in plus ses propres recaves et addon) |
| k | knockouts réalisés |
| r | recaves prises |
| a | addons pris |
| x | bullets utilisées (total de ses buy-ins) |
| w | gains (le montant gagné) |
| d | tours depuis la finale dans un shootout (1 est le tour final) |
Par exemple, cette formule donne à chaque joueur un point pour chaque adversaire survécu, un bonus de 2 points par knockout, et soustrait un point par recave :
(p - f + 1) + (2 * k) - r
Avancé : écrire votre propre formule
Au-delà de l'arithmétique, deux éléments de notation font l'essentiel du travail dans les vraies formules de championnat : les conditions et les tables de points. Vous pouvez également utiliser sqrt, log, log10, exp, pow, round, floor, fix, abs, min et max, et ^ pour les puissances.
Conditions avec ? :
Une condition se lit comme test ? valeur si vrai : valeur sinon.
f == 1 ? 50 : 10
Cela attribue 50 points au vainqueur et 10 à tous les autres. Notez le double == pour "est égal à". Vous disposez également de <, <=, >, >= et !=, et vous pouvez joindre des tests avec and et or :
p >= 20 and f <= 3 ? 10 : 0
Les conditions s'enchaînent, c'est ainsi que les clubs écrivent une règle différente pour chaque position. Chaque : passe au test suivant :
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tables de points avec [ ... ][f]
Au lieu d'enchaîner des conditions, vous pouvez lister les points dans l'ordre et sélectionner celui correspondant à la position finale du joueur :
[100, 85, 70][f]
La liste se lit par position : la première place obtient 100, la deuxième 85, la troisième 70. Les positions commencent à 1, donc f s'aligne avec la liste sans ajustement.
Protégez toujours une table de points avec une condition. Si un joueur termine au-delà de la fin de la liste, la formule échoue et ce joueur ne marque aucun point. Une liste de trois entrées nécessite
f < 4:
f < 4 ? [100, 85, 70][f] : 0Utilisez la valeur
:pour définir un plancher pour tous les autres, par exemple: 5pour donner cinq points pour la participation.
Attention aux parenthèses
La multiplication et l'addition sont appliquées avant une comparaison, ce qui change discrètement ce qu'une formule teste. Écrite sans parenthèses :
30 * k + f < p / 3 + 1 ? 100 : 1
le test devient "est-ce que 30 * k + f est inférieur à p / 3 + 1", et non "est-ce que f est dans le premier tiers". Un championnat peut fonctionner toute une saison avec la mauvaise règle de cette façon. Entourez la condition, ou tout le conditionnel, de parenthèses :
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formules réellement utilisées par les clubs
Ce sont des modèles réels de championnats fonctionnant sur Blind Valet, simplifiés uniquement lorsque la liste des places d'un club était très longue.
| Ce que le club voulait | Formule |
|---|---|
| Un point pour la participation, rien d'autre | 1 |
| Un classement des victoires uniquement | f == 1 ? 1 : 0 |
| Knockouts, plus un point pour la victoire | k + (f == 1 ? 1 : 0) |
| Un point par adversaire survécu, avec un bonus pour le podium | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Une table fixe, mais tous les autres marquent quand même | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Les blindes plus élevées valent plus, chaque recave coûte des points | log(p + 1) / f * 10 + b - c / 4 |
| Points proportionnels à la taille de la dotation | sqrt(p + 1) / f * z / 500 |
| Seul le premier tiers marque, proportionnel à la taille du field | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Chaque place un pourcentage d'une base qui croît avec le field | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
L'exemple des blindes montre pourquoi les deux groupes sont importants. Il utilise b et c, qui semblent similaires mais se situent de côtés opposés : ajouter b élève chaque score dans un tournoi avec un buy-in plus élevé, car le buy-in appartient au tournoi, tandis que soustraire c retire une part de ce que chaque joueur a individuellement dépensé. Un joueur qui recave deux fois termine avec moins de points qu'un joueur ayant obtenu la même place avec une seule bullet.
Vérifier votre formule
Les paramètres du championnat affichent un aperçu des points pour chaque position finale pendant que vous tapez, vous pouvez donc voir la forme du payout avant d'enregistrer. Si l'aperçu est vide, la formule n'est pas encore valide : vérifiez s'il manque une parenthèse, ou si une table de points peut dépasser la fin de liste pour une position basse.