Iphone iOS简单游戏,从给定数据中选择答案并设置分数
我试着写一个简单的游戏,从几个问题中选择正确的答案a B或C,比如学校考试,然后数一数正确/错误的答案来得分。 我不知道如何使用NSArray存储所有问题和正确答案,以及如何设置分数。我唯一的解决办法是为每个问题创建一个新的视图,但这听起来像是一个糟糕的解决方案。 任何帮助都将受到真诚的感谢。 谢谢 ViewController.hIphone iOS简单游戏,从给定数据中选择答案并设置分数,iphone,ios,xcode,nsarray,Iphone,Ios,Xcode,Nsarray,我试着写一个简单的游戏,从几个问题中选择正确的答案a B或C,比如学校考试,然后数一数正确/错误的答案来得分。 我不知道如何使用NSArray存储所有问题和正确答案,以及如何设置分数。我唯一的解决办法是为每个问题创建一个新的视图,但这听起来像是一个糟糕的解决方案。 任何帮助都将受到真诚的感谢。 谢谢 ViewController.h @interface ViewController : UIViewController { IBOutlet UILabel *numPregunta; IBO
@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
您选择的方式是一个漫长的过程,最初您必须将所有问题、选项和答案保存在字典中 字典被添加到数组中,这使得使用变得简单
[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"];
你可以有一个问题数组,比如questionsArray,它将包含所有问题。其次,创建字典数组,它将包含所有选项和正确的结果,比如resultArray包含在0索引字典中,关键字为Answer1,Answer2,Answer3和result以及value将包含相应的值。现在取一个全局变量,该变量将存储问题编号,表示它正在显示的问题,例如问题0、问题1..等等,这只是问题数组中的问题索引。假设您正在索引0处显示问题,然后显示与该索引ie 0对应的选项,如下所示:
NSString *answer1 = [[resultArray objectAtIndex:0] valueForKey:@"Answer1"];
NSString *answer2 = [[resultArray objectAtIndex:0] valueForKey:@"Answer2"];
NSString *answer3 = [[resultArray objectAtIndex:0] valueForKey:@"Answer3"];
if(btn.tag == [[resultArray objectAtIndex:0] valueForKey:@"result"])
{
//correct answer is selected so increment score.
}
并说正确答案为答案2,则结果键为2。
并为每个按钮提供标签,如1、2和3。
然后在按钮操作中,您可以检查用户是否选择了正确的选项,如下所示:
NSString *answer1 = [[resultArray objectAtIndex:0] valueForKey:@"Answer1"];
NSString *answer2 = [[resultArray objectAtIndex:0] valueForKey:@"Answer2"];
NSString *answer3 = [[resultArray objectAtIndex:0] valueForKey:@"Answer3"];
if(btn.tag == [[resultArray objectAtIndex:0] valueForKey:@"result"])
{
//correct answer is selected so increment score.
}
感谢Sumanth的快速回答,我会在回家后再试并发布结果。感谢Nuzhat的快速回答,我会在回家后再试并发布结果。我找到了另一个解决方案,使用.plist文件存储所有问题和答案。如果有人感兴趣,我可以张贴代码。无论如何谢谢你Nuhat@user1447070:请张贴找到的答案。