Actionscript游戏 - 与随机问题匹配的答案

时间:2015-05-12 11:38:01

标签: arrays actionscript-3 flash actionscript multiple-choice

我是ActionScript的初学者,所以可能会有一个简单的解释,我错过了。我很感激这项任务的任何帮助。

我正在创建一个儿童游戏,其中用户计算对象并选择一个数字来回答问题。我的问题随机产生。我的问题是我的答案与我随机生成的问题不符。

这是我的ActionScript,其中"选择"是答案按钮。

    import flash.events.MouseEvent;

       stop();

//------------------variables-----------------

var score = 0;
var questionnum = 1;
scoretxt.text = "0";
var randomnum:Number;


var questions:Array = ["How many orange flags are there?",
                       "How many Blue flags are there? ",
                       "How many balls is the clown juggling?",
                       "How many clouds are in the sky?", 
                       "How many horses are on the carousel?",
                       "How many stripes are on the roof of the tent?"];
var answers:Array = [choice10, choice6, choice10, choice4, choice2, choice5];



//------------------Display-----------------

choice1.visible = false;
choice2.visible = false;
choice3.visible = false;
choice4.visible = false;
choice5.visible = false;
choice6.visible = false;
choice7.visible = false;
choice8.visible = false;
choice9.visible = false;
choice10.visible = false;


//------------------choice buttons-----------------

this.choice1.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice2.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice3.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice4.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice5.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice6.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice7.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice8.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice9.addEventListener(MouseEvent.CLICK, this.nextq);
            this.choice10.addEventListener(MouseEvent.CLICK, this.nextq);

//------------------generate question-----------------

function generateq(){
            this.randomnum = Math.floor((Math.random() * this.questions.length));
            questiontxt.text = questions[randomnum];
            this.questions.splice(this.randomnum, 1);}



//------------------Start Game-----------------

startgame_mc.addEventListener(MouseEvent.CLICK, startgame);

function startgame(event:MouseEvent){
generateq();

choice1.visible = true;
choice2.visible = true;
choice3.visible = true;
choice4.visible = true;
choice5.visible = true;
choice6.visible = true;
choice7.visible = true;
choice8.visible = true;
choice9.visible = true;
choice10.visible = true;
startgame_mc.visible=false;
startscreen.visible=false;
}


//------------------Next Question-----------------

function nextq(event:MouseEvent){
            this.questionnum++;
            this.generateq();
            trace(("questionnum" + this.questionnum));
            if (this.questionnum == 6){
                trace("questions finished....");
                questiontxt.text = "All Questions Complete";
            };

            if(MovieClip(event.target) == answers[randomnum]){
        trace("right answer");

               score = (score + 5);
               scoretxt.text = String(("Score: " + String(score)));
            };
}

2 个答案:

答案 0 :(得分:1)

是时候学习多维数组或类了。

问题似乎在这里。如果你正在拼接问题数组,那么你应该拼接答案数组,以便两者匹配。

function generateq(){
    randomnum = Math.floor((Math.random() * this.questions.length));
    text = questions[randomnum];
    questions.splice(this.randomnum, 1);

    // add this
    this.questions.splice(this.randomnum, 1);
}

答案 1 :(得分:0)

使用对象创建问题:

    var questions:Array = [{
                            title:"How many orange flags are there?",
                            correct:5,
                            incorrectA:8,
                            incorrectB:10,
                            questionImageUrl:"https://stackoverflow.com/imageexample.jpg"},
                           {
                            title:"How many Blue flags are there? ",
                            correct:5,
                            incorrectA:8,
                            incorrectB:10,
                            questionImageUrl:"https://stackoverflow.com/imageexample2.jpg"}
]