0

私は、人々のグループがお互いにマークしなければならないアプリを書いています。したがって、次のような「ユーザー」配列があります。

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

最初のアイテム Paul は他の 3 つによって (10 のうち) マークされ、次に 2 番目のアイテム Sally は他の 3 つ (インデックス 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' になります。

しかし、私の脳は長い 1 週間で完全に焼き尽くされており、これが機能していないようです。

どんな助けでも大歓迎です

マイク。

4

1 に答える 1

0

「結果」配列は多次元であり、3 つのフィールド/プロパティを持つ構造体/オブジェクトが含まれているだけであるという追加のコメントを無視します: スコアリング、スコアラー、スコア。次に、「結果」の最後の要素( index [Results count]-1)に移動し、スコアリングされたスコアラーを選択して、シーケンスの次の要素に移動します-ループが中断されなかった場合(何か「最後のスコアラーが being_scored の前にある場合 [モジュロ演算を使用して配列を循環バッファーとして扱う] 次に、 being_scored を進め、スコアラーを初期化するか、それ以外の場合はスコアラーを進めます」)。

でも、それはかなり明白に聞こえますが、あなたは脳が揚げられたと言いました...

追加されたコメントを無視しないということは、何らかのパターンで埋めているスコアの 2 次元配列があることを意味しますか? これが何らかの数値型の事前に割り当てられた配列である場合、無効なスコア (負の可能性がありますか?) で初期化すると、最初の無効なスコアを探してパターンに従って配列をスキャンし、そこから再起動します。1 次元配列の動的な 1 次元配列の場合count、外側の は being_scored を示しcount、最後の内側の はスコアラーを示します...

しかし、それはかなり明白に聞こえます...

もしかして睡眠?それでも行き詰まっている場合は、質問を再構成しますか? あるいは、この小さな脳のクマは要点を完全に見逃して、他の誰かがあなたの質問を解決してくれるかもしれません。

[これは回答というよりはコメントですが、コメントするには長すぎます。申し訳ありません。]

于 2012-02-11T00:59:47.387 に答える