0

我正在编写一个应用程序,一群人必须互相标记。所以我有一个像这样的“用户”数组:

0: paul
1: sally
2: james
3: bananaman

第一项 Paul 由其他三个标记(共十个),然后第二项 Sally 由其他三个标记(索引 2、3、0),依此类推,创建一个像这样的“结果”数组:

0: paul, sally, 5
1: paul, james, 7
2: paul, bananaman, 9
3: sally, james, 4

随着新分数的添加,我正在跟踪当前的“scorer”和“being_scored”整数,如下所示:

scorer = 1, being_scored = 0
scorer = 2, being_scored = 0
scorer = 3, being_scored = 0
scorer = 0, being_scored = 1
scorer = 2, being_scored = 1

然而,小组可以在任何时候停止计分,并且可以加载不同的小组会话,这也是部分计分的。

我的问题是如何仅根据结果 [数组计数] 生成 'scorer' 和 'being_scored' 值。

大概是 [结果计数] 除以 [用户计数] - 1,得到的整数是 'being_scored',余数是 'scorer'。

但是经过漫长的一周后,我的大脑彻底炸了,这似乎不起作用。

非常感谢任何帮助

麦克风。

4

1 回答 1

0

忽略您添加的评论,即“结果”数组是多维的,并且只包含具有三个字段/属性的结构/对象:得分、得分者、得分;那么您肯定只需转到“结果”的最后一个元素(在 index 处[Results count]-1),选择得分和得分手,然后继续到您的序列中的下一个元素 - 在循环没有被中断的情况下,您可能已经有了逻辑(一些就像“如果最后一个记分器在being_scored之前[通过使用模算术将数组视为循环缓冲区],那么先进的being_scored和init scorer,否则提前记分器”)。

但这听起来很明显,但你确实说过你的大脑被炸了......

不忽略您添加的评论意味着您有一个二维分数数组,您正在以某种模式填写?如果这是某个数字类型的预分配数组,那么如果您使用无效分数(可能是负数?)对其进行初始化,您将按照您的模式扫描数组以查找第一个无效分数并从那里重新开始。如果它是一维数组的动态一维数组,那么count外层的 告诉你being_scored,count最后一个内层的 告诉你得分手......

但这听起来也很明显......

也许睡一觉?如果你仍然被卡住,那么重新提出这个问题?或者也许这个小脑袋熊完全没有抓住重点,其他人会为你解决你的问题。

[这更像是一个评论而不是一个答案,但是评论太长了,对不起。]

于 2012-02-11T00:59:47.387 回答