Jak działają formuły punktów ligowych?
Każda liga przyznaje punkty swoim graczom za każdy rozegrany turniej, używając systemu punktacji, który wybierasz podczas tworzenia lub edycji ligi:
- Logarytmiczny
- Pierwiastkowy
- Liniowy
- Stały (wpisujesz dokładne punkty dla każdego miejsca)
- Niestandardowy (piszesz własną formułę)
Zmienne formuły niestandardowej
Formuła niestandardowa jest obliczana raz dla każdego gracza na koniec turnieju. Niektóre z jej zmiennych opisują turniej, więc mają taką samą wartość dla wszystkich w nim uczestniczących, a niektóre opisują punktowanego gracza. Zrozumienie, która jest która, to kluczowa umiejętność w pisaniu formuły.
O turnieju, takie same dla każdego gracza:
| p | liczba graczy |
| n | liczba wejść (włącznie z ponownymi wejściami) |
| b | wpisowe |
| z | pula nagród |
| m | liczba miejsc płatnych |
| t | format turnieju (1 standardowy, 2 split, 3 shootout, 4 mystery bounty) |
O punktowanym graczu:
| f | pozycja ukończenia |
| c | ile wydał (wpisowe plus własne rebuy i dobicie) |
| k | wykonane knockout |
| r | wzięte rebuy |
| a | wzięte dobicia |
| x | użyte kule (łączna liczba wpisów) |
| w | wygrane (kwota, którą wygrał) |
| d | rundy od finału w shootout (1 to runda finałowa) |
Na przykład, ta formuła daje każdemu graczowi punkt za każdego przeciwnika, którego przetrwał, bonus 2 punktów za każdy knockout i odejmuje punkt za każdy rebuy:
(p - f + 1) + (2 * k) - r
Zaawansowane: pisanie własnej formuły
Poza arytmetyką, dwa elementy notacji wykonują większość pracy w rzeczywistych formułach ligowych: warunki i tabele punktów. Możesz również używać sqrt, log, log10, exp, pow, round, floor, fix, abs, min i max, oraz ^ dla potęg.
Warunki z ? :
Warunek czyta się jako test ? wartość jeśli prawda : wartość w przeciwnym razie.
f == 1 ? 50 : 10
To przyznaje 50 punktów zwycięzcy i 10 wszystkim innym. Zwróć uwagę na podwójne == dla "jest równe". Masz również <, <=, >, >= i !=, i możesz łączyć testy za pomocą and i or:
p >= 20 and f <= 3 ? 10 : 0
Warunki łańcuchowe, co jest sposobem klubów na pisanie innej zasady dla każdej pozycji. Każdy : przekazuje do następnego testu:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tabele punktów z [ ... ][f]
Zamiast łańcuchowania warunków, możesz wypisać punkty w kolejności i wybrać ten dla pozycji gracza:
[100, 85, 70][f]
Lista jest czytana według pozycji: pierwsze miejsce dostaje 100, drugie 85, trzecie 70. Pozycje zaczynają się od 1, więc f pasuje do listy bez żadnej korekty.
Zawsze zabezpieczaj tabelę punktów warunkiem. Jeśli gracz ukończy poniżej końca listy, formuła zawodzi i ten gracz nie zdobywa żadnych punktów. Lista trzech wpisów wymaga
f < 4:
f < 4 ? [100, 85, 70][f] : 0Użyj wartości
:aby ustawić minimum dla wszystkich pozostałych, na przykład: 5aby dać pięć punktów za stawienie się.
Uważaj na nawiasy
Mnożenie i dodawanie są stosowane przed porównaniem, co po cichu zmienia to, co testuje formuła. Zapisane bez nawiasów:
30 * k + f < p / 3 + 1 ? 100 : 1
test staje się "czy 30 * k + f jest mniejsze niż p / 3 + 1", a nie "czy f jest w górnej tercji". Liga może w ten sposób przeprowadzić cały sezon według złej zasady. Owiń warunek lub cały wyraz warunkowy w nawiasy:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formuły faktycznie używane przez kluby
To są prawdziwe wzorce z lig działających na Blind Valet, uproszczone tylko tam, gdzie lista miejsc klubu była bardzo długa.
| Czego chciał klub | Formuła |
|---|---|
| Punkt za stawienie się, nic więcej | 1 |
| Ranking tylko wygranych | f == 1 ? 1 : 0 |
| Knockout, plus punkt za wygraną | k + (f == 1 ? 1 : 0) |
| Jeden punkt za każdego przeciwnika przetrwanego, z bonusem za podium | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Stała tabela, ale wszyscy inni nadal punktują | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Wyższe stawki warte więcej, każdy rebuy kosztuje punkty | log(p + 1) / f * 10 + b - c / 4 |
| Punkty skalowane według wielkości puli nagród | sqrt(p + 1) / f * z / 500 |
| Tylko górna tercja punktuje, skalowana według wielkości pola | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Każde miejsce procentem bazy rosnącej z polem | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Przykład stawek pokazuje, dlaczego obie grupy mają znaczenie. Używa b i c, które wyglądają podobnie, ale znajdują się po przeciwnych stronach: dodanie b podnosi każdy wynik w turnieju z wyższym wpisowym, ponieważ wpisowe należy do turnieju, podczas gdy odjęcie c zabiera część tego, co każdy gracz indywidualnie wydał. Gracz, który wziął dwa rebuy, kończy z mniejszą liczbą punktów niż gracz, który zajął to samo miejsce za jedną kulę.
Sprawdzanie formuły
Ustawienia ligi podglądają punkty dla każdej pozycji ukończenia podczas pisania, więc możesz zobaczyć kształt wypłaty zanim zapiszesz. Jeśli podgląd jest pusty, formuła nie jest jeszcze poprawna: sprawdź brakujący nawias lub tabelę punktów, z której niskie ukończenie może wypaść.