Verseny

Hogyan működnek a liga pontszámítási formulák?

Minden liga pontokat oszt a játékosainak minden egyes versenyért, amelyen részt vesznek, a pontozási rendszer alapján, amelyet a liga létrehozásakor vagy szerkesztésekor választasz:

  • Logaritmikus
  • Négyzetgyök
  • Lineáris
  • Fix (te adod meg a pontos pontokat minden helyezéshez)
  • Egyéni (írd meg a saját képletedet)

Egyéni képlet változói

Az egyéni képlet minden játékos esetében egyszer kerül kiszámításra a verseny végén. Néhány változója a versenyt írja le, így minden résztvevő számára ugyanazt az értéket tartalmazza, míg mások a pontozás alatt álló játékost írják le. Annak tudása, hogy melyik melyik, a képletírás fő képessége.

A versenyről, minden játékos számára ugyanaz:

pjátékosok száma
nnevezések száma (beleértve az újranevezéseket)
ba nevezési díj
znyereményalap
mdíjazott helyek száma
tversenyformátum (1 standard, 2 split, 3 shootout, 4 mystery bounty)

A pontozás alatt álló játékosról:

fvégső helyezés
camit elköltött (nevezési díj plusz saját rebuy-jai és addon-ja)
káltala elért knockout-ok
ráltala vett rebuy-ok
aáltala vett addon-ok
xáltala használt bullet-ek (összes nevezési díja)
wnyeremények (az összeg, amit nyert)
dfordulók a fináléig egy shootout-ban (1 a döntő forduló)

Például ez a képlet minden játékosnak egy pontot ad minden leköröző ellenfelért, 2 pontos bónuszt ad minden knockout-ért, és levon egy pontot minden rebuy-ért:

(p - f + 1) + (2 * k) - r

Haladó: saját képlet írása

Az aritmetikán túl két jelölési mód végzi a valódi ligaképletekben a munka nagy részét: feltételek és ponttáblázatok. Használhatod még az sqrt, log, log10, exp, pow, round, floor, fix, abs, min és max függvényeket, valamint a ^ hatványozásra.

Feltételek a ? : használatával

Egy feltétel így olvasható: teszt ? érték, ha igaz : érték egyébként.

f == 1 ? 50 : 10

Ez 50 pontot oszt a győztesnek és 10-et mindenki másnak. Figyeld meg a dupla == jelet az "egyenlő"-re. Használhatod még a <, <=, >, >= és != jeleket, és összekapcsolhatod a teszteket az and és or operátorokkal:

p >= 20 and f <= 3 ? 10 : 0

A feltételek láncolhatók, így írhatnak a klubok más szabályt minden helyezéshez. Minden : átadja a következő tesztnek:

f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5

Ponttáblázatok a [ ... ][f] használatával

A feltételek láncolása helyett felsorolhatod a pontokat sorrendben, és kiválaszthatod a játékos helyezéséhez tartozót:

[100, 85, 70][f]

A lista helyezés szerint olvasandó: az első hely 100-at, a második 85-öt, a harmadik 70-et kap. A helyezések 1-től kezdődnek, így az f beállítás nélkül is illeszkedik a listához.

Mindig védd le a ponttáblázatot feltétellel. Ha egy játékos a lista vége alá végez, a képlet hibát ad, és az a játékos egyáltalán nem szerez pontot. Egy három elemből álló listához f < 4 kell:

f < 4 ? [100, 85, 70][f] : 0

Használd a : értéket egy minimum beállítására mindenki más számára, például : 5 öt pontot ad a megjelenésért.

Figyelj a zárójelekre

A szorzás és az összeadás az összehasonlítás előtt hajtódik végre, ami csendben megváltoztatja, hogy mit tesztel a képlet. Zárójelek nélkül írva:

30 * k + f < p / 3 + 1 ? 100 : 1

a teszt így válik: "30 * k + f kisebb-e, mint p / 3 + 1", nem pedig "az f a felső harmadban van-e". Egy liga egy egész szezont futhat így rossz szabályon. Zárd zárójelbe a feltételt, vagy az egész feltételes részt:

30 * k + (f < p / 3 + 1 ? 100 : 1)

Képletek, amelyeket a klubok valóban használnak

Ezek valódi minták a Blind Valet-en futó ligákból, csak ott egyszerűsítve, ahol egy klub helyezési listája nagyon hosszú volt.

Mit akart a klubKéplet
Egy pont a megjelenésért, semmi más1
Csak a győzelmek ranglistájaf == 1 ? 1 : 0
Knockout-ok, plusz egy pont a győzelemértk + (f == 1 ? 1 : 0)
Egy pont minden leköröző ellenfelért, dobogós bónusszalp - f + 1 + (f < 4 ? [4, 2, 1][f] : 0)
Fix táblázat, de mindenki más is szerez pontotf < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100
A magasabb tétek többet érnek, minden rebuy pontba kerüllog(p + 1) / f * 10 + b - c / 4
Pontok a nyereményalap mérete szerint skálázvasqrt(p + 1) / f * z / 500
Csak a felső harmad szerez pontot, a mezőny mérete szerint skálázva30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1)
Minden helyezés egy alap százaléka, amely a mezőnnyel nőf == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74)

A tétek példája mutatja, miért számít a két csoport. A b és c változókat használja, amelyek hasonlónak tűnnek, de ellentétes oldalakon állnak: a b hozzáadása minden pontszámot megemel egy magasabb nevezési díjú versenyben, mert a nevezési díj a versenyhez tartozik, míg a c levonása visszavesz egy részét annak, amit minden egyes játékos egyénileg elköltött. Egy játékos, aki kétszer rebuy-ol, kevesebb ponttal végez, mint egy játékos, aki ugyanazt a helyezést érte el egy bullet-tel.

Képleted ellenőrzése

A liga beállításai előnézetet adnak minden végső helyezés pontjairól gépelés közben, így láthatod a kifizetés alakját mentés előtt. Ha az előnézet üres, a képlet még nem érvényes: ellenőrizd, hogy nincs-e hiányzó zárójel, vagy olyan ponttáblázat, amelynek végéről egy alacsony helyezés lefuthat.