琐事游戏设计模式

时间:2015-06-28 01:02:04

标签: java android design-patterns

我需要帮助解决有关创建琐事测验游戏的一些设计问题。在继续之前我可以使用一些建议,如果以下方法是OK / Improvable /容易失败/ ..这是我到目前为止所提出的:

public class Question {
    private String question;
    private List<Answer> answers;
    private int statisticsCorrectness;
}

public class Answer {
    private String answer;
    private boolean correct;
}

我比在持有人类中创建问题,我可以用它来获得一组问题(这是我不确定的地方,把它放在课堂上似乎是错误的,以前从未见过它)

public class StaticStuff {

    public Module getModuleOne(){
        Module module;


        //Question1
        Answer a = new Answer("Ten", true);
        Answer a1 = new Answer("Five", false);
        Answer a2 = new Answer("Six", false);
        Answer a3 = new Answer("Eight", false);
        Answer a4 = new Answer("10", true);
        Answer[] listOfAn = new Answer[]{a, a1, a2, a3, a4};

        Question q1 = new Question("What is 5 plus 5", Arrays.asList(listOfAn));
        //End Question1

        //Question2
        //....
        //End Question2

        //Add all questions
        Question[] questionsForFirstModule = new Question[]{q1};

        //Create the module that will be returned
        module = new Module("Introduction", Arrays.asList(questionsForFirstLession));

        return module;
    }
}

我计划使用它的方式是在应用程序第一次运行时使用SharedPreferences保存每个Module对象(使用Json或parcelable)。当我需要一组问题时,我只是从SharedPreferences中获取对象并将其发回&#34;更新&#34;到SharedPreferences。

如果需要明确一个明确的问题,那就是:与使用数据库相比,这种方式保存对象有多大的缺点。也许我应该采用数据库方法(在写完这些之后我才意识到的东西)?

我查看了google上的前三页&#34; Trivia游戏java教程&#34;但是没有从中得到足够的信息。

1 个答案:

答案 0 :(得分:0)

在这里使用外部数据文件会更好。 不久前,我为编码挑战编写了百万富翁型Quizz游戏,并且使用了类似的方法:

问题 -问题文字 -答案(字符串的数组[4])

这是通过读取一个简单的文本文件来填补的,今天您可以使用JSON或XML,但是纯文本文件可以很好地工作,只是不够灵活。

您可以使用Room或类似的方式,但是请记住,编辑这些问题将是您要做的很多事情,因此请尽可能简化您的操作。

在我的版本中,数据中的第一个答案始终是正确的答案。 我随机显示了显示它们的顺序,主要是为了使写下问题变得更加容易,因为这需要大量的工作,并且您想简化你。

考虑将已显示问题的频率与时间戳一起存储,这样就可以避免重复出现的问题。

在android中,创建一个活动,以显示带有可能答案的问题,然后单击以显示选择的结果,然后再更改ViewModel数据以显示下一个问题。

得分和其他变量可以通过使用通常的方式来处理状态变化而持久化。