クラブレベルのEloレーティング用のソフトウェアまたはWebサービスはありますか?


19

地元のクラブレベルのElo評価を追跡できるソフトウェア(またはWebベースのサービス)はありますか?

これらの格付けは公式のElo格付けとは関係がなく、クラブ内のプレーヤーの世界におけるElo格付けにすぎません(つまり、さまざまなソーシャルトーナメントのゲームが格付けを計算します)。


2
これはプロジェクトにとって興味深いアイデアです。
イブフリーマン

私は地元のクラブのために手でやった。プログラムにデータを入力して作業を行うのとほぼ同じくらい簡単です。
ヨバママ

回答:


10

利用できない場合でも、このようなことは自分で実装するのにそれほど難しくありません。アイデアを提供するためだけの、非常に愚かでシンプルな評価システムの例を次に示します。しかし、実際のEloフォーミュラの使用はそれほど難しいとは思いません。

編集:ここで指定されたElo式(フロアを含まない)を使用するように実装を編集します

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)

これは次のように機能します。

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

ここに私の元のpython実装があります:

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

これは次のように機能します。

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

エロはおそらくそれと同じくらい簡単だと思います。:)
イブフリーマン

いいね OPが実際のUSCF評価アルゴリズムなどでこれを変更したい場合、数学的な詳細はこのドキュメントのセクション2で利用できます:glicko.net/ratings/rating.system.pdf
ETD

2
感謝しますが、私は本当に好奇心got盛で、自分でElo式を実装しました:)
アカバル

チェスクラブのような小さな宇宙では、床がないことが最善だと思います。そうでなければ、非常に弱いプレーヤーがたくさんプレーすれば、すぐにインフレになります。
ペップ

地元のクラブの評価では、elo glickoのすべての複雑さは、実際のメリットをもたらすものではありません
ヨバママ

6

スポーツ、ゲームなどのランキングシステムであるrankadeがニーズに合っているようです。

無料で使用でき、小規模から大規模のプレイヤーグループのランキング(および対戦統計などの統計)を管理するように設計されています。

RankadeはEloを使用しませんが、そのアルゴリズム(reeアルゴリズムと呼ばれます)はより複雑ですが(ここではEloGlickoTrueSkillを含む最もよく知られている評価システムの比較)、1対1の試合をプレイする場合はEloに似ていますのみ。


2
非常にクールなwebapp!
アンドラス

1
私はそれを試しましたが、私のニーズに合っているようです。シンプルでクリーン、試合開始後にプレーヤーを追加できます。ユーザーにカスタムCSSを許可することをお勧めします。ユーザーがCSSを貼り付けるためのテキストエリア(または
コンテンツ編集

4

私はダウンロードして、あなたが求めているものを提供しているように見えるELORaterと呼ばれるWindows用の軽量のフリーウェアアイテムをいじりました。クラブ用の「グループ」を作成し、グループにプレーヤーを追加することができます。それに、初期評価を付けます。その後、プレイするゲームの結果を入力するだけで、プログラムは更新されたプレーヤー評価のリストを維持します。


まだオンラインですか?
オーブリー




0

http://elorankings.com

カスタムeloランキングを作成し、特定のパラメーターを制御できます。主にビデオゲームコミュニティで使用されますが、ランキングを作成し、あらゆるもののeloレーティングを管理するために実行できます。とても使いやすい。完全な試合履歴を保持し、プレーヤーの履歴、WL、および試合ごとのスコアの変化を個別に確認できます。毎週実行するスマッシュトーナメントに使用しています:http : //elorankings.com/rankings.aspx?id=1


サイトはダウンしているか、もう
稼働して


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.