Cum funcționează formulele de punctaj pentru ligi?
Fiecare ligă acordă puncte jucătorilor săi pentru fiecare turneu la care participă, folosind sistemul de punctaj pe care îl alegi când creezi sau editezi liga:
- Logaritmic
- Rădăcină pătrată
- Liniar
- Fix (introduci punctele exacte pentru fiecare loc)
- Personalizat (scrii propria formulă)
Variabile pentru formula personalizată
O formulă personalizată este calculată o dată pentru fiecare jucător la finalul unui turneu. Unele dintre variabilele sale descriu turneul, așa că dețin aceeași valoare pentru toți participanții, iar altele descriu jucătorul care este punctat. A ști care este care reprezintă cea mai mare parte a abilității în scrierea unei formule.
Despre turneu, la fel pentru fiecare jucător:
| p | numărul de jucători |
| n | numărul de înregistrări (inclusiv re-entries) |
| b | buy-in-ul |
| z | fondul de premii |
| m | numărul de locuri premiate |
| t | formatul turneului (1 standard, 2 split, 3 shootout, 4 mystery bounty) |
Despre jucătorul care este punctat:
| f | poziția finală |
| c | ce au cheltuit (buy-in plus propriile rebuys și addon) |
| k | knockouts realizate |
| r | rebuys luate |
| a | addons luate |
| x | bullets folosite (total buy-ins) |
| w | câștiguri (suma pe care au câștigat-o) |
| d | runde până la finală într-un shootout (1 este runda finală) |
De exemplu, această formulă dă fiecărui jucător un punct pentru fiecare adversar pe care l-a depășit, un bonus de 2 puncte pentru fiecare knockout și scade un punct pentru fiecare rebuy:
(p - f + 1) + (2 * k) - r
Avansat: scrierea propriei formule
Dincolo de aritmetică, două piese de notație fac cea mai mare parte a muncii în formulele reale de ligă: condiții și tabele de puncte. Poți folosi de asemenea sqrt, log, log10, exp, pow, round, floor, fix, abs, min și max, și ^ pentru puteri.
Condiții cu ? :
O condiție se citește ca test ? valoare dacă adevărat : valoare altfel.
f == 1 ? 50 : 10
Aceasta acordă 50 de puncte câștigătorului și 10 tuturor celorlalți. Notează dubla == pentru "este egal cu". Ai de asemenea <, <=, >, >= și !=, și poți uni testele cu and și or:
p >= 20 and f <= 3 ? 10 : 0
Condițiile se înlănțuie, ceea ce este modul în care cluburile scriu o regulă diferită pentru fiecare poziție. Fiecare : trece la următorul test:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tabele de puncte cu [ ... ][f]
În loc să înlănțuiești condiții, poți lista punctele în ordine și alege-l pe cel pentru poziția finală a jucătorului:
[100, 85, 70][f]
Lista este citită pe poziții: primul loc primește 100, al doilea 85, al treilea 70. Pozițiile încep de la 1, deci f se aliniază cu lista fără nicio ajustare.
Protejează întotdeauna o tabelă de puncte cu o condiție. Dacă un jucător termină sub sfârșitul listei, formula eșuează și acel jucător nu primește niciun punct. O listă de trei intrări necesită
f < 4:
f < 4 ? [100, 85, 70][f] : 0Folosește valoarea
:pentru a stabili un prag minim pentru toți ceilalți, de exemplu: 5pentru a da cinci puncte pentru prezență.
Atenție la paranteze
Înmulțirea și adunarea sunt aplicate înaintea unei comparații, ceea ce schimbă discret ce testează o formulă. Scrisă fără paranteze:
30 * k + f < p / 3 + 1 ? 100 : 1
testul devine "este 30 * k + f mai mic decât p / 3 + 1", nu "este f în prima treime". O ligă poate rula un întreg sezon pe baza regulii greșite în acest fel. Înconjoară condiția, sau întreaga expresie condițională, în paranteze:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formule pe care cluburile le folosesc efectiv
Acestea sunt modele reale din ligile care rulează pe Blind Valet, simplificate doar acolo unde lista de locuri a unui club era foarte lungă.
| Ce a dorit clubul | Formula |
|---|---|
| Un punct pentru prezență, nimic altceva | 1 |
| Un clasament doar al victoriilor | f == 1 ? 1 : 0 |
| Knockouts, plus un punct pentru victorie | k + (f == 1 ? 1 : 0) |
| Un punct per adversar depășit, cu bonus de podium | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Un tabel fix, dar toți ceilalți tot primesc puncte | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Mize mai mari valorează mai mult, fiecare rebuy costă puncte | log(p + 1) / f * 10 + b - c / 4 |
| Puncte scalate după dimensiunea fondului de premii | sqrt(p + 1) / f * z / 500 |
| Doar prima treime primește puncte, scalate după dimensiunea câmpului | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Fiecare loc un procent dintr-o bază care crește cu câmpul | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Exemplul cu mizele arată de ce cele două grupuri contează. Folosește b și c, care par similare dar stau pe laturi opuse: adăugarea b ridică fiecare scor într-un turneu cu buy-in mai mare, deoarece buy-in-ul aparține turneului, în timp ce scăderea c ia înapoi o parte din ceea ce fiecare jucător a cheltuit individual. Un jucător care ia două rebuys termină cu mai puține puncte decât un jucător care a luat același loc cu un singur bullet.
Verificarea formulei
Setările ligii afișează o previzualizare a punctelor pentru fiecare poziție finală pe măsură ce tastezi, astfel încât să poți vedea forma distribuției înainte de a salva. Dacă previzualizarea este goală, formula nu este încă validă: verifică dacă lipsește o paranteză sau dacă există o tabelă de puncte de la care o poziție finală joasă poate ieși.