0

您好,我正在创建一个简单的提问游戏。但是,我希望在整个游戏中随机提问。

所以,有 11 个问题,所以我在 1 到 11 之间随机选择一个数字

然后它会设置一个数组值,这样如果问题已经被选中,它将不会再次被选中。

一旦它为一个没有被问到的问题随机取了一个值,它就会进入那个框架。(使用 Adob​​e Flash)

所以,简单地说:

随机数 -> 有人问过这个问题吗?-> 是(重新启动脚本)-> 否(转到相应的框架)

我已经设置了一个代码,但由于某种原因它没有运行。当我使用“Stop();” 它忽略它并继续浏览框架。这里发生了什么?有人可以为我创建一个有效的代码吗?我可以很好地阅读代码,但我无法编写它。所以我可以在必要时更改框架。

提前致谢!

4

1 回答 1

1

保留两个数组;未修改的所有问题之一,以及您从中选择问题的一个,在您进行时删除。就像是:

var allQuestions:Array = ["...", "...", ...];
var questions:Array = [];

public function getRandomQuestion():String
{
    // if our questions are empty, fill them
    if( questions.length == 0 )
        this.fillQuestions();

    // choose a random question index
    var index:int = int( Math.random() * questions.length ); 

    // this will remove that question from the array and return it. The [0] at the end
    // is because splice returns an array, so we're returning the first value of 
    // it (i.e. the question we just removed)
    return questions.splice( index, 1 )[0];
}

public function fillQuestions():String
{
    // fill the questions array here from our full array
    for each( var s:String in allQuestions )
        questions.push( s );
}
于 2013-09-30T21:11:55.567 回答