Lig puanı formülleri nasıl çalışır?
Her lig, oluşturduğunuzda veya düzenlediğinizde seçtiğiniz puanlama sistemini kullanarak oynadıkları her turnuva için oyuncularına puan verir:
- Logaritmik
- Karekök
- Doğrusal
- Sabit (her sıra için tam puanları siz girersiniz)
- Özel (kendi formülünüzü yazarsınız)
Özel formül değişkenleri
Özel bir formül, bir turnuvanın sonunda her oyuncu için bir kez hesaplanır. Bazı değişkenler turnuvayı tanımlar, bu nedenle turnuvadaki herkes için aynı değeri taşır ve bazıları puanlanan oyuncuyu tanımlar. Hangisinin hangisi olduğunu bilmek, formül yazma becerisinin büyük kısmını oluşturur.
Turnuva hakkında, her oyuncu için aynı:
| p | oyuncu sayısı |
| n | giriş sayısı (yeniden girişler dahil) |
| b | buy-in |
| z | ödül havuzu |
| m | ödüllü sıra sayısı |
| t | turnuva formatı (1 standart, 2 split, 3 shootout, 4 mystery bounty) |
Puanlanan oyuncu hakkında:
| f | bitiş sırası |
| c | harcadıkları miktar (buy-in artı kendi rebuy'ları ve addon'u) |
| k | yaptıkları knockout'lar |
| r | aldıkları rebuy'lar |
| a | aldıkları addon'lar |
| x | kullandıkları bullet'lar (toplam buy-in'leri) |
| w | kazançları (kazandıkları miktar) |
| d | bir shootout'ta finalden geriye kalan raundlar (1 final raundudur) |
Örneğin, bu formül her oyuncuya geride bıraktığı her rakip için bir puan, her knockout için 2 puanlık bonus verir ve her rebuy için bir puan çıkarır:
(p - f + 1) + (2 * k) - r
Gelişmiş: kendi formülünüzü yazma
Aritmetiğin ötesinde, iki gösterim gerçek lig formüllerindeki işin çoğunu yapar: koşullar ve puan tabloları. Ayrıca sqrt, log, log10, exp, pow, round, floor, fix, abs, min ve max ile üslü sayılar için ^ kullanabilirsiniz.
? : ile koşullar
Bir koşul test ? doğruysa değer : aksi takdirde değer olarak okunur.
f == 1 ? 50 : 10
Bu, kazanana 50 puan ve diğer herkese 10 puan verir. "Eşittir" için çift == kullanıldığına dikkat edin. Ayrıca <, <=, >, >= ve != kullanabilirsiniz ve testleri and ve or ile birleştirebilirsiniz:
p >= 20 and f <= 3 ? 10 : 0
Koşullar zincirlenir, kulüplerin her sıra için farklı bir kural yazmasının yolu budur. Her : bir sonraki teste aktarır:
f == 1 ? 30 : f == 2 ? 20 : f == 3 ? 15 : 5
[ ... ][f] ile puan tabloları
Koşulları zincirlemek yerine, puanları sırayla listeleyebilir ve oyuncunun bitirişi için olanı seçebilirsiniz:
[100, 85, 70][f]
Liste sıraya göre okunur: birinci yer 100, ikinci 85, üçüncü 70 alır. Sıralar 1'den başlar, bu nedenle f herhangi bir ayarlama olmadan listeyle hizalanır.
Her zaman bir puan tablosunu bir koşulla koruyun. Bir oyuncu listenin sonunun altında bitirirse, formül başarısız olur ve o oyuncu hiç puan alamaz. Üç girişli bir liste
f < 4gerektirir:
f < 4 ? [100, 85, 70][f] : 0Diğer herkes için bir taban belirlemek üzere
:değerini kullanın, örneğin gelene beş puan vermek için: 5.
Parantezlere dikkat edin
Çarpma ve toplama, karşılaştırmadan önce uygulanır, bu da formülün neyi test ettiğini sessizce değiştirir. Parantez olmadan yazılırsa:
30 * k + f < p / 3 + 1 ? 100 : 1
test "30 * k + f, p / 3 + 1'den küçük mü" olur, "f ilk üçte birde mi" değil. Bir lig bu şekilde tüm sezonu yanlış kuralla çalıştırabilir. Koşulu veya tüm koşulluyu parantez içine alın:
30 * k + (f < p / 3 + 1 ? 100 : 1)
Kulüplerin gerçekten kullandığı formüller
Bunlar Blind Valet'te çalışan liglerden alınan gerçek kalıplar, yalnızca bir kulübün sıra listesinin çok uzun olduğu durumlarda basitleştirilmiştir.
| Kulübün istediği | Formül |
|---|---|
| Geldiği için bir puan, başka bir şey yok | 1 |
| Yalnızca kazananların sıralama tablosu | f == 1 ? 1 : 0 |
| Knockout'lar artı kazanç için bir puan | k + (f == 1 ? 1 : 0) |
| Geride bırakılan rakip başına bir puan, podyum bonusuyla | p - f + 1 + (f < 4 ? [4, 2, 1][f] : 0) |
| Sabit bir tablo, ama diğer herkes hala puan alıyor | f < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100 |
| Daha yüksek bahisler daha değerli, her rebuy puana mal olur | log(p + 1) / f * 10 + b - c / 4 |
| Ödül havuzunun büyüklüğüne göre ölçeklenen puanlar | sqrt(p + 1) / f * z / 500 |
| Yalnızca ilk üçte bir puan alır, alan büyüklüğüne göre ölçeklenir | 30 * k + (f < p / 3 + 1 ? sqrt(p / 10) * [120, 90, 70, 60, 50, 45, 40, 30, 25, 20][f] : 1) |
| Her sıra, alanla büyüyen bir tabanın yüzdesi | f == 1 ? round(600 + p * 10) : f == 2 ? round((600 + p * 10) * 0.82) : round((600 + p * 10) * 0.74) |
Bahis örneği, iki grubun neden önemli olduğunu gösterir. b ve c kullanır, benzer görünürler ancak karşı taraflarda otururlar: b'yi eklemek daha yüksek buy-in'li bir turnuvada her skoru yükseltir, çünkü buy-in turnuvaya aittir, c'yi çıkarmak ise her oyuncunun bireysel olarak harcadığının bir kısmını geri alır. İki kez rebuy alan bir oyuncu, aynı sırayı tek bullet'la alan bir oyuncudan daha az puanla bitirir.
Formülünüzü kontrol etme
Lig ayarları, siz yazarken her bitiş sırası için puanları önizler, böylece kaydetmeden önce ödemenin şeklini görebilirsiniz. Önizleme boşsa, formül henüz geçerli değildir: eksik bir parantez veya düşük bir bitirişin sonundan çıkabileceği bir puan tablosu olup olmadığını kontrol edin.