1

まず、質問のタイトルについて申し訳ありませんが、この質問を一言で表すのは難しいです。

基本的に、単語内の文字が入力されているNS配列があります。その後、文字はランダムに表示され、ユーザーは単語を構成するために正しい文字を見つける必要があります。現在、私はこれに似たコードを使用しています:

int length = [arrayForCount count];
int randomindex = arc4random() % length;

これは私が望むことを達成しますが、呼び出しごとにランダムで同じintが生成され、たとえば2つの文字eが生成されますが、配列内の別の文字は生成されません。

私も試しました

randIdx = random() % [arrayForRound count];

誰かが配列からランダムに値を表示する方法を見つけるのを手伝ってもらえますが、いくつかの文字が欠落したり倍増したりすることはありませんか?

さらに情報が必要な場合はお知らせください。高度なサポートに感謝します。T

4

1 に答える 1

3

私のコメントで述べたように、元の配列のオブジェクトを可変配列にコピーし、次のようにシャッフルします。

NSUInteger count = [array count]; //array is the mutable copy of original array
for (NSUInteger i = 0; i < count; ++i) {
    NSInteger elements = count - i;
    NSInteger n = (arc4random() % elements) + i;
    [array exchangeObjectAtIndex:i withObjectAtIndex:n];
}

arrayこれで、オブジェクトに1つずつアクセスでき、一意になります。オブジェクトも見逃すことはありません。

于 2013-03-05T00:31:20.807 に答える