测验游戏应用程序

我是C#编程的新手,所以我需要在这里问C#专家,我应该使用哪些技巧来制作我计划开发的测验游戏应用程序。 我想我的测验应用程序是这样的:

1.)英国的首都是什么?
一个。 伦敦
湾 华盛顿特区
C。 东京
d。 马尼拉

2.)什么是俄罗斯的首都?
一个。 曼谷
湾 北京
C。 伊斯兰堡
d。 莫斯科

等等….

我希望使用Rand()随机生成问题。 这些问题应该是随机放置的,而不是我在这里设置的顺序,但我宣布的那4个选项仍然只是在测验集中显示的选项。 如果您有任何教程链接,请给我,以便我可以学习它。 我真的很喜欢开发这个应用程序,但我没有任何线索来开始这个。 真的很感激任何帮助。 谢谢!

首先,你应该了解你的问题。 只需检查您的要求并考虑对象。 你当然有“问题”和“答案”。 每个问题 4个可能的答案,只有一个是正确的。 因此,第一个非常简单的方法就是这样。

class Question { public string QuestionText{ get; set; } public string AnswerA { get;set } public string AnswerB { get;set } public string AnswerC { get;set } public string AnswerD { get;set } } 

这是一个好的开始,但并不完美。 您现在可以在此问题对象中存储正确的答案。 但是要充分利用这个新属性,让我们的答案更有活力是有意义的。

 class Question { public Question() { Answers = new string[4]; } public string QuestionText{ get; set; } public string[] Answers { get;set; } public int CorrectAnswer {get;set; } } 

因此,通过这个小对象,我们现在可以创建所有问题,如下所示:

 var question = new Question(); question.QuestionText = "What color is snow?"; question.Answers[0] = "Red"; question.Answers[1] = "Yellow"; question.Answers[2] = "White"; question.Answers[3] = "Green"; question.CorrectAnswer = 2; // ... more questions var listOfQuestions = new List(); listOfQuestions.Add(question); 

如何随机排序是另一个在SO上难以找到的主题。

我个人喜欢冰人的想法,你可以用他的答案来改进我的基本方法。

有很多不同的方法可以做到这一点。 如果您希望能够轻松维护问题和答案,那么执行此操作的方法是将它们放在XML文件中 。 然后,您可以使用XMLDocument在运行时加载问题和答案。 你的XML文件看起来像这样:

    What is the capital city of Russia?  Moscow Bangkok Beijing Islamabad    

您可以使用XMLDocument在C#中解析它。

您的预期数据源是什么?它有多大? 如果你可以定义数据源的格式,我建议你有一个文本文件,其中每行有三个或四个字段,由某种分隔符分隔。 字段将是一个问题,正确的答案,以及指示问题和答案都属于哪些类别的字符列表,或者问题的类别列表和答案的另一个类别。

为了澄清最后一点,在许多多项选择测试中,如果要从25个池中随机选择10个问题,然后对于每个问题从池中打印三个随机答案以及正确答案,可以结束问题如下:“三角形有多少边?(a)方形(b)欧几里德(c)三(d)菱形”。 一个计算! 数十年前的杂志文章提供了一个多项选择测验生成器,它通过所谓的“歧视”解决了这个问题 – 将类别附加到问题和答案,并且每个问题只选择适合问题类别的答案。 我不记得那篇文章是如何做到的,但是为了简化编码和数据录入,你会建议你找出问题和答案的类别,并为每篇文章选择一个字母。 对于上述问题,合理的类别可能是“写出小于十三的整数”,因此如果一个人任意决定使用字符“Q”,则问题和答案都将具有“Q”类别。 在许多情况下,问题和答案的单个类别就足够了(我认为这是COMPUTE!程序的工作原理,但在某些情况下,可能需要允许更复杂的东西(例如“具有四个边的形状,并且对于对立面相等,是:“,提供”五角大楼“作为选项可能是合理的,但可能不是”方形“,”矩形“或”菱形“)。

在设计数据集时还需要考虑一些问题,例如它应该如何处理多个问题可能具有相同答案的可能性,以及答案是否应按随机顺序或一致顺序列出(例如“如何”五边形的许多方面都有“,将答案列为”更好“(a)三(b)五(c)六(d)八”而不是“(a)八(b)五(c)六(d)三“)。