我正在为一款足球预测游戏设计评分系统,希望能够离开离散步骤的点数系统(例如,0,5,10,25或更简单的0/1/3想法)。

当前想法:

精确预测比分:25点
奖励正确的结果(胜/平/负)
*根据预测和实际分数之间的距离减少一笔罚款

问题:我的思路还存在聚集问题和一些不切实际的情况(类似的预测分数相同,或“错误结果”过于悲观)。

我正在追求一种平滑的连续评分规则,平衡结果和分数距离,同时将使用者的游戏体验放在心上。

例如(实际4比1:)

|预测|分数|

|:-|:-|

|4比1|25|

|3比1|17|

|3比0|16|

|3比2|14|

|2比0|13|

|1比0|10|

|2比2|1|

我在 SQL 中实施了计算,这是核心逻辑。

CASE

-- 1. EXACT

WHEN home_score = home_guess AND away_score = away_guess THEN 25

-- 2. CORRECT OUTCOME

WHEN sign(home_score - away_score) = sign(home_guess - away_guess) THEN

GREATEST(10,

20

- (abs(home_score - home_guess) + abs(away_score - away_guess)) * 2

- abs((home_score - away_score) - (home_guess - away_guess))

)

-- 其他情况

ELSE

GREATEST(0, 4 - (abs(home_score - home_guess) + abs(away_score - away_guess)))

END