-1

我想用 C# 制作一个年度问题测验游戏。我需要帮助来解决如何在不同类别中提出问题的问题。

测验由一个问题和一个答案组成。但是,假设我想让测验属于不同的类别。我想要的类别是体育历史人物

我应该如何设计这个测验的类图?解决问题的最佳方法是什么?下面的类图是关于我认为如何解决问题的。但我不认为我的解决方案是好的。而且我不知道为什么SportsHistoryPeople类应该继承自 Quiz 以及这些类应该包含哪些实例变量?我可以在没有继承的情况下解决问题,但我正在做的任务说这是使用继承的要求。

在此处输入图像描述

4

2 回答 2

2

到目前为止看起来不错,虽然我会添加一些这样的方法和类:

interface IQuiz {
      public List<Question> getQuestions();
      public float scoreQuiz();
}

class Answer { string answer; }
class Question { 
      List<Answer> potentialAnswers;
      Answer correctAnswer;
}

class SportsQuiz : IQuiz { }
class PeopleQuiz : IQuiz { }
class HistoryQuiz : IQuiz { }
于 2013-05-22T13:25:40.640 回答
1

一种可能的(简单)方法:

public class Quiz
{
    public string Question { get; private set; }
    public string Answer { get; private set;}

    public Quiz(string question, string answer)
    {
        Question = question;
        Answer = answer;
    }
}

然后后来:

// Create a dictionary
Dictionary<string, List<Quiz>> quizDictionary = new Dictionary<string, List<Quiz>>();

// Create a category
List<Quiz> sportsQuiz = new List<Quiz>();
// Add questions & answers to the category
sportsQuiz.Add(new Quiz("Whats the question?", "It's the answer"));

// Add the category to your quiz dictionary
quizDictionary.Add("Sports", sportsQuiz);

// Select a category
List<Quiz> randomQuiz = quizDictionary["Sports"];

// Do something with the category
Quiz randomQA = randomQuiz[0];

Ask(randomQA.Question);
if (answer == randomQA.Answer)
    // correct answer
else
    // wrong answer
于 2013-05-22T14:10:20.503 回答