Turnuva

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ı:

poyuncu sayısı
ngiriş sayısı (yeniden girişler dahil)
bbuy-in
zödül havuzu
mödüllü sıra sayısı
tturnuva formatı (1 standart, 2 split, 3 shootout, 4 mystery bounty)

Puanlanan oyuncu hakkında:

fbitiş sırası
charcadıkları miktar (buy-in artı kendi rebuy'ları ve addon'u)
kyaptıkları knockout'lar
raldıkları rebuy'lar
aaldıkları addon'lar
xkullandıkları bullet'lar (toplam buy-in'leri)
wkazançları (kazandıkları miktar)
dbir 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 < 4 gerektirir:

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

Diğ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ğiFormül
Geldiği için bir puan, başka bir şey yok1
Yalnızca kazananların sıralama tablosuf == 1 ? 1 : 0
Knockout'lar artı kazanç için bir puank + (f == 1 ? 1 : 0)
Geride bırakılan rakip başına bir puan, podyum bonusuylap - f + 1 + (f < 4 ? [4, 2, 1][f] : 0)
Sabit bir tablo, ama diğer herkes hala puan alıyorf < 10 ? [1500, 1200, 900, 700, 600, 500, 400, 300, 200][f] : 100
Daha yüksek bahisler daha değerli, her rebuy puana mal olurlog(p + 1) / f * 10 + b - c / 4
Ödül havuzunun büyüklüğüne göre ölçeklenen puanlarsqrt(p + 1) / f * z / 500
Yalnızca ilk üçte bir puan alır, alan büyüklüğüne göre ölçeklenir30 * 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üzdesif == 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.