Kulüp düzeyinde Elo derecelendirmeleri için herhangi bir yazılım veya web hizmeti var mı?


19

Yerel, kulüp düzeyinde Elo puanlarını takip etmenizi sağlayan herhangi bir yazılım (veya web tabanlı hizmet) var mı?

Bu puanların resmi Elo puanlarıyla herhangi bir bağlantısı olmayacaktır, sadece bir kulübün oyuncuları evreninde bir Elo puanı olacaktır (yani çeşitli sosyal turnuvalardaki oyunlar puan için hesaplayacaktır).


2
Bu bir proje için ilginç bir fikir.
Eve Freeman

Yerel kulübümüz için elle yaptım. İşi yapmak için bir programa veri girmek kadar kolay.
yobamamama

Yanıtlar:


10

Mevcut olmasa bile, böyle bir şey kendinizi uygulamak için çok zor değildir. İşte size sadece bir fikir vermeyi amaçlayan son derece aptalca ve basit derecelendirme sistemine sahip bir örnek. Ama gerçek Elo formülünü kullanmanın daha zor olduğunu düşünmüyorum.

EDIT: Ben burada formül tarafından verilen Elo formül (katlar dahil değil) kullanmak için düzenleme

def get_exp_score_a(rating_a, rating_b):
    return 1.0 /(1 + 10**((rating_b - rating_a)/400.0))

def rating_adj(rating, exp_score, score, k=32):
    return rating + k * (score - exp_score)

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):

        exp_score_a = get_exp_score_a(self.rating, other.rating)

        if result == self.name:
            self.rating = rating_adj(self.rating, exp_score_a, 1)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0)
        elif result == other.name:
            self.rating = rating_adj(self.rating, exp_score_a, 0)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 1)
        elif result == 'Draw':
            self.rating = rating_adj(self.rating, exp_score_a, 0.5)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0.5)

Bu şu şekilde çalışır:

>>> bob = ChessPlayer('Bob', 1600)
>>> john = ChessPlayer('John', 1900)
>>> bob.rating
1600
>>> john.rating
1900
>>> bob.match(john, 'Bob')
>>> bob.rating
1627.1686541692377
>>> john.rating
1872.8313458307623
>>> mark = ChessPlayer('Mark', 2100)
>>> mark.match(bob, 'Draw')
>>> mark.rating
2085.974306956907
>>> bob.rating
1641.1943472123305

İşte benim orijinal python uygulaması:

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):
        if result == self.name:
            self.rating += 10
            other.rating -= 10
        elif result == other.name:
            self.rating += 10
            other.rating -= 10
        elif result == 'Draw':
            pass

Bu şu şekilde çalışır:

>>> bob = ChessPlayer('Bob', 1600)
>>> john = ChessPlayer('John', 1900)
>>> bob.match(john, 'Bob')
>>> bob.rating
1610
>>> john.rating
1890
>>> mark = ChessPlayer('Mark', 2100)
>>> mark.match(bob, 'Mark')
>>> mark.rating
2110
>>> bob.rating
1600
>>> mark.match(john, 'Draw')
>>> mark.rating
2110
>>> john.rating
1890  

Bence Elo muhtemelen bu kadar basit. :)
Eve Freeman

Güzel. OP bunu gerçek USCF derecelendirme algoritmasıyla değiştirmek isterse
ETD

2
Teşekkürler, ama gerçekten merakımı aldım ve Elo formülünü kendim uyguladım :).
Akavall

Satranç kulübü gibi küçük bir evren için bence hiç kat olmaması en iyisidir, aksi takdirde çok zayıf oyuncular çok oynarsa yakında enflasyon alırsınız.
Pep

yerel kulüp derecelendirme için ne olursa olsun herhangi bir gerçek fayda eklemek için gitmeyecek ne olursa olsun elo glicko tüm karmaşıklığı
yobamamama

7

O görünüyor rankade , spor, oyun için sıralama sistemi ve daha, ihtiyaçlarınıza uygun.

Kullanımı ücretsizdir ve küçük ve büyük oyuncu grupları için sıralamaları (ve eşleşme istatistikleri de dahil olmak üzere istatistikleri) yönetmek için tasarlanmıştır .

Rankade Elo kullanmaz , ancak algoritması ( ree algoritması denir ), daha karmaşık olmasına rağmen (burada Elo , Glicko ve TrueSkill dahil olmak üzere en bilinen derecelendirme arasında bir karşılaştırma ), bire bir maçlar oynarsanız Elo'ya benzer. bir tek.


2
çok güzel webapp!
andras

1
Denedim ve ihtiyaçlarıma uygun görünüyor; Basit, temiz, bir maç başladıktan sonra oyuncu ekleyebilirsiniz. Kullanıcının özel CSS'ye izin vermesini öneriyorum. Kullanıcının CSS'sini yapıştırması için bir textarea (veya içerikli div) kullanıma
sunuldu

4

Windows için ELORater adlı hafif bir ücretsiz ürünle indirdim ve oynadım . Kulübünüz için bir "grup" oluşturabilir ve daha sonra sahip olmak istediğiniz başlangıç ​​derecelendirmeleriyle birlikte gruba oyuncular ekleyebilirsiniz. Daha sonra sadece oynanan oyunların sonuçlarını girebilirsiniz ve program sizin için oyuncu derecelendirmelerinin güncellenmiş bir listesini tutar.


hala çevrimiçi mi?
Aubrey




0

http://elorankings.com

Özel elo sıralamaları oluşturmanıza ve belirli parametreleri denetlemenize olanak tanır. Çoğunlukla video oyun toplulukları tarafından kullanılır, ancak sıralama oluşturmak ve herhangi bir şey için elo derecelendirmelerini yönetmek için yapılabilir. Kullanımı çok kolay. Maç geçmişini tamamlar ve oyuncu geçmişini, WL'yi ve maç başına skorlarının nasıl değiştiğini tek tek görmenizi sağlar. Her hafta koştuğum bir şut turnuvası için kullanıyorum: http://elorankings.com/rankings.aspx?id=1


Site artık çalışmıyor veya artık canlı değil gibi görünüyor
andrewb


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.