טורניר

כיצד פועלות נוסחאות נקודות הליגה?

כל ליגה מעניקה נקודות לשחקנים שלה עבור כל טורניר שהם משחקים, באמצעות מערכת הניקוד שאתה בוחר כשאתה יוצר או עורך את הליגה:

  • לוגריתמית
  • שורש ריבועי
  • לינארית
  • קבועה (אתה מזין את הנקודות המדויקות לכל מקום)
  • מותאמת אישית (כתוב נוסחה משלך)

משתנים בנוסחה מותאמת אישית

נוסחה מותאמת אישית מחושבת פעם אחת לכל שחקן בסוף הטורניר. חלק מהמשתנים שלה מתארים את הטורניר, כך שהם מחזיקים את אותו ערך לכולם בו, וחלק מתארים את השחקן שמקבל ניקוד. לדעת מי הוא מי זה רוב המיומנות בכתיבת נוסחה.

אודות הטורניר, זהה לכל שחקן:

pמספר שחקנים
nמספר הכניסות (כולל כניסות מחדש)
bהבאיי-אין
zקופת פרסים
mמספר מקומות מזכים
tפורמט הטורניר (1 רגיל, 2 ספליט, 3 שוטאאוט, 4 מיסטרי באונטי)

אודות השחקן שמקבל ניקוד:

fמיקום סיום
cמה הם הוציאו (באיי-אין בתוספת הריבייים והאדאונים שלהם)
kנוקאאוטים שעשו
rריבייים שלקחו
aאדאונים שלקחו
xבולטים שהשתמשו בהם (סך הבאיי-אינים שלהם)
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 לוקחת בחזרה חלק ממה שכל שחקן בנפרד הוציא. שחקן שלוקח ריביי פעמיים מסיים עם פחות נקודות משחקן שלקח את אותו מקום על בוליט אחד.

בדיקת הנוסחה שלך

הגדרות הליגה מציגות תצוגה מקדימה של הנקודות לכל מיקום סיום בזמן שאתה מקליד, כך שאתה יכול לראות את צורת התשלום לפני שאתה שומר. אם התצוגה המקדימה ריקה, הנוסחה עדיין לא תקפה: בדוק סוגר חסר, או טבלת נקודות שסיום נמוך יכול לרוץ מעבר לקצה שלה.