如何在JavaScript中建模此数据结构? (AngularJS)

时间:2014-09-25 02:50:41

标签: javascript angularjs oop object data-structures

我正在申请一个每轮有很多问题的游戏。每个玩家都可以回答问题(多个玩家可以回答相同的问题)并获得不同数量的积分。该应用程序在开始时有一个播放器列表和一系列问题。

我不确定如何对此进行建模 - 我正在考虑每个问题可能都有一个字典,玩家对象的关键字以及他们获得了多少点的价值。我还考虑为每个玩家提供一个字典,其中包含Question对象和点值的关键字(如果他们没有回答那么问题不是关键)。

我不确定哪个是最佳选择,或者是否有更好的方法可以做到这一点。对于许多玩家来说,让许多问题对象副本浮动是一个好主意(反之亦然,对于其他选项)?

在我的AngularJS工厂,我制作了一个Player类:

function Player(name, heard) {
    this.name = name;
    this.heard = heard;
}

和问题清单和问题类

function Question(number) {
    this.number = number;
}

function QuestionList() {
    this.questions;
}

QuestionList.prototype.createQuestions(n) {
    for (var i = 0; i < n; i++)
        this.questions.push(new Question(i + 1));
}

我如何联系他们?任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

每一轮都有很多问题,每个问题都有很多选择(和点值),每个玩家有很多选择,你可以在其中加上每个问题的分数。

function Round(questions){
    this.questions=questions;//array of Question instances
}

function Question(question){
    this.question=question;//the question "What's a green animal?"
    this.choices=choices;//array of choice instances
}
function Choice(question,choice,pointsWorth){
    this.question=question;//the question it belongs to---the parent class
    this.choice=choice;//"Alligator"
    this.pointsWorth=pointsWorth;//the correct answer is worth 5, wrong answers 0?
}
function Player(){
    this.choices=[];
}
Player.prototype.chooseChoice=function(choice){
    this.choices.push(choice);
}
Player.prototype.score=function(){
    return sum(this.choices);//You gotta write this function. this.choices[0].pointsWorth+this.choices[1].pointsWorth etc
}