Турнир

Как работят формулите за точки в лигата?

Всяка лига присъжда точки на своите играчи за всеки турнир, в който участват, използвайки системата за точкуване, която избирате, когато създавате или редактирате лигата:

  • Логаритмична
  • Корен квадратен
  • Линейна
  • Фиксирана (въвеждате точните точки за всяко място)
  • Персонализирана (напишете собствена формула)

Променливи в персонализираната формула

Персонализираната формула се изчислява веднъж за всеки играч в края на турнира. Някои от нейните променливи описват турнира, така че имат една и съща стойност за всички в него, а други описват конкретния играч, който се точкува. Познаването коя променлива е коя е основното умение при писането на формула.

За турнира, едни и същи за всеки играч:

pброй играчи
nброй записвания (включително повторни записвания)
bбай-инът
zнаграден фонд
mброй платени места
tформат на турнира (1 стандартен, 2 сплит, 3 шутаут, 4 мистъри баунти)

За конкретния играч, който се точкува:

fкрайна позиция
cколко са похарчили (бай-ин плюс собствените им рибаи и адон)
kнаправени нокаути
rвзети рибаи
aвзети адони
xизползвани bullets (общият им брой бай-ини)
wпечалби (сумата, която са спечелили)
dкръгове от финала в шутаут (1 е финалният кръг)

Например тази формула дава на всеки играч по точка за всеки противник, когото е надживял, бонус от 2 точки за всеки нокаут и изважда точка за всеки рибай:

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

Разширено: писане на собствена формула

Освен аритметиката, два вида нотация вършат по-голямата част от работата в реалните лигови формули: условия и таблици с точки. Можете също да използвате sqrt, log, log10, exp, pow, round, floor, fix, abs, min и max, както и ^ за степени.

Условия с ? :

Условието се чете като тест ? стойност ако е вярно : стойност иначе.

f == 1 ? 50 : 10

Това присъжда 50 точки на победителя и 10 на всички останали. Забележете двойното == за "е равно на". Имате също <, <=, >, >= и !=, и можете да обединявате тестове с and и or:

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

Условията се верижат, което е начинът, по който клубовете пишат различно правило за всяка позиция. Всяко : предава контрола на следващия тест:

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

Таблици с точки с [ ... ][f]

Вместо да верижите условия, можете да изброите точките по ред и да изберете тази за крайната позиция на играча:

[100, 85, 70][f]

Списъкът се чете по позиция: първото място получава 100, второто 85, третото 70. Позициите започват от 1, така че f се подравнява със списъка без корекция.

Винаги защитавайте таблица с точки с условие. Ако играч завърши под края на списъка, формулата се проваля и този играч не получава нищо. Списък с три записа се нуждае от f < 4:

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

Използвайте стойността след :, за да зададете минимум за всички останали, например : 5, за да дадете пет точки за явяване.

Внимавайте със скобите

Умножението и събирането се прилагат преди сравнението, което тихо променя какво тества формулата. Написано без скоби:

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

тестът става "дали 30 * k + f е по-малко от p / 3 + 1", а не "дали f е в топ третата". Лига може да премине цял сезон с грешно правило по този начин. Обгърнете условието или цялото условно изражение в скоби:

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

Формули, които клубовете наистина използват

Това са реални модели от лиги, които работят на Blind Valet, опростени само там, където списъкът с места на клуба беше много дълъг.

Какво искаше клубътФормула
Точка за явяване, нищо друго1
Класиране само на победиf == 1 ? 1 : 0
Нокаути, плюс точка за победатаk + (f == 1 ? 1 : 0)
По една точка за всеки надживян противник, с бонус за подиумp - f + 1 + (f < 4 ? [4, 2, 1][f] : 0)
Фиксирана таблица, но всички останали все пак получават точкиf < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100
По-високи залози си заслужават повече, всеки рибай струва точкиlog(p + 1) / f * 10 + b - c / 4
Точки, мащабирани според размера на наградния фондsqrt(p + 1) / f * z / 500
Само топ третата получава точки, мащабирано по размер на полето30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1)
Всяко място е процент от база, която расте с полетоf == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74)

Примерът със залозите показва защо двете групи са важни. Той използва b и c, които изглеждат подобни, но са от противоположни страни: добавянето на b повишава всеки резултат в турнир с по-висок бай-ин, защото бай-инът принадлежи на турнира, докато изваждането на c връща обратно дял от това, което всеки играч индивидуално е похарчил. Играч, който направи два рибая, завършва с по-малко точки от играч, който е взел същото място с един bullet.

Проверка на формулата

Настройките на лигата визуализират точките за всяка финална позиция, докато пишете, така че можете да видите формата на изплащането, преди да запазите. Ако визуализацията е празна, формулата все още не е валидна: проверете за липсваща скоба или таблица с точки, от която ниска позиция може да излезе извън края.