Czy istnieje oprogramowanie lub usługa internetowa do oceny Elo na poziomie klubu?

19

Czy jest jakieś oprogramowanie (lub usługa internetowa), które pozwala śledzić lokalne oceny Elo na poziomie klubu?

Oceny te nie miałyby żadnego związku z oficjalnymi ocenami Elo, byłyby to tylko oceny Elo we wszechświecie graczy w klubie (tj. Gry w różnych turniejach społecznych obliczałyby dla oceny).

Energia
źródło
2
To ciekawy pomysł na projekt.
Eve Freeman,
Zrobiłem to ręcznie dla naszego lokalnego klubu. Prawie tak proste, jak wprowadzanie danych do programu w celu wykonania pracy.
yobamamama

Odpowiedzi:

10

Nawet jeśli nie jest dostępny, coś takiego nie jest zbyt trudne do wdrożenia. Oto przykład z wyjątkowo głupim i prostym systemem oceny, który ma tylko dać ci pomysł. Ale nie sądzę, aby stosowanie rzeczywistej formuły Elo było o wiele trudniejsze.

EDYCJA: Edytuję swoją implementację, aby użyć formuły Elo (nie uwzględniając podłóg) podanej tutaj w tej formule

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)

Działa to w następujący sposób:

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

Oto moja oryginalna implementacja Pythona:

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

Działa to w następujący sposób:

>>> 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  
Akavall
źródło
Myślę, że Elo jest prawdopodobnie tak proste. :)
Eve Freeman,
Ładny. Jeśli OP chciałby to zmodyfikować, powiedzmy, algorytmem oceny rzeczywistej USCF, szczegóły matematyczne są dostępne w części 2 tego dokumentu: glicko.net/ratings/rating.system.pdf
ETD
2
Dzięki, ale dostałem naprawdę ciekawostki i sam wdrożyłem formułę Elo :).
Akavall,
W przypadku małego wszechświata, takiego jak klub szachowy, myślę, że najlepiej jest, aby nie było pięter, w przeciwnym razie szybko dostaniesz inflację, jeśli bardzo słabi gracze dużo zagrają.
Pep
dla ocen lokalnych klubów cała złożoność Elo Glicko, cokolwiek, po prostu nie doda żadnej realnej korzyści
yobamamama,
6

Wygląda na to, że ranking , nasz system rankingowy dla sportu, gier i innych, pasuje do twoich potrzeb.

Jest darmowy i przeznaczony do zarządzania rankingami (i statystykami , w tym statystykami pojedynków itp.) Dla małych i dużych grup graczy.

Rankade nie używa Elo , ale jego algorytm (zwany algorytmem ree ), choć bardziej złożony (oto porównanie między najbardziej znanym systemem oceniania, w tym Elo , Glicko i TrueSkill ), jest podobny do Elo, jeśli grasz w mecze 1 na 1 tylko.

Tomaso Neri
źródło
2
bardzo fajna aplikacja internetowa!
andras,
1
Próbowałem i wydaje się, że odpowiada moim potrzebom; Prosty, czysty, może dodawać graczy po rozpoczęciu meczu. Chciałbym zasugerować, aby umożliwić użytkownikowi niestandardowy CSS. Właśnie udostępniono obszar tekstowy (lub zadowalający div) dla użytkownika, aby wkleić swój CSS
Coisox
4

Właśnie pobrałem i bawiłem się lekkim darmowym elementem dla systemu Windows o nazwie ELORater, który wydaje się zapewniać to, czego szukasz. Możesz utworzyć „grupę” dla swojego klubu, a następnie dodać graczy do grupy wraz z dowolnymi początkowymi ocenami, jakie mają mieć. Następnie możesz po prostu wprowadzić wyniki wszystkich gier, w które grasz, a program utrzymuje dla ciebie zaktualizowaną listę ocen graczy.

ETD
źródło
czy nadal jest online?
Aubrey,
2

Jeśli ktoś nadal szuka czegoś takiego, zbudowałem tutaj dość prosty: https://github.com/richardadalton/EloRate

W tej chwili będziesz musiał go hostować, ale mogę zaoferować usługę hostowaną w przyszłości.

-R & D

Richard Dalton
źródło
1

Niedawno zbudowałem https://sortmatch.ca, aby tego dokonać. Używa Glicko2 zamiast Elo, ale efekt jest mniej więcej równoważny.

Brad Beattie
źródło
0

http://elorankings.com

Pozwala tworzyć niestandardowe rankingi elo i kontrolować określone parametry. Najczęściej używany przez społeczności graczy, ale można to zrobić w celu tworzenia rankingów i zarządzania rankingami elo dla czegokolwiek. Bardzo łatwy w użyciu. Przechowuje pełną historię meczów i pozwala indywidualnie zobaczyć historię zawodników, WL oraz sposób, w jaki ich wynik zmieniał się w meczu. Używam go do smashowego turnieju, który prowadzę co tydzień: http://elorankings.com/rankings.aspx?id=1

David Shears
źródło
Wygląda na to, że strona nie
działa