跳转到主要内容

游戏评分命令行工具和Python库

项目描述

Rayter

Rayter是一个生成玩家评分的程序,可以将多个游戏的评分结果存储在文件中。

它可以以命令行程序的形式使用,也可以作为Python库使用。

安装Rayter

pip install rayter

运行Rayter命令行工具

rayter games_file.txt

将Rayter作为库使用

Rayter可以用作Python库

>>> from rayter.rater import rate_single_game, SCORE_TYPE_HIGH_SCORE
>>> scores = [100, 74, 93]
>>> ratings = [1889, 1400, 1662]
>>> rating_changes = rate_single_game(scores, ratings, score_type=SCORE_TYPE_HIGH_SCORE)
>>> rating_changes
[-1.7346441947565552, -1.3906367041198422, 3.1252808988764116]

Rayter文件格式

Rayter命令行工具期望的rayter文件格式设计为可以通过文本编辑器手动轻松创建。以下是一个包含两场红心游戏的示例文件

score_type lowscore

game 2011-12-24 22:00
Jessica     95
Hugo        77
Jonatan     89
Jakob       103

game 2011-12-24 23:19
Hugo        107
Jonatan     96
Peter       65
Jakob       70

score_type lowscore 表示在这个游戏中,目标是尽可能得到低分。 score_type 的选项有 lowscorehighscore(默认,如果未指定 score_type)和 winner_takes_all(用于具有二元结果的游戏,例如国际象棋)。

空格字符的数量无关紧要。

时间戳的格式为年-月-日 时:分,其中小时是从 0 到 23。时间戳目前仅用作游戏的标识符。

Rayter 算法

每位玩家开始时的评分为 1000。所有评分的总和始终是联赛中玩家数量的 1000 倍。因此,如果一位玩家在一场比赛中获得 +60 分,而其他所有玩家都失去评分,那么他们评分变化的总和将是 -60。

如果一个评分为 1200 的玩家在与评分为 1000 的对手对战中,第一个玩家预计比第二个玩家多得 20% 的分数。这意味着如果第一个玩家在比赛中得到 240 分,而第二个玩家得到 200 分,那么两个玩家的评分变化将为 0,因为 240 除以 200 等于 1200 除以 1000。

示例

以下是一些虚构卡片游戏的结果

game 2011-12-24 23:19
Dahlia        27
John          15
Ahmed         14
Lei           10

game 2011-12-25 21:12
John          23
Dahlia        10
Lei           4
Ahmed         4

第一场比赛后,评分将如下所示

Name             Games   Rating    Delta
Dahlia               1     1032       32
John                 1      995       -5
Ahmed                1      992       -8
Lei                  1      980      -20

当第二场比赛进行时,评分变为以下这样

Name             Games   Rating    Delta
John                 2     1058       62
Dahlia               2     1029       -3
Ahmed                2      962      -30
Lei                  2      951      -30

有关详细信息,请参阅 rater.py 中的 rate_single_game() 函数。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。

源代码发行版

rayter-1.0.2.tar.gz (8.4 kB 查看散列)

上传时间 源代码

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页