Kako funkcionišu formule za bodovanje lige?
Svaka liga dodeljuje poene svojim igračima za svaki turnir koji igraju, koristeći sistem bodovanja koji izaberete kada kreirate ili menjate ligu:
- Logaritamski
- Kvadratni koren
- Linearni
- Fiksni (unosite tačne poene za svako mesto)
- Prilagođeni (pišete sopstvenu formulu)
Promenljive prilagođene formule
Prilagođena formula se izračunava jednom za svakog igrača na kraju turnira. Neke od njenih promenljivih opisuju turnir, tako da imaju istu vrednost za sve u njemu, a neke opisuju igrača koji se boduje. Znanje koja je koja je većina veštine u pisanju formule.
O turniru, isto za svakog igrača:
| p | broj igrača |
| n | broj ulazaka (uključujući ponovne ulazke) |
| b | buy-in |
| z | nagradni fond |
| m | broj plaćenih mesta |
| t | format turnira (1 standardni, 2 podeljeni, 3 shootout, 4 mystery bounty) |
O igraču koji se boduje:
| f | završna pozicija |
| c | šta su potrošili (buy-in plus njihovi sopstveni rebuys i addon) |
| k | knockouts koje su napravili |
| r | rebuys koje su uzeli |
| a | addons koje su uzeli |
| x | bullets koje su koristili (njihovi ukupni buy-ins) |
| w | dobitci (iznos koji su osvojili) |
| d | runde od finala u shootoutu (1 je finalna runda) |
Na primer, ova formula daje svakom igraču poen za svakog protivnika kojeg su nadživeli, bonus od 2 poena za svaki knockout, i oduzima poen za svaki rebuy:
(p - f + 1) + (2 * k) - r
Napredno: pisanje sopstvene formule
Pored aritmetike, dva dela notacije obavljaju većinu posla u pravim formulama liga: uslovi i tabele poena. Takođe možete koristiti sqrt, log, log10, exp, pow, round, floor, fix, abs, min i max, i ^ za stepene.
Uslovi sa ? :
Uslov se čita kao test ? vrednost ako je tačno : vrednost inače.
f == 1 ? 50 : 10
To dodeljuje 50 poena pobedniku i 10 svima ostalima. Primetite dvostruko == za "jednako je". Takođe imate <, <=, >, >= i !=, i možete spojiti testove sa and i or:
p >= 20 and f <= 3 ? 10 : 0
Uslovi se ulančavaju, što je način na koji klubovi pišu različito pravilo za svaku poziciju. Svaki : prenosi na sledeći test:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
Tabele poena sa [ ... ][f]
Umesto ulančavanja uslova, možete navesti poene po redosledu i odabrati onaj za završnu poziciju igrača:
[100, 85, 70][f]
Lista se čita po poziciji: prvo mesto dobija 100, drugo 85, treće 70. Pozicije počinju od 1, tako da se f poravnava sa listom bez ikakve prilagođavanja.
Uvek zaštitite tabelu poena uslovom. Ako igrač završi ispod kraja liste, formula ne uspeva i taj igrač ne dobija nikakve poene. Lista od tri unosa zahteva
f < 4:
f < 4 ? [100, 85, 70][f] : 0Koristite vrednost
:da postavite minimum za sve ostale, na primer: 5da date pet poena za prisustvo.
Pazite na zagrade
Množenje i sabiranje se primenjuju pre poređenja, što tiho menja šta formula testira. Napisano bez zagrada:
30 * k + f < p / 3 + 1 ? 100 : 1
test postaje "da li je 30 * k + f manje od p / 3 + 1", a ne "da li je f u gornjoj trećini". Liga može provesti celu sezonu po pogrešnom pravilu na ovaj način. Obmotajte uslov, ili ceo uslovni izraz, u zagrade:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Formule koje klubovi zaista koriste
Ovo su stvarni obrasci iz liga koje rade na Blind Valet-u, pojednostavljeni samo tamo gdje je lista mesta kluba bila veoma dugačka.
| Šta je klub želeo | Formula |
|---|---|
| Poen za prisustvo, ništa više | 1 |
| Rang lista samo pobeda | f == 1 ? 1 : 0 |
| Knockouts, plus poen za pobedu | k + (f == 1 ? 1 : 0) |
| Jedan poen po nadživljenom protivniku, sa bonusom za podijum | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Fiksna tabela, ali svi ostali i dalje dobijaju poene | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Veći ulozi vredi više, svaki rebuy košta poene | log(p + 1) / f * 10 + b - c / 4 |
| Poeni skalirani po veličini nagradnog fonda | sqrt(p + 1) / f * z / 500 |
| Samo gornja trećina dobija poene, skalirano po veličini polja | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Svako mesto procenat osnove koja raste sa poljem | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Primer uloga pokazuje zašto su dve grupe važne. Koristi b i c, koji izgledaju slično ali se nalaze na suprotnim stranama: dodavanje b podiže svaki rezultat u turniru sa većim buy-inom, jer buy-in pripada turniru, dok oduzimanje c oduzima deo onoga što je svaki igrač pojedinačno potrošio. Igrač koji napravi dva rebuysa završava sa manje poena od igrača koji je zauzeo isto mesto sa jednim bulletom.
Provera formule
Podešavanja lige prikazuju pregled poena za svaku završnu poziciju dok kucate, tako da možete videti oblik isplate pre nego što sačuvate. Ako je pregled prazan, formula još nije validna: proverite da li nedostaje zagrada, ili tabela poena sa koje nizak plasman može izaći van kraja.