0

こんにちは、質問をする簡単なゲームを作成しています。ただし、ゲーム全体で質問をランダムにしたいと思います。

11問あるので、1から11までの数字を無作為に割り出します

次に、質問がすでに選択されている場合は再度選択されないように、配列値を設定します。

尋ねられていない質問の値をランダム化すると、そのフレームに移動します。(アドビフラッシュを使用)

したがって、単純に:

乱数 -> この質問はありますか? -> はい (スクリプトを再起動) -> いいえ (対応するフレームに移動)

コードを設定しましたが、何らかの理由で実行されません。「Stop();」を使うと それは無視され、フレームを通過し続けます。ここで何が起こっているのですか?誰かが私のために動作するコードを作成できますか? コードは問題なく読めますが、書くのは苦手です。そのため、必要に応じてフレームを変更できます。

前もって感謝します!

4

1 に答える 1

1

2 つの配列を保持します。すべての質問のうちの 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 に答える