Kako delujejo formule za točke lige?
Vsaka liga podeljuje točke svojim igralcem za vsak turnir, ki ga odigrajo, z uporabo sistema točkovanja, ki ga izberete pri ustvarjanju ali urejanju lige:
- Logaritemski
- Kvadratni koren
- Linearni
- Fiksni (vnesete točne točke za vsako mesto)
- Po meri (napišete svojo formulo)
Spremenljivke formule po meri
Formula po meri se izračuna enkrat za vsakega igralca na koncu turnirja. Nekatere njene spremenljivke opisujejo turnir, zato imajo enako vrednost za vse v njem, nekatere pa opisujejo igralca, ki se točkuje. Vedeti, katera je katera, je večina spretnosti pri pisanju formule.
O turnirju, enako za vsakega igralca:
| p | število igralcev |
| n | število vstopov (vključno s ponovnimi vstopi) |
| b | vstopnina |
| z | nagradni sklad |
| m | število plačanih mest |
| t | format turnirja (1 standardni, 2 split, 3 shootout, 4 mystery bounty) |
O igralcu, ki se točkuje:
| f | končna uvrstitev |
| c | koliko so porabili (vstopnina plus njihovi rebuy-i in doplačilo) |
| k | izločitve, ki so jih opravili |
| r | rebuy-i, ki so jih vzeli |
| a | doplačila, ki so jih vzeli |
| x | naboji, ki so jih uporabili (njihove skupne vstopnine) |
| w | dobitki (znesek, ki so ga dobili) |
| d | krogi od finala v shootoutu (1 je finalni krog) |
Na primer, ta formula da vsakemu igralcu točko za vsakega nasprotnika, ki ga je premagal, bonus 2 točki za vsako izločitev in odšteje točko za vsak rebuy:
(p - f + 1) + (2 * k) - r
Napredno: pisanje lastne formule
Poleg aritmetike sta dva zapisa, ki opravljata večino dela v pravih ligaških formulah: pogoji in tabele točk. Uporabite lahko tudi sqrt, log, log10, exp, pow, round, floor, fix, abs, min in max ter ^ za potence.
Pogoji z ? :
Pogoj se prebere kot test ? vrednost, če je res : vrednost sicer.
f == 1 ? 50 : 10
To podeli 50 točk zmagovalcu in 10 vsem ostalim. Upoštevajte dvojni == za "je enako". Na voljo imate tudi <, <=, >, >= in !=, teste pa lahko združujete z and in or:
p >= 20 and f <= 3 ? 10 : 0
Pogoji se verižijo, kar je način, kako klubi napišejo različno pravilo za vsako uvrstitev. Vsak : preda naslednjemu testu:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tabele točk z [ ... ][f]
Namesto veriženja pogojev lahko točke navedete po vrstnem redu in izberete tisto za igralčevo uvrstitev:
[100, 85, 70][f]
Seznam se prebere po položaju: prvo mesto dobi 100, drugo 85, tretje 70. Položaji se začnejo pri 1, zato se f ujema s seznamom brez kakršne koli prilagoditve.
Tabelo točk vedno zaščitite s pogojem. Če igralec konča pod koncem seznama, formula ne uspe in ta igralec ne dobi nobenih točk. Seznam s tremi vnosi potrebuje
f < 4:
f < 4 ? [100, 85, 70][f] : 0Uporabite vrednost
:za nastavitev minimuma za vse ostale, na primer: 5, da dodelite pet točk za udeležbo.
Pazite na oklepaje
Množenje in seštevanje se uporabita pred primerjavo, kar tiho spremeni, kaj formula testira. Zapisano brez oklepajev:
30 * k + f < p / 3 + 1 ? 100 : 1
test postane "je 30 * k + f manjši od p / 3 + 1", ne "je f v zgornji tretjini". Liga lahko tako poganja celo sezono po napačnem pravilu. Ovijte pogoj ali celotni pogojni izraz v oklepaje:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formule, ki jih klubi dejansko uporabljajo
To so resnični vzorci iz lig, ki tečejo na Blind Valet, poenostavljeni le tam, kjer je bil klubski seznam mest zelo dolg.
| Kaj je klub želel | Formula |
|---|---|
| Točka za udeležbo, nič drugega | 1 |
| Lestvica le zmag | f == 1 ? 1 : 0 |
| Izločitve plus točka za zmago | k + (f == 1 ? 1 : 0) |
| Ena točka na premaganega nasprotnika z bonusom za stopničke | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Fiksna tabela, a vsi ostali še vedno dobijo točke | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Višji vložki vredni več, vsak rebuy stane točke | log(p + 1) / f * 10 + b - c / 4 |
| Točke prilagojene velikosti nagradnega sklada | sqrt(p + 1) / f * z / 500 |
| Le zgornja tretjina dobi točke, prilagojeno velikosti polja | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Vsako mesto je odstotek osnove, ki raste s poljem | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Primer vložkov prikazuje, zakaj sta dve skupini pomembni. Uporablja b in c, ki sta videti podobna, a ležita na nasprotnih straneh: dodajanje b dvigne vsak rezultat v turnirju z višjo vstopnino, ker vstopnina pripada turnirju, medtem ko odštevanje c odvzame delež tega, kar je vsak igralec posamezno porabil. Igralec, ki dvakrat rebuy-a, konča z manj točkami kot igralec, ki je dosegel isto uvrstitev z enim nabojem.
Preverjanje formule
Nastavitve lige predogledajo točke za vsako končno uvrstitev med tipkanjem, tako da lahko vidite obliko izplačila pred shranjevanjem. Če je predogled prazen, formula še ni veljavna: preverite manjkajoč oklepaj ali tabelo točk, iz katere lahko nizka uvrstitev steče.