Algorithm 如何在具有排名结果的游戏中组织赌注/奖品? 问题

Algorithm 如何在具有排名结果的游戏中组织赌注/奖品? 问题,algorithm,math,multiplayer,gambling,Algorithm,Math,Multiplayer,Gambling,我正在制作一个多人游戏,玩家通过他们的最终得分排名。我想根据以下数据计算出他们最终赢/输了多少钱: 他们的排名/得分 他们的赌注大小 例子 有一场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 思想 现在,我如何决定谁能拿到多少

我正在制作一个多人游戏,玩家通过他们的最终得分排名。我想根据以下数据计算出他们最终赢/输了多少钱:

  • 他们的排名/得分
  • 他们的赌注大小
  • 例子 有一场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至少应该拿回他们的赌注,这样他们就不会输

    我甚至不知道,在一个关键的情况下,两名玩家,排名第二的玩家的全部赌注都归赢家

    我之所以希望考虑赌注的大小,是为了不让一个下注1枚硬币的玩家与另一个下注100枚硬币的玩家玩游戏,从而只冒1枚硬币的风险,而他们的潜在奖金是100。这对下注100枚硬币的玩家是不公平的,因为他们冒的风险是他们所能获得的100倍。我担心可能被滥用

    理论上可能出现的另一个可疑情况是,球员最终的得分相同。如果没有或相等的赌注,我们可以认为是平局,但是如果球员做出了不同的赌注呢?他们处于不平等的条件下,有着不平等的风险,但取得了相同的结果,所以这对他们中的一个来说不是一场胜利吗

    可能的解决方案 我在考虑一个选项,让“上半部分”的球员成为赢家,“下半部分”的球员成为输家,而可能的中间部分球员成为抽屉。然后,在上面的游戏中,莱尼是一个抽屉,他赢回了30英镑的赌注,不输也不赢。玛莎和理查德输掉了他们的赌注,总共120人被赢的本和吉姆平分。但也存在一些问题:

    • Ben排名第1,这给了他更多的理由,但Jim的赌注高出2.5倍,而他的分数只比Jim低约10%。谁应该得到更多,本还是吉姆
    • 如果Richard和Martha都只下注1枚硬币,甚至0枚,会怎么样?这使得Ben和Jim都陷入了不公平的境地,因为他们的风险远远高于潜在收益
    我试图研究其他游戏中的投注系统,如扑克、轮盘赌、赛马,但没有什么能完全符合这种情况

    在最坏的情况下,我可能会考虑从“房子”授予玩家而不是其他玩家丢失的东西。但我想把它作为球员之间的一场比赛,而不是对众议院的比赛


    p.S.如果这个问题不完全适合堆栈溢出,那么很抱歉。在我看来,这实际上是一个关于处理特定数据的算法/公式的编程问题。我会考虑在其他地方问我是否有一个很好的建议。

    < P>与底部赌注匹配顶级赌注。重复一遍

    在平局的情况下,将他们的赌注集中起来,计算出小组赢或输的金额,然后按比例将其与他们付出的金额分开。(如果结果参差不齐,则随机选择谁获得/失去最后一分。)

    因此,在您的示例中,我们将这样做:

    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
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    1. Jim, score 1856, bet 200
    
    Ben
    Martha
    匹配
    Ben
    50胜,然后退出

    1. Ben, score 2115, bet 50
    2. Jim, score 1856, bet 250
    3. Lenny, score 1512, bet 30
    4. Martha, score 1220, bet 70
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    1. Jim, score 1856, bet 200
    
    Jim
    Martha
    匹配<代码>吉姆赢得20分,玛莎退出

    1. Ben, score 2115, bet 50
    2. Jim, score 1856, bet 250
    3. Lenny, score 1512, bet 30
    4. Martha, score 1220, bet 70
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    1. Jim, score 1856, bet 200
    
    Jim
    Lenny
    匹配<代码>吉姆赢得30分,蓝尼退出

    1. Ben, score 2115, bet 50
    2. Jim, score 1856, bet 250
    3. Lenny, score 1512, bet 30
    4. Martha, score 1220, bet 70
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    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
    

    现在赢的钱一般都归上半场。没有人会比他们付出的更多,也没有人会比付出的更多。

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

    在平局的情况下,将他们的赌注集中起来,计算出小组赢或输的金额,然后按比例将其与他们付出的金额分开。(如果结果参差不齐,则随机选择谁获得/失去最后一分。)

    因此,在您的示例中,我们将这样做:

    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
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    1. Jim, score 1856, bet 200
    
    Ben
    Martha
    匹配
    Ben
    50胜,然后退出

    1. Ben, score 2115, bet 50
    2. Jim, score 1856, bet 250
    3. Lenny, score 1512, bet 30
    4. Martha, score 1220, bet 70
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    1. Jim, score 1856, bet 200
    
    Jim
    Martha
    匹配<代码>吉姆赢得20分,玛莎退出

    1. Ben, score 2115, bet 50
    2. Jim, score 1856, bet 250
    3. Lenny, score 1512, bet 30
    4. Martha, score 1220, bet 70
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    1. Jim, score 1856, bet 200
    
    Jim
    Lenny
    匹配<代码>吉姆赢得30分,蓝尼退出

    1. Ben, score 2115, bet 50
    2. Jim, score 1856, bet 250
    3. Lenny, score 1512, bet 30
    4. Martha, score 1220, bet 70
    
    1. Jim, score 1856, bet 250
    2. Lenny, score 1512, bet 30
    3. Martha, score 1220, bet 20
    
    1. Jim, score 1856, bet 230
    2. Lenny, score 1512, bet 30
    
    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
    
    现在赢的钱一般都归上半场。没有人会比他们所能承受的更多。这里有一个关于“上半场”赢家和“下半场”输家的变化(以“中间”作为平局)。输家的赌注就是赌注

    以最小的中奖赌注,乘以中奖人数。如果这个数量超过罐子里的数量,那么这个数量就是罐子里的任何东西。现在,按照得奖者的得分比例将该金额分配给他们。移除赌注最小的玩家。重复一遍

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

    例如:

    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
    
    这里有一个关于“上半场”赢家和“下半场”输家的变体(以“中间”作为平局)。输家的赌注就是赌注

    以最小的中奖赌注,乘以中奖人数。如果这个数量超过罐子里的数量,那么这个数量就是罐子里的任何东西。现在,按照得奖者的得分比例将该金额分配给他们。移除赌注最小的玩家。重复一遍

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

    例如:

    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
    

    我真的很喜欢它,如果没有其他东西出现,我可能会使用它。我能看到的唯一缺点是收益仅限于双倍赌注。有没有可能调整奖励的方式?@Helyrk当你在顶部和底部比赛时,每个获胜点对应多少个失败者的分数?如果你将其设定为2:1的比例,那么人们可以将赌注增加三倍(a)