如何在具有排名结果的游戏中组织 bets/prizes?
How to organize bets/prizes in a game with ranked results?
问题
我正在制作一个多人游戏,其中玩家最终根据他们的最终得分排名。我想根据:
算出他们win/lose到底有多少钱
- 他们的 ranking/score;
- 他们下注的大小。
例子
有一场5人的比赛,结果是这样的:
1. Ben, score 2115, bet 100
2. Jim, score 1856, bet 250
3. Lenny, score 1512, bet 30
4. Martha, score 1220, bet 70
5. Richard, score 987, bet 50
想法
现在,我如何决定谁得到多少钱?对我来说唯一显而易见的是玩家 #1 至少应该收回他们的赌注,这样他们就不会输。
我什至不能说在 2 位玩家的关键情况下,排名第 2 位玩家的全部赌注都归赢家。
为什么我要考虑下注的大小是为了不让一个下注 1 个硬币的玩家与另一个下注 100 个硬币的玩家对战,因此只有 1 个硬币的风险,而他们的潜在奖金是 100 个。那是对下注 100 个硬币的玩家不公平,因为他们冒的风险是收益的 100 倍。我害怕潜在的虐待。
另一种理论上可能存在的可疑情况是玩家最终得分相同。如果没有或相等的赌注,我们可以认为这是平局,但如果玩家做出不同的赌注呢?条件不对等,风险不对等,却取得了同样的成绩,这不是他们中的一个胜利吗?
可能的解决方案
我在考虑一个选项,让 "top half" 的玩家获胜,"bottom half" 的失败,以及可能的中间玩家抽屉。然后,在上面的游戏中,Lenny 是一个抽屉,将他的赌注 30 取回,不输不赢。 Martha 和 Richard 输了赌注,总共 120 个赌注被赢家 Ben 和 Jim 平分。但是有一些问题:
- Ben 排名第一,因此有理由给他更多,但 Jim 的赌注高出 2.5 倍,而他的分数仅比 Jim 低约 10%。谁应该得到更多,Ben 还是 Jim?
- 如果 Richard 和 Martha 都只下注 1 个硬币,甚至 0 个?当本和吉姆的风险远高于他们的潜在收益时,这会使本和吉姆陷入不公平的境地。
我尝试研究其他游戏中的投注系统,例如扑克、轮盘赌、赛马,但没有一个完全符合这种情况。
在最坏的情况下,我可能会考虑奖励来自 "the house" 的玩家,而不是其他玩家失去的东西。但我想把它作为玩家之间的游戏,而不是对抗房子。
P.S. 抱歉,如果这个问题不完全适合 Stack Overflow。在我看来,这实际上是一个关于 algorithm/formula 处理特定数据的编程问题。如果我在哪里得到好的建议,我会考虑去其他地方询问。
匹配最高赌注和最低赌注。重复。
在平局的情况下,将他们的赌注集中在一起,计算出该组的输赢金额,然后按比例分配给他们的投注金额。 (如果出来参差不齐,随机选谁gains/loses最后一个点。)
所以在你的例子中我们会这样做:
1. Ben, score 2115, bet 100
2. Jim, score 1856, bet 250
3. Lenny, score 1512, bet 30
4. Martha, score 1220, bet 70
5. Richard, score 987, bet 50
将 Ben
与 Richard
匹配。 Ben
赢得 50,Richard
退赛。
1. Ben, score 2115, bet 50
2. Jim, score 1856, bet 250
3. Lenny, score 1512, bet 30
4. Martha, score 1220, bet 70
将 Ben
与 Martha
匹配。 Ben
赢得 50 场并退出。
1. Jim, score 1856, bet 250
2. Lenny, score 1512, bet 30
3. Martha, score 1220, bet 20
将 Jim
与 Martha
匹配。 Jim
赢了 20 场,Martha
退赛了。
1. Jim, score 1856, bet 230
2. Lenny, score 1512, bet 30
将 Jim
与 Lenny
匹配。 Jim
赢了 30 场,Lenny
退赛了。
1. Jim, score 1856, bet 200
我们完成了。最终的奖励划分为:
1. Ben, score 2115, has 200
2. Jim, score 1856, has 300
3. Lenny, score 1512, has 0
4. Martha, score 1220, has 0
5. Richard, score 987, has 0
而且现在奖金一般都上半区。没有人会得到或失去比他们付出的更多。
这是 "top half" 赢家和 "bottom half" 输家的变体("middle" 平局)。输的人下注的钱就是底池。
取最小的中奖赌注,乘以中奖人数。如果该金额大于底池中的金额,则金额为底池中的金额。现在根据他们的分数在获胜者之间分配该金额。移除下注最小的玩家。重复。
如果彩池中还有钱,那么这笔钱将按输家的赌注比例平分。
示例:
name: Ben Jim Len Mar Ric
bets: 100 250 30 70 50
score: 2115 1856 1512 1220 987
pot: 120
minimum winning bet times number of winners: 100 * 2 = 200
amount to split: 120 (since 120<200)
Ben gets 120 * 2115 / (2115+1856) = 64
Jim gets 120 * 1856 / (2115+1856) = 56
Cash after the game is finished:
name: Ben Jim Len Mar Ric
cash: 164 306 30 0 0
示例 2:
name: Ben Jim Lu Tim Mar Ric
bets: 100 250 10 120 200 80
score: 2115 1856 1512 1220 987 642
pot: 400
minimum winning bet times number of winners: 10 * 3 = 30
winners total score: 2115+1856+1512 = 5483
Ben gets 30 * 2115/5483 = 12
Jim gets 30 * 1856/5483 = 10
Lu gets 30 * 1512/5483 = 8
remove 10 from each winning bet, Lu is done
remaining pot: 370
minimum winning bet times number of winners: 90 * 2 = 180
winners total score = 2115+1856 = 3971
Ben gets 180 * 2115/3971 = 96
Jim gets 180 * 1856/3971 = 84
remove 90 from each winning bet, Ben is done
remaining pot: 190
minimum winning bet times number of winners: 150 * 1 = 150
Jim gets 150
remaining pot: 40
total bets by the losers: 400
Tim gets 40 * 120/400 = 12
Mar gets 40 * 200/400 = 20
Ric gets 40 * 80/400 = 8
Cash after the game is finished:
name: Ben Jim Lu Tim Mar Ric
cash: 208 494 18 12 20 8
问题
我正在制作一个多人游戏,其中玩家最终根据他们的最终得分排名。我想根据:
算出他们win/lose到底有多少钱- 他们的 ranking/score;
- 他们下注的大小。
例子
有一场5人的比赛,结果是这样的:
1. Ben, score 2115, bet 100
2. Jim, score 1856, bet 250
3. Lenny, score 1512, bet 30
4. Martha, score 1220, bet 70
5. Richard, score 987, bet 50
想法
现在,我如何决定谁得到多少钱?对我来说唯一显而易见的是玩家 #1 至少应该收回他们的赌注,这样他们就不会输。
我什至不能说在 2 位玩家的关键情况下,排名第 2 位玩家的全部赌注都归赢家。
为什么我要考虑下注的大小是为了不让一个下注 1 个硬币的玩家与另一个下注 100 个硬币的玩家对战,因此只有 1 个硬币的风险,而他们的潜在奖金是 100 个。那是对下注 100 个硬币的玩家不公平,因为他们冒的风险是收益的 100 倍。我害怕潜在的虐待。
另一种理论上可能存在的可疑情况是玩家最终得分相同。如果没有或相等的赌注,我们可以认为这是平局,但如果玩家做出不同的赌注呢?条件不对等,风险不对等,却取得了同样的成绩,这不是他们中的一个胜利吗?
可能的解决方案
我在考虑一个选项,让 "top half" 的玩家获胜,"bottom half" 的失败,以及可能的中间玩家抽屉。然后,在上面的游戏中,Lenny 是一个抽屉,将他的赌注 30 取回,不输不赢。 Martha 和 Richard 输了赌注,总共 120 个赌注被赢家 Ben 和 Jim 平分。但是有一些问题:
- Ben 排名第一,因此有理由给他更多,但 Jim 的赌注高出 2.5 倍,而他的分数仅比 Jim 低约 10%。谁应该得到更多,Ben 还是 Jim?
- 如果 Richard 和 Martha 都只下注 1 个硬币,甚至 0 个?当本和吉姆的风险远高于他们的潜在收益时,这会使本和吉姆陷入不公平的境地。
我尝试研究其他游戏中的投注系统,例如扑克、轮盘赌、赛马,但没有一个完全符合这种情况。
在最坏的情况下,我可能会考虑奖励来自 "the house" 的玩家,而不是其他玩家失去的东西。但我想把它作为玩家之间的游戏,而不是对抗房子。
P.S. 抱歉,如果这个问题不完全适合 Stack Overflow。在我看来,这实际上是一个关于 algorithm/formula 处理特定数据的编程问题。如果我在哪里得到好的建议,我会考虑去其他地方询问。
匹配最高赌注和最低赌注。重复。
在平局的情况下,将他们的赌注集中在一起,计算出该组的输赢金额,然后按比例分配给他们的投注金额。 (如果出来参差不齐,随机选谁gains/loses最后一个点。)
所以在你的例子中我们会这样做:
1. Ben, score 2115, bet 100
2. Jim, score 1856, bet 250
3. Lenny, score 1512, bet 30
4. Martha, score 1220, bet 70
5. Richard, score 987, bet 50
将 Ben
与 Richard
匹配。 Ben
赢得 50,Richard
退赛。
1. Ben, score 2115, bet 50
2. Jim, score 1856, bet 250
3. Lenny, score 1512, bet 30
4. Martha, score 1220, bet 70
将 Ben
与 Martha
匹配。 Ben
赢得 50 场并退出。
1. Jim, score 1856, bet 250
2. Lenny, score 1512, bet 30
3. Martha, score 1220, bet 20
将 Jim
与 Martha
匹配。 Jim
赢了 20 场,Martha
退赛了。
1. Jim, score 1856, bet 230
2. Lenny, score 1512, bet 30
将 Jim
与 Lenny
匹配。 Jim
赢了 30 场,Lenny
退赛了。
1. Jim, score 1856, bet 200
我们完成了。最终的奖励划分为:
1. Ben, score 2115, has 200
2. Jim, score 1856, has 300
3. Lenny, score 1512, has 0
4. Martha, score 1220, has 0
5. Richard, score 987, has 0
而且现在奖金一般都上半区。没有人会得到或失去比他们付出的更多。
这是 "top half" 赢家和 "bottom half" 输家的变体("middle" 平局)。输的人下注的钱就是底池。
取最小的中奖赌注,乘以中奖人数。如果该金额大于底池中的金额,则金额为底池中的金额。现在根据他们的分数在获胜者之间分配该金额。移除下注最小的玩家。重复。
如果彩池中还有钱,那么这笔钱将按输家的赌注比例平分。
示例:
name: Ben Jim Len Mar Ric
bets: 100 250 30 70 50
score: 2115 1856 1512 1220 987
pot: 120
minimum winning bet times number of winners: 100 * 2 = 200
amount to split: 120 (since 120<200)
Ben gets 120 * 2115 / (2115+1856) = 64
Jim gets 120 * 1856 / (2115+1856) = 56
Cash after the game is finished:
name: Ben Jim Len Mar Ric
cash: 164 306 30 0 0
示例 2:
name: Ben Jim Lu Tim Mar Ric
bets: 100 250 10 120 200 80
score: 2115 1856 1512 1220 987 642
pot: 400
minimum winning bet times number of winners: 10 * 3 = 30
winners total score: 2115+1856+1512 = 5483
Ben gets 30 * 2115/5483 = 12
Jim gets 30 * 1856/5483 = 10
Lu gets 30 * 1512/5483 = 8
remove 10 from each winning bet, Lu is done
remaining pot: 370
minimum winning bet times number of winners: 90 * 2 = 180
winners total score = 2115+1856 = 3971
Ben gets 180 * 2115/3971 = 96
Jim gets 180 * 1856/3971 = 84
remove 90 from each winning bet, Ben is done
remaining pot: 190
minimum winning bet times number of winners: 150 * 1 = 150
Jim gets 150
remaining pot: 40
total bets by the losers: 400
Tim gets 40 * 120/400 = 12
Mar gets 40 * 200/400 = 20
Ric gets 40 * 80/400 = 8
Cash after the game is finished:
name: Ben Jim Lu Tim Mar Ric
cash: 208 494 18 12 20 8