0

現在、私は最初のクイズアプリを作成しており、目標 c に到達しようとしています。今、私は自分のインターフェイスを設定してマイナス 1 のことをしています。アプリには 5 つの異なるカテゴリの質問があります。インターフェイスの設定方法 int に応じて、ボタンを非表示または非表示に設定しています。

たとえば、次の 1 つのカテゴリがあります。

- (IBAction)Category1:(id)sender{

    Category1.hidden = YES;
    Category2.hidden = YES;
    Category3.hidden = YES;
    Category4.hidden = YES;
    Category5.hidden = YES;

    Answer1.hidden = NO;
    Answer2.hidden = NO;
    Answer3.hidden = NO;
    Answer4.hidden = NO;

    Wrong1.hidden = YES;
    Wrong2.hidden = YES;
    Wrong3.hidden = YES;
    Wrong4.hidden = YES;

    SelectCategory.hidden = YES

    int Category1Question = rand() % 100;
    switch (Category1Question) {
        case 0:
            Question.text = [NSString stringWithFormat:@"Actual question in the quiz"]
            Right1.hidden = NO;
            Wrong2.hidden = NO;
            Wrong3.hidden = NO;
            Wrong4.hidden = NO;
            Answer1.text = [NSString stringWithFormat:@"Correct answer here"];
            Answer2.text = [NSString stringWithFormat:@"Wrong Answer"];
            Answer3.text = [NSString stringWithFormat:@"Wrong Answer"];
            Answer4.text = [NSString stringWithFormat:@"Wrong Answer"];
            break;
        case 1:
       //(etc. etc.)

        default:
            break;
    }

}

現在、カテゴリ選択ページに戻る方法を理解できると思いますが、カテゴリ内の次のランダムな質問に直接送信したいと考えています。間違った答えの部分を行う方法は知っていると思いますが、同じカテゴリ内で次の問題を表示するスイッチがあります。0 に設定して新しい int を作成し、質問に答えるたびに int に 1 を追加し、次に int = 質問の数であるかどうかを示す if ステートメントを追加すると、カテゴリ選択ページに戻ると思います。問題は、どこでこれを行うのか正確にわからないことです。このアプリは、厳密にはコーディングの仕組みを理解するためのものであり、これまでのクイズで得たものは多くのことを教えてくれましたが、どこから始めればよいか迷っています。

助けていただければ幸いです。適切な情報を提供できなかった場合は、お知らせください。

4

1 に答える 1

0
NSMutableArray *questionArray = [[NSMutableArray alloc] init];
for (int i = 1; i < 5; i++) {
    [questionArray addObject:[[NSNumber alloc] initWithInt:i]];    
}

for (int i = 0; i < 4; i++) {

int randomIndex = arc4random() % [questionArray count];
int Category1Question = [[questionArray objectAtIndex:randomIndex] intValue]; //cast to int from NSNumber
[questionArray removeObjectAtIndex:randomIndex];
    switch (Category1Question) {
        case 0:
            Question.text = [NSString stringWithFormat:@"Actual question in the quiz"]
            Right1.hidden = NO;
            Wrong2.hidden = NO;
            Wrong3.hidden = NO;
            Wrong4.hidden = NO;
            Answer1.text = [NSString stringWithFormat:@"Correct answer here"];
            Answer2.text = [NSString stringWithFormat:@"Wrong Answer"];
            Answer3.text = [NSString stringWithFormat:@"Wrong Answer"];
            Answer4.text = [NSString stringWithFormat:@"Wrong Answer"];
            break;
        case 1:
       //(etc. etc.)
} //end for 

少し説明... 最初の部分では、1 ~ 4 の数字を格納する NSMutableArray を作成します。各カテゴリには 4 つの質問しかないと想定しているため、1 ~ 4 の数字を使用しました。 4 回、または各カテゴリにある質問の数。ループに入ると、配列から乱数 (1 ~ 4) が選択され、削除されます。次に、この乱数が切り替えられ、特定の質問が行われます。この場合、番号が呼び出されますCategory1Question. for ループが 4 回繰り返されることに注意してください。これは、質問が行われるたびにスイッチが壊れ、反復が最初から再び開始されることを意味します。配列から新しい番号が選択され、削除されてから切り替えられます。今回は新たな質問です。このプロセスは、質問の数だけ繰り返されます。これにより、すべての質問が行われ、同じカテゴリに留まることが保証されます。- お役に立てれば。

于 2013-07-31T19:26:59.190 に答える