0

10 の質問と回答を含むプロジェクトに取り組んでいます。touchesbegan、touchesmoved、および touchesended メソッドを使用しています。質問は 1 つのラベルに表示され、回答には画面に 10 個の異なるラベルがあります。ユーザーはそれらを一致させる必要があります。基本的にこれがゲームです。touchesended 方式では質問の結果と答えの場所を if 文で確認しているので、正しい場所にドラッグして正しい答えかどうかを理解してみてください。

だから、私はこれを尋ねる必要があります。ユーザーが正しい答えを出したときに、質問を変更する必要があります。NSMutableArray について質問しました。開始ごとに異なるランダムな順序で表示されます。同じラベルとテキストで配列の他のオブジェクトを表示するにはどうすればよいですか。(その後に別の数字があるため、テキストにする必要があります)コードの例を次に示します。

arr = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil];

srandom(time(NULL));
NSUInteger count = [arr count];
for (NSUInteger i = 0; i < count; ++i) {
    int nElements = count - i;
    int n = (random() % nElements) + i;
    [arr exchangeObjectAtIndex: i withObjectAtIndex:n];
}
Question.text = [NSString stringWithFormat:@"%ix1=", [[arr objectAtIndex:(random()%9)+1] intValue]];

質問が解決した後、配列の他の数字の1つを持ってくる必要があります。また、使用された番号は再び表示されるべきではありません。

誰でも助けることができますか?

4

1 に答える 1

0

それ以外の

Question.text = [NSString stringWithFormat:@"%ix1=", [[arr objectAtIndex:(random()%9)+1] intValue]];

最初にランダムなインデックス番号を取得する必要があります

int index = (random()%9) + 1;

それから

Question.text = [NSString stringWithFormat:@"%ix1=", [[arr objectAtIndex:index] intValue]];

次に、 を使用しindexて、対応するオブジェクトをNSMutableArray

[arr removeObjectAtIndex:index];
于 2012-07-18T16:25:22.353 に答える