2014-11-03 88 views
0

我正在设计比赛游戏。有一个问题列表,每个用户需要在这个游戏中回答。设计模式:如何确定q/a比赛游戏模式

我有两个类型的问题。第一个是多项选择题。这个问题包含一个选项列表,每个选项都是一个String。

另一个是搜索问题。这类问题只有一个正确答案,即国家类型。我们将显示一张地图,让用户找到正确的国家。

public class Country { 
    String countryName; 
    LatLng ll; 
} 

这两种类型的问题将被一起显示,并混合作为列表给每个用户。

如果显示给用户的问题是选择题,我们将显示一个选项列表,让用户选择; 如果用户看到搜索问题,则需要他/她在地图上搜索相应的国家/地区。

有两种类型的答案在这里,字符串和乡村。

这里是我的问题:

  1. 我应该设计两个类型类的每个问题,MCQuestion和SearchingQuestion,并让他们延长了同一抽象类的问题?
public abstract class Question { 
    String questionText; 

} 

如何设计各类型的问题。我需要方法来返回正确的答案,并检查一个输入是否正确?

  • 我应该还设计两种类型的回答为每种类型的答案的?
  • +0

    你究竟在做什么? – 2014-11-03 02:16:17

    +0

    我有一个问题字段,人们需要回答问题。如果这是一个MCQ,那么我们有4个选项让用户选择。如果这是一个搜索问题,那么我们将显示一张地图并让用户找到正确的国家。 – 2014-11-03 02:25:38

    +0

    从相同的抽象类中获得这些完全不同类型的问题,你期望什么好处? – 2014-11-03 02:58:15

    回答

    -1

    我觉得你的总体思路是有道理的。

    派生从一个超类中的问题是非常有用的,因为这样你可以例如将它们存储在Questions[]阵,并挑选一个随机。

    我不知道您是否需要两种不同的答案类型,因为您的答案基本上由一个字符串组成,无论是{"A","B","C","D"}还是标准国家代码(您可以创建一个转换器以将国家/地区代码

    获取和设置正确答案等的方法都很好,但我们无法告诉您需要哪些方法,因为只有您知道游戏会是什么样子。如果您不确定,请使用MVC模式。你的问题类只能代表模型。