Hoe werken competitiepunt-formules?
Elke competitie kent punten toe aan spelers voor elk toernooi dat ze spelen, volgens het puntensysteem dat je kiest wanneer je de competitie aanmaakt of bewerkt:
- Logaritmisch
- Wortel
- Lineair
- Vast (je voert de exacte punten in voor elke plaats)
- Aangepast (schrijf je eigen formule)
Variabelen voor aangepaste formules
Een aangepaste formule wordt eenmaal berekend voor elke speler aan het einde van een toernooi. Sommige variabelen beschrijven het toernooi, dus hebben ze dezelfde waarde voor iedereen, en sommige beschrijven de speler die gescoord wordt. Weten welke welke is, is het belangrijkste onderdeel van het schrijven van een formule.
Over het toernooi, hetzelfde voor elke speler:
| p | aantal spelers |
| n | aantal inschrijvingen (inclusief re-entries) |
| b | de inleg |
| z | prijzenpot |
| m | aantal betaalde plaatsen |
| t | toernooiformaat (1 standaard, 2 split, 3 shootout, 4 mystery bounty) |
Over de speler die gescoord wordt:
| f | eindpositie |
| c | wat ze uitgegeven hebben (inleg plus hun eigen rebuys en addon) |
| k | knockouts die ze gemaakt hebben |
| r | rebuys die ze genomen hebben |
| a | addons die ze genomen hebben |
| x | bullets die ze gebruikt hebben (hun totale inlegen) |
| w | winst (het bedrag dat ze gewonnen hebben) |
| d | rondes van de finale in een shootout (1 is de finalerende) |
Bijvoorbeeld, deze formule geeft elke speler een punt voor elke tegenstander die ze overleefd hebben, een bonus van 2 punten voor elke knockout, en trekt een punt af voor elke rebuy:
(p - f + 1) + (2 * k) - r
Geavanceerd: je eigen formule schrijven
Naast rekenkunde doen twee stukken notatie het meeste werk in echte competitieformules: voorwaarden en puntentabellen. Je kunt ook sqrt, log, log10, exp, pow, round, floor, fix, abs, min en max gebruiken, en ^ voor machten.
Voorwaarden met ? :
Een voorwaarde leest als test ? waarde indien waar : waarde anders.
f == 1 ? 50 : 10
Dat kent 50 punten toe aan de winnaar en 10 aan iedereen anders. Let op de dubbele == voor "is gelijk aan". Je hebt ook <, <=, >, >= en !=, en je kunt tests samenvoegen met and en or:
p >= 20 and f <= 3 ? 10 : 0
Voorwaarden kunnen geschakeld worden, wat de manier is waarop clubs een andere regel schrijven voor elke positie. Elke : geeft door aan de volgende test:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Puntentabellen met [ ... ][f]
In plaats van voorwaarden te schakelen, kun je de punten op volgorde zetten en degene kiezen voor de eindpositie van de speler:
[100, 85, 70][f]
De lijst wordt gelezen op positie: eerste plaats krijgt 100, tweede 85, derde 70. Posities beginnen bij 1, dus f sluit aan op de lijst zonder aanpassing.
Bescherm een puntentabel altijd met een voorwaarde. Als een speler eindigt onder het einde van de lijst, mislukt de formule en scoort die speler helemaal niets. Een lijst van drie items heeft
f < 4nodig:
f < 4 ? [100, 85, 70][f] : 0Gebruik de
:waarde om een minimum in te stellen voor iedereen anders, bijvoorbeeld: 5om vijf punten te geven voor deelname.
Let op de haakjes
Vermenigvuldiging en optelling worden toegepast vóór een vergelijking, wat stilletjes verandert wat een formule test. Geschreven zonder haakjes:
30 * k + f < p / 3 + 1 ? 100 : 1
wordt de test "is 30 * k + f kleiner dan p / 3 + 1", niet "is f in de top een derde". Een competitie kan op deze manier een heel seizoen draaien op de verkeerde regel. Zet de voorwaarde, of de hele conditionele uitdrukking, tussen haakjes:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formules die clubs daadwerkelijk gebruiken
Dit zijn echte patronen van competities die draaien op Blind Valet, alleen vereenvoudigd waar de lijst van plaatsen van een club erg lang was.
| Wat de club wilde | Formule |
|---|---|
| Een punt voor deelname, verder niets | 1 |
| Een klassement van alleen overwinningen | f == 1 ? 1 : 0 |
| Knockouts, plus een punt voor de overwinning | k + (f == 1 ? 1 : 0) |
| Eén punt per overleefd tegenstander, met een podiumbons | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Een vaste tabel, maar iedereen anders scoort nog steeds | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Hogere inzet meer waard, elke rebuy kost punten | log(p + 1) / f * 10 + b - c / 4 |
| Punten geschaald naar de grootte van de prijzenpot | sqrt(p + 1) / f * z / 500 |
| Alleen de top een derde scoort, geschaald naar veldgrootte | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Elke plaats een percentage van een basis die groeit met het veld | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Het inzetvoorbeeld laat zien waarom de twee groepen ertoe doen. Het gebruikt b en c, die er vergelijkbaar uitzien maar aan tegenovergestelde kanten staan: b toevoegen verhoogt elke score in een hoger inlegtoernooi, omdat de inleg bij het toernooi hoort, terwijl c aftrekken een deel terugneemt van wat elke speler individueel uitgegeven heeft. Een speler die twee keer rebuy neemt eindigt met minder punten dan een speler die dezelfde plaats behaalde met één bullet.
Je formule controleren
De competitie-instellingen tonen een voorbeeld van de punten voor elke eindpositie terwijl je typt, zodat je de vorm van de uitbetaling kunt zien voordat je opslaat. Als het voorbeeld leeg is, is de formule nog niet geldig: controleer op een ontbrekend haakje, of een puntentabel waar een lage eindpositie vanaf kan vallen.