지역 클럽 수준의 Elo 등급을 추적 할 수있는 소프트웨어 (또는 웹 기반 서비스)가 있습니까?
이 등급은 공식 Elo 등급과 관련이 없으며, 클럽 내 플레이어 세계에서 Elo 등급 일뿐입니다 (즉, 다양한 소셜 토너먼트의 게임은 등급을 계산합니다).
지역 클럽 수준의 Elo 등급을 추적 할 수있는 소프트웨어 (또는 웹 기반 서비스)가 있습니까?
이 등급은 공식 Elo 등급과 관련이 없으며, 클럽 내 플레이어 세계에서 Elo 등급 일뿐입니다 (즉, 다양한 소셜 토너먼트의 게임은 등급을 계산합니다).
답변:
사용할 수 없더라도 이와 같은 것을 구현하기가 어렵지 않습니다. 다음은 아이디어를 제공하기위한 매우 어리 석고 단순한 평가 시스템의 예입니다. 그러나 실제 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
내 원래 파이썬 구현은 다음과 같습니다.
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 사용하지 않는 일로 ,하지만 알고리즘 (라는 세개 더 복잡한이 (여기에 비록, 알고리즘)을 비교 포함한 대부분의 알려진 평가 시스템 사이의 일로 , Glicko 및 TrueSkill 당신이 일대일 일치를 재생하는 경우), 일로와 유사하다 뿐.
https://www.add-ins.com/free-products/chess-ranking-assistant.htm 에있는 무료 Excel 추가 기능 체스 순위 도우미 는 글리코 시스템을 사용하며 사용하기 쉬운 메뉴 방식입니다. 그것은 체스 클럽을 위해 설계되었습니다
아무도 여전히 이와 같은 것을 찾고 있다면, 나는 여기에 상당히 간단한 것을 만들었습니다 : https://github.com/richardadalton/EloRate
현재 직접 호스팅해야하지만 나중에 호스팅 서비스를 제공 할 수도 있습니다.
-Rd
나는 최근에 이런 종류의 일을하기 위해 https://sortmatch.ca 를 만들었 습니다. Elo 대신 Glicko2를 사용하지만 그 효과는 거의 같습니다.
사용자 정의 elo 순위를 만들고 특정 매개 변수를 제어 할 수 있습니다. 대부분 비디오 게임 커뮤니티에서 사용하지만 순위를 만들고 어떤 것에 대한 명예 등급을 관리하기 위해 수행 할 수 있습니다. 사용하기 매우 쉽습니다. 완전한 경기 기록을 유지하고 플레이어 기록, WL 및 경기 당 점수가 어떻게 변했는지 개별적으로 볼 수 있습니다. 매주 실행되는 스매시 토너먼트에 사용합니다 : http://elorankings.com/rankings.aspx?id=1
아일랜드어 체스 연합 (EU) 이 자사의 평가 웹 응용 프로그램을 완전히 오픈 소스로 발표를하고는 GitHub의에서 사용할 수 : https://github.com/ninkibah/icu_ratings_app