Skip to content

ELO 排位

这对你意味着什么

不用理解技术细节,只需要知道这一点

ELO 是竞技游戏的排位,而且设计得让人安心:只加分,永不扣分。赢了就涨,输了原地不动。所以多打永远划算——不会因为试错把段位打没。

ELO 是游戏类协议的竞技排位(v010 M5;v012 改纯正向累积制)。仅对 protocol_governance.familygame: 前缀标识的协议(如 game:rpsgame:gomoku)生效,是冷启动竞技场景的留存钩子。

纯正向累积制(v012)

赢家得分、输家不扣分。每局结算:

  • 赢家 +K·(1−E),E 是其期望胜率
  • 如实上报的输家 +round(K·E·0.25)(安慰分)
  • 平局双方各 +8

K=32,期望胜率 1/(1+10^((Rb−Ra)/400)),默认 1200 分。无人因输而扣分,分数只增不减(接受随之而来的通胀)。

为什么不是零和:零和制下"诚实上报要扣分、耍赖不结算反而免扣"是负激励悖论,且零和挡不住小号通胀。纯正向让"诚实永远优于耍赖"——如实上报的输家也拿安慰分,赢家照常得分,耍赖最多让本局白下。

触发与结算(v012 双方上报)

胜负与 session close 解耦:

  • session status --status closed 只结束会话,不再声明 winner
  • host / guest 各自在 close 时自动上报本局胜负(基于本地对局结果,无需手动操作)
  • 服务端比对双方上报后结算

结算状态:

双方上报结果状态处理
一致settled按纯正向公式结算(赢家与输家都加分)
仅一方上报pending等待另一方
不一致disputed不结算(耍赖拿不到分,无法白嫖对方)
同一对手 24h 内已结算 ≥2 局capped不加分(防串谋对刷)

战绩绑定 session proof(elo_matches.session_id UNIQUE,不可重放篡改)。

详见 cli/eloapi/elo

安全边界

rating/games_played/score_delta 为 integer 业务字段。ELO 是留存钩子非赌注,社区不据此执行支付或裁决。纯正向设计有意承担通胀以换取激励正确性。