Java:多项选择游戏使用哪种结构

标签 java arrays data-structures hashmap multiple-choice

我正在尝试创建一个多项选择游戏,每个问题有 4 个可能的答案。
在游戏的主要部分,玩家将被问到一个问题,并被提示输入答案。
在我的代码中,连同问题答案字符串,我将需要能够以某种方式判断哪个是正确的答案,甚至可能标记问题,以免在以后的回合中重复。此外,可能的答案需要在“游戏”之间以随机/不同的顺序排列。

我正在尝试找出使用什么数据结构来存储上述所有内容,以便能够正确编写代码。

我的第一选择是有一个主要的 Hashmap<String, HashMap>第二个HashMap<String, Boolean> * 存储到第一个中。第一个映射将问题字符串存储为键,第二个 HashMap 将存储为值。第二个 HashMap 将答案存储为键,并为每个键存储一个 boolean 值,指示哪个是正确的答案,作为值。
有点复杂,但至少在理论上它似乎有效,尽管我仍然没有办法将问题标记为“已提出”。

我的第二个选择是一个二维数组,其行代表一个问题,0 列是问题字符串,1,2,3,4 列存储答案 字符串,第 5 列存储正确答案字符串,并且可能有第 7 列 (6) 存储标志,标记是否尚未提出问题。
尽管理论上更简单,但我担心这种方法在实际编码中会非常令人困惑。

如果有更好/更简单的方法来做到这一点,请告诉我,甚至详细说明它们的好处。

最佳答案

Java 是一种面向对象的语言。你应该使用它。

示例:创建一个表示问题和可能答案的类。

public class Question {
    private String       question;
    private String       correctAnswer;
    private List<String> answerList;
}

现在,您可以创建一个很好用的构造函数,首先给出问题,然后使用 varargs 给出所有答案。 ,先给出正确答案:

new Question("How satisfied are you with this answer?",
             "Extremely satisfied",
             "Very satisfied",
             "Somewhat satisfied",
             "Not so satisfied");

然后你的构造函数可以构建 answers列出并调用 Collections.shuffle(this.answers) 将它们随机化。

然后将所有问题添加到 List<Question>并调用shuffle因此,问题将以随机顺序提出,并且仅提问一次。

关于Java:多项选择游戏使用哪种结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40559413/

相关文章:

php - 在 Amazon DynamoDB 中插入数组值的顺序

android - 如何将 boolean 数组定义为 XML 中的资源?

C - 数据存储/访问

java - 具有大量变异的矩阵的最佳数据结构

java - 如何验证 wicket 中的数字格式 TextField?

javascript - 从 Javascript 中的 groupedBy 数组中删除并计算重复项

java - HashMap 是最好的选择吗?

c - 没有 typedef 关键字的结构

java - 弃用的方法,用什么代替?

java - 为什么我在 java 中收到死代码警告?