如何在游戏银行-玩家中向阵列玩家奖励金额(nodejs-javascript)

时间:2019-06-05 07:43:54

标签: javascript arrays node.js for-loop math

我有一个简单的游戏,玩家需要2个面来推动金额,最终游戏将有1个面获胜者。当然,获胜者将获得他们下注的金额(不是全部)<=我在这里遇到问题,游戏脚本(代码使用nodejs,javascript)

  • A面:[{id: 123, amount: "200", timebet: 11}, {id: 124, amount: "220", timebet: 12}, {id: 125, amount: "300", timebet: 13 }]
  • B面:[{id: 555, amount: "100", timebet: 22}, {id: 556, amount: "200", timebet: 23}, {id: 557, amount: "250", timebet: 24 }]

结束游戏:

  • 一场胜利,一场失败
  • 总下注:720
  • 总下注:550

奖励玩家A = 550(总下注),现金返还玩家A = 170

  • 结果奖励= [{id: 123, amount: "200"}, {id: 124, amount: "220"}, {id: 125, amount: "130" }]

  • 结果现金返还A = [{id: 125, amount: "170"}]

我想了很多,但是我找不到确定列表奖励和列表玩家现金返还的解决方案(按下注时间进行奖励,先下注的任何人都会得到奖励)。 谁可以帮我(对不起我的英语)

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题,但是我会尽力的。

如果您先将to组合到阵列:

const merged = [...sideA, ...sideB];

然后您可以根据时间顺序对其进行排序:

merged.sort((a,b) => a.timebet - b.timebet)

然后您就有一个列表,其中第一个元素是第一个下注,依此类推。

现在,您可以使用它做任何想做的事情:

merged.forEach(bet => PayCashOut(bet););

否则,请添加更多信息。