我有一个游戏,两队(红色和蓝色)互相对抗。
观众可以在两支球队之一下注,为bets
dict添加一个新的赌注,最终看起来像这样(在下注之后):
# Example of what 'bets' dict might look like mid-game
bets = {
# player_id: (team, amount),
12: (TEAM_RED, 500),
13: (TEAM_RED, 1200),
3: (TEAM_BLUE, 300),
7: (TEAM_BLUE, 1500)
}
一旦比赛结束,我希望根据他们下注的数量来划分每个玩家的总底池数。 所以在上面的场景中,如果蓝队要获胜,那么身份 3 的玩家只会获得身份 7 的玩家的五分之一,玩家 12 和 13 一无所获。
我不确定如何计算每位玩家应该获得多少钱,我是怎么做到的? 我认为我应该以某种方式得到两队之间的因素,并且增加球员的数量。打赌这个数额?
答案 0 :(得分:2)
这称为pari-mutuel payout。你只需按照他们的赌注比例在赢家中划分总金额(如果你是赛马场,那么在扣除10%以上之后: - (
首先获得总赌注:
total = sum(x[1] for x in bets.values());
然后是正确的投注总数:
wtotal = sum(x[1] for x in bets.values() if x[0] == TEAM_BLUE);
然后通过投注者:
for p in bets.keys():
if bets[p][0] == TEAM_BLUE:
payout = total * bets[p][1] / wtotal