【问题标题】:How to organize bets/prizes in a game with ranked results?如何在排名结果的游戏中组织投注/奖品?
【发布时间】:2020-05-01 20:27:20
【问题描述】:

问题

我正在制作一款多人游戏,玩家最终会根据他们的最终得分进行投注。我想根据以下情况计算出他们最终赢/输了多少钱:

  1. 他们的排名/分数;
  2. 他们的赌注大小。

示例

有一场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 名玩家的危急情况下,排名第二的玩家的全部赌注都归于获胜者。

为什么我要考虑下注的大小是为了不让下注 1 个硬币的玩家与下注 100 个硬币的另一个玩家对抗,因此在他们的潜在奖金为 100 的情况下只冒 1 个硬币的风险。这是不公平的下注 100 个硬币的玩家,因为他们的风险是他们所能获得的风险的 100 倍。我害怕潜在的滥用。

另一个理论上可能的可疑情况是玩家最终得到相同的分数。如果没有或相等的赌注,我们可以认为这是平局,但如果玩家做出不同的赌注怎么办?他们处于不平等的条件下,承担着不平等的风险,但取得了相同的结果,所以这不是他们中的一个人的胜利吗?

可能的解决方案

我正在考虑一个选项,让“上半部分”玩家成为赢家,“下半部分”输家,并让可能的中间玩家成为抽屉。然后,在上面的游戏中,Lenny 是一个抽屉,拿回了他的 30 赌注,不输也不赢。 Martha 和 Richard 输掉了他们的赌注,这 120 个赌注由获胜者 Ben 和 Jim 瓜分。但是也有一些问题:

  • Ben 排名第一,这给了他更多的理由,但 Jim 的赌注高出 2.5 倍,而他的得分仅比 Jim 低约 10%。谁应该得到更多,本还是吉姆?
  • 如果 Richard 和 Martha 都只下 1 个硬币,甚至 0 个,怎么办?当 Ben 和 Jim 的风险远高于潜在收益时,这会使 Ben 和 Jim 陷入不公平的境地。

我试图研究其他游戏中的投注系统,例如扑克、轮盘赌、赛马,但没有任何东西与这种情况完全相符。

在最坏的情况下,我可能会考虑奖励“房子”中的玩家,而不是其他玩家失去的东西。但我想把它作为玩家之间的游戏,而不是与房子对抗。

P.S. 抱歉,如果问题不完全适合 Stack Overflow。在我看来,这实际上是一个关于处理特定数据的算法/公式的编程问题。如果我在哪里得到好的建议,我会考虑在其他地方询问。

【问题讨论】:

    标签: algorithm math multiplayer gambling


    【解决方案1】:

    将最高赌注与最低赌注匹配。重复。

    在平局的情况下,将他们的赌注集中起来,计算出小组赢或输了多少,然后按比例分配他们给的金额。 (如果结果不均匀,随机选择谁获得/失去最后一分。)

    所以在你的例子中我们会这样做:

    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
    

    BenRichard 匹配。 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
    

    BenMartha 匹配。 Ben 赢得 50 名并退出。

    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    

    JimMartha 匹配。 Jim 赢得 20 和 Martha 退出。

    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    

    JimLenny 匹配。 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
    

    现在奖金通常会流向上半部分。没有人会得到比他们付出的更多或失去更多。

    【讨论】:

    • 我真的很喜欢它,如果没有其他东西出现,我可能会使用它。我能看到的唯一缺点是收益仅限于双重投注。有没有办法调整它的奖励程度?
    • @Helyrk 当你匹配顶部和底部时,每个获胜点匹配多少个失败点?如果您将其设为 2-1,那么人们可以将赌注增加三倍(并且输掉更多)。您甚至可以使比率因游戏而异。
    【解决方案2】:

    以下是“上半场”赢家和“下半场”输家的变体(“中场”为平局)。输家下注的钱就是底池。

    以最小的获胜赌注乘以获胜者的数量。如果该数量多于罐中的数量,则该数量是罐中的任何数量。现在按照他们的得分比例在获胜者中分配这个数额。删除下注最小的玩家。重复。

    如果底池里还有钱,这笔钱将按输家的赌注比例分配给输家。

    例子:

    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
    

    【讨论】:

    • 谢谢。这是一个很好的解决方案,但我不能使用它,因为它没有考虑下注的大小。当玩家基本上可以互相抢劫时,这可能会造成非常不公平的情况。
    • @Helyrk 它非常肯定地考虑了赌注的大小。例如,卢只下注10,所以她的支付只有18。请举例说明玩家互相抢劫的情况。
    • 对于另一个答案,如果 Jim 得分最高,他会拿走所有人的钱(只有一个获胜者)。另一方面,如果吉姆的分数最低,他会付钱给所有人(只有一个输家)。
    • 我再次查看了您的答案,并认为我对抢劫的情况有误。请接受我的道歉。但是,我不介意一个赢家或一个输家的情况,因为更高的赌注意味着更高的风险,我希望得到更多的回报。我将使用另一个答案,因为它更符合我对游戏的期望,但我发现你的答案很有用,其他有类似问题的人可能想要实现它。
    猜你喜欢
    • 2021-12-05
    • 2015-04-22
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多