我正在与N名玩家进行一场简单的比赛。假设N = 5那么,玩家将是:
玩家1,玩家2,玩家3,玩家4,玩家5。
在游戏中,五分之一将成为赢家。这是获胜的逻辑。 每个玩家可以从跟随数组得到任何一个值,即数组中的随机值。
0,1,2,4,8,16
得分最高的玩家将成为赢家。
对于示例案例,我已经生成了0到大小的得分数组(6)之间的随机索引,并分配给每个玩家。
int[] data = {0,1,2,4,8,16};
int[] samples = new int[5];
Random random = new Random();
for(int j=0;j<5;j++){
int value = random.nextInt(6);
samples[j] = data[value];
}
然后,我得到了这样的结果:
0 16 2 8 1
如果得分最高,则得分最高的人将获胜。 在上述情况下,玩家2获胜,得分为16。
这是第一轮。
现在,我想从播放器2旁边分配随机生成的五个分数,即播放器3
以下是第二个分数样本。
4 1 2 0 16
我想要的是分配这些分数,如:
Player3 = 4
Player4 = 1
Player5 = 2
Player1 = 0
Player2 = 16
以上情况属于第二轮。怎么做到这一点? 如何迭代这样的数组,以便我可以找到10轮的获胜者。
任何建议,帮助表示赞赏。
答案 0 :(得分:1)
只要这只是练习而不是家庭作业,这是有效的:
var array = products.map((element, index) => {
element.field = registered.frifield;
if(settings.latefeeamt > 0 && settings.frilatefee === true) {
element.price += settings.latefeeamt;
}
return element
});
答案 1 :(得分:1)
也许这对一些人有帮助。从某个索引samples
开始迭代start
的所有元素:
for (int j = 0; j < samples.length; j++) {
int si = (start + j) % samples.length;
System.out.println("Loop count: " + j + " looking at samples[" + si + "]");
}