Turniej

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:

pliczba graczy
nliczba wejść (włącznie z ponownymi wejściami)
bwpisowe
zpula nagród
mliczba miejsc płatnych
tformat turnieju (1 standardowy, 2 split, 3 shootout, 4 mystery bounty)

O punktowanym graczu:

fpozycja ukończenia
cile wydał (wpisowe plus własne rebuy i dobicie)
kwykonane knockout
rwzięte rebuy
awzięte dobicia
xużyte kule (łączna liczba wpisów)
wwygrane (kwota, którą wygrał)
drundy 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] : 0

Użyj wartości : aby ustawić minimum dla wszystkich pozostałych, na przykład : 5 aby 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ł klubFormuła
Punkt za stawienie się, nic więcej1
Ranking tylko wygranychf == 1 ? 1 : 0
Knockout, plus punkt za wygranąk + (f == 1 ? 1 : 0)
Jeden punkt za każdego przeciwnika przetrwanego, z bonusem za podiump - 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 punktylog(p + 1) / f * 10 + b - c / 4
Punkty skalowane według wielkości puli nagródsqrt(p + 1) / f * z / 500
Tylko górna tercja punktuje, skalowana według wielkości pola30 * 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 polemf == 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ść.