是否有任何软件(或基于Web的服务)可让您跟踪俱乐部级别的本地Elo评分?
这些等级与官方的Elo等级没有任何关系,只是俱乐部内球员范围内的Elo等级(即,各种社交锦标赛中的游戏都会计算该等级)。
是否有任何软件(或基于Web的服务)可让您跟踪俱乐部级别的本地Elo评分?
这些等级与官方的Elo等级没有任何关系,只是俱乐部内球员范围内的Elo等级(即,各种社交锦标赛中的游戏都会计算该等级)。
Answers:
即使它不可用,类似的东西也很难实现。这是一个极其愚蠢和简单的评分系统的示例,仅是为了给您一个想法。但是我不认为使用实际的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
似乎rankade是我们针对体育,游戏等的排名系统,可以满足您的需求。
它是免费使用的,旨在管理从小到大的一组玩家的排名(以及统计数据,包括对战统计数据,等等)。
Rankade不使用Elo,但是它的算法(称为ree算法)虽然更复杂(这是最著名的评分系统之间的比较,包括Elo,Glicko和TrueSkill),但是如果您进行一对一比赛,则其类似于Elo只要。
可在https://www.add-ins.com/free-products/chess-ranking-assistant.htm上找到的免费Excel插件国际象棋排名助手使用glicko系统,并且通过菜单驱动以易于使用。专为国际象棋俱乐部而设计
如果有人还在寻找这样的东西,我会在这里构建一个相当简单的东西:https : //github.com/richardadalton/EloRate
目前,您必须自己托管它,但将来我可能会提供托管服务。
-Rd
我最近建立了https://sortmatch.ca来执行这种操作。它使用Glicko2代替Elo,但是效果大致相当。
允许您创建自定义elo等级并控制某些参数。通常由视频游戏社区使用,但可以用来创建排名和管理任何东西的elo等级。很好用。保留完整的比赛历史记录,并允许您单独查看球员的历史记录,WL以及他们每场比赛的得分变化情况。我将其用于每周运行的一次粉碎比赛:http : //elorankings.com/rankings.aspx?id=1
在爱尔兰国际象棋联盟有其评级的Web应用程序完全释放的开放源码和它的可用GitHub上:https://github.com/ninkibah/icu_ratings_app