我正在开发Jackpot轮盘赌游戏。有一个主锅。用户加入每一轮。每一次下注都将进入主要底池。获胜者将获得奖金。
我正在寻找一种方法,让每个用户都有机会在每个时刻获胜。 (我可以每1秒更新一次这个机会,让他更新)。
我有一系列用户,每个用户都做了下注金额。
例如:
[ username: user1, betAmount: 600],
[ username: user2, betAmount: 400]
依旧......
我如何计算他们获胜的机会?
例如,在这个数组中,我想向user1展示他的机会是例如60%,user2 40%。
我不知道如何计算,他们的机会,并向他们展示。
我正在寻找可以计算机会的功能,具体取决于他们与其他用户相比的下注金额。最大机会为100%,并将在当时被用户分割。
答案 0 :(得分:4)
根据var bets = [
{ username: 'user1', betAmount: 100 },
{ username: 'user2', betAmount: 300 }
];
// get the total bets
var totalbets = bets.map(({betAmount}) => betAmount).reduce((a, b) => a + b);
// output (to console)
bets.forEach(({username, betAmount}) => {
console.log(`user ${username} odds ${betAmount/totalbets*100}`);
});
[100, 300]
如何在网页上显示它取决于页面,您没有提供任何HTML来使用。
对代码的一点解释:
delegate使用为原始数组中的每个元素调用提供的函数的结果创建一个新数组。在这种情况下,.map的结果是一个数字a = 100
的数组。
Array#map将给定函数应用于“累加器”,最终结果为单个值。在这种情况下,该函数被称为b = 300
和a + b = 400
一次,结果是返回值[3,2,1]
。
如果数组中有三个值,请说$window.location.href = '/index.html';
:
阅读每个链接文档以获得更好的解释,因为例如reduce也可以为累加器提供初始值,这意味着对于3个值的数组,回调函数被调用3次,而不是2。 / p>
答案 1 :(得分:1)
这取决于......人们在玩什么游戏?根据他们正在玩什么游戏,那将决定下注金额是否是他们获胜机会的一个因素。
尝试使用他们下注的任何值,而不是使用下注金额,然后将该值与可能的数值进行比较。
例如,如果游戏规则是从1-100中选择一个数字,并且您的下注数量越多,您可以选择的数字越多,那么您可以计算出获胜的机会number of values they chose / 100
。因此,如果我下注200并选择数字10和3,并且您下注100并选择数字61,我有2%的机会获胜并且您有1%的机会获胜。
但是,如果您想使用下注金额作为因素,请执行以下操作:
var bettotal = bet1 + bet2 + bet3 + bet4;
var user1chance = bet1 / bettotal * 100;
//etc etc...
然后如果你想将它显示给一个元素:
document.findElementById('myID').value = user1chance;
答案 2 :(得分:0)
这听起来像给定用户获胜的机会是下注金额除以下注金额(×100%)。因此,如果用户1下注100,用户2 300,则用户1有25%的机会获胜(100/400)