Hur fungerar ligapoängformler?
Varje liga delar ut poäng till sina spelare för varje turnering de spelar, med hjälp av det poängsystem du väljer när du skapar eller redigerar ligan:
- Logaritmisk
- Kvadratrot
- Linjär
- Fast (du anger de exakta poängen för varje placering)
- Anpassad (skriv din egen formel)
Variabler för anpassad formel
En anpassad formel beräknas en gång för varje spelare i slutet av en turnering. Vissa av dess variabler beskriver turneringen, så de har samma värde för alla i den, och vissa beskriver spelaren som poängsätts. Att veta vilken som är vilken är det mesta av skickligheten i att skriva en formel.
Om turneringen, samma för varje spelare:
| p | antal spelare |
| n | antal entries (inklusive re-entries) |
| b | buy-in |
| z | prispott |
| m | antal betalda placeringar |
| t | turneringsformat (1 standard, 2 split, 3 shootout, 4 mystery bounty) |
Om spelaren som poängsätts:
| f | slutplacering |
| c | vad de spenderade (buy-in plus deras egna rebuys och addon) |
| k | knockouts de gjorde |
| r | rebuys de tog |
| a | addons de tog |
| x | bullets de använde (deras totala buy-ins) |
| w | vinster (summan de vann) |
| d | omgångar från finalen i en shootout (1 är finalomgången) |
Till exempel ger denna formel varje spelare en poäng för varje motståndare de överlevde, en 2-poängsbonus för varje knockout, och drar av en poäng för varje rebuy:
(p - f + 1) + (2 * k) - r
Avancerat: skriva din egen formel
Utöver aritmetik gör två notationer det mesta av arbetet i riktiga ligaformler: villkor och poängtabeller. Du kan också använda sqrt, log, log10, exp, pow, round, floor, fix, abs, min och max, samt ^ för potenser.
Villkor med ? :
Ett villkor läses som test ? värde om sant : värde annars.
f == 1 ? 50 : 10
Det delar ut 50 poäng till vinnaren och 10 till alla andra. Notera dubbla == för "är lika med". Du har också <, <=, >, >= och !=, och du kan sammanfoga tester med and och or:
p >= 20 and f <= 3 ? 10 : 0
Villkor kan kedjas, vilket är hur klubbar skriver en annan regel för varje placering. Varje : överlämnar till nästa test:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Poängtabeller med [ ... ][f]
Istället för att kedja villkor kan du lista poängen i ordning och välja den för spelarens slutplacering:
[100, 85, 70][f]
Listan läses efter position: förstaplatsen får 100, andraplatsen 85, tredjeplatsen 70. Positioner börjar på 1, så f stämmer överens med listan utan någon justering.
Skydda alltid en poängtabell med ett villkor. Om en spelare slutar under slutet av listan misslyckas formeln och den spelaren får inga poäng alls. En lista med tre poster behöver
f < 4:
f < 4 ? [100, 85, 70][f] : 0Använd
:värdet för att sätta ett golv för alla andra, till exempel: 5för att ge fem poäng för att dyka upp.
Se upp med parenteserna
Multiplikation och addition tillämpas innan en jämförelse, vilket tyst ändrar vad en formel testar. Skrivet utan parenteser:
30 * k + f < p / 3 + 1 ? 100 : 1
blir testet "är 30 * k + f mindre än p / 3 + 1", inte "är f inom den övre tredjedelen". En liga kan köra en hel säsong med fel regel på detta sätt. Omslut villkoret, eller hela det villkorliga uttrycket, med parenteser:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formler som klubbar faktiskt använder
Dessa är riktiga mönster från ligor som körs på Blind Valet, förenklade endast där en klubbs lista över placeringar var mycket lång.
| Vad klubben ville ha | Formel |
|---|---|
| En poäng för att dyka upp, inget annat | 1 |
| En ranking endast av vinster | f == 1 ? 1 : 0 |
| Knockouts, plus en poäng för vinsten | k + (f == 1 ? 1 : 0) |
| En poäng per motståndare man överlevde, med pallplaceringsbonus | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| En fast tabell, men alla andra poängsätter fortfarande | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Högre insatser värda mer, varje rebuy kostar poäng | log(p + 1) / f * 10 + b - c / 4 |
| Poäng skalade efter storleken på prispotten | sqrt(p + 1) / f * z / 500 |
| Endast den övre tredjedelen poängsätter, skalat efter fältstorlek | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Varje placering en procentsats av en bas som växer med fältet | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Insatsexemplet visar varför de två grupperna spelar roll. Det använder b och c, som ser likadana ut men sitter på motsatta sidor: att lägga till b höjer varje poäng i en turnering med högre buy-in, eftersom buy-in tillhör turneringen, medan att dra av c tar tillbaka en andel av vad varje spelare individuellt spenderade. En spelare som tar två rebuys slutar med färre poäng än en spelare som tog samma placering på en bullet.
Kontrollera din formel
Ligainställningarna förhandsgranskar poängen för varje slutplacering medan du skriver, så du kan se formen på utbetalningen innan du sparar. Om förhandsgranskningen är tom är formeln inte giltig ännu: kontrollera om det saknas en parentes, eller en poängtabell som en låg slutplacering kan åka av i slutet av.