1

学校のテストのようないくつかの質問から正解(ABまたはC)を選択し、正解/不正解を数えてスコアを設定するという簡単なゲームを書こうとしています。NSArrayを使用してすべての質問と正解を保存する方法と、スコアを設定する方法がわかりません。私の唯一の解決策は、質問ごとに新しいビューを作成することですが、それは悪い解決策のように思えます。どんな助けでも本当にありがたいです。ありがとう

ViewController.h

@interface ViewController : UIViewController {

IBOutlet UILabel *numPregunta;
IBOutlet UILabel *pregunta;
IBOutlet UILabel *lblRespuesta1;
IBOutlet UILabel *lblRespuesta2;
IBOutlet UILabel *lblRespuesta3;
IBOutlet UILabel *lblResultado;

IBOutlet UIButton *respuesta1;
IBOutlet UIButton *respuesta2;
IBOutlet UIButton *respuesta3;

}

-(IBAction)btnRespuesta1:(id)sender;
-(IBAction)btnRespuesta2:(id)sender;
-(IBAction)btnRespuesta3:(id)sender;
-(IBAction)nextPregunta:(id)sender;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController



- (void)viewDidLoad
{

numPregunta.text = @"Question 1";
pregunta.text = @"Question 1 text";
lblRespuesta1.text = @"ANSWER 1";
lblRespuesta2.text = @"ANSWER 2";
lblRespuesta3.text = @"ANSWER 3 ";


[super viewDidLoad];


}

-(IBAction)btnRespuesta1:(id)sender

{
    if(pregunta.text == @"Question 1 text")
{

    lblRespuesta1.textColor = [UIColor redColor];
    lblResultado.text = @"False! ";
    lblResultado.textColor = [UIColor redColor];

}
}


-(IBAction)btnRespuesta2:(id)sender

{
    if(pregunta.text == @"Question 1 text")
    {

        lblRespuesta2.textColor = [UIColor redColor];
        lblResultado.text = @"False! ";
        lblResultado.textColor = [UIColor redColor];

    }

}

-(IBAction)btnRespuesta3:(id)sender

{
if(pregunta.text == @"Question 1 text")
{

    lblRespuesta3.textColor = [UIColor greenColor];
    lblResultado.text = @"Nice! ";
    lblResultado.textColor = [UIColor greenColor];



}

}    



- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end
4

2 に答える 2

0

すべての質問を含む questionArray という質問の配列を作成できます。2 番目に、すべてのオプションと正しい結果を含む辞書の配列を作成します。たとえば、resultArray にはキー Answer1、Answer2、Answer3 を持つ 0 インデックスの辞書が含まれ、結果と値には対応するものが含まれます。ここで、質問番号を格納するグローバル変数を 1 つ取ります。これは、表示されている質問を意味します。たとえば、questionsArray の質問インデックスにすぎません。そのインデックス、つまり次のように0に:

NSString *answer1 = [[resultArray objectAtIndex:0] valueForKey:@"Answer1"];
NSString *answer2 = [[resultArray objectAtIndex:0] valueForKey:@"Answer2"];
NSString *answer3 = [[resultArray objectAtIndex:0] valueForKey:@"Answer3"];

正解がanswer2だとすると、結果キーは2になります.1、2、3などの各ボタンにタグを付けます.次に、ボタンアクションで、ユーザーが正しいオプションを選択したかどうかを次のように確認できます。

if(btn.tag == [[resultArray objectAtIndex:0] valueForKey:@"result"])
{
   //correct answer is selected so increment score.
}
于 2012-06-18T12:44:54.870 に答える
0

選択する方法は長いプロセスです。最初に、各質問、オプション、および回答をすべて辞書に保存する必要があります。辞書は配列に追加されるため、簡単に使用できます。

[dictionary setObject:value forKey:@"question"];
[dictionary setObject:value forKey:@"option1"];
[dictionary setObject:value forKey:@"option2"];
[dictionary setObject:value forKey:@"option3"];
[dictionary setObject:value forKey:@"option4"];
[dictionary setObject:value forKey:@"answer"];

これを配列に追加します

[array addObject dictionary]

pregunta.text = [[array objectAtIndex:1]objectForKey:"question"];
lblRespuesta1.text = [[array objectAtIndex:1]objectForKey:"option1"];
lblRespuesta2.text = [[array objectAtIndex:1]objectForKey:"option2"];
lblRespuesta3.text = [[array objectAtIndex:1]objectForKey:"option3"];
于 2012-06-18T12:37:22.903 に答える