0

私は乱数を生成しようとしていて、別の数と比較しています。それらが同じ場合、乱数を1つ増やしてからステージに追加します。でも、そもそも違うなら直接ステージに追加してほしい。しかし、番号が同じ場合は正しく機能しません.radomize ++を通過しますが、生成された最初の番号を追加してすべてを台無しにします. これを修正する方法を教えてください。

 function randomizedorder()
    {
        randomize = Math.floor(Math.random() * (choices.length));

        trace("the random number is" + randomize);

    if (randomize == indexcount ) {
            randomize++;
            trace ("it goes through this pahse" + randomize);

        }
        else {
               addChild(choices [randomize]);
        }

    }
4

1 に答える 1

1

want the random number to increase by one and then add it to the stage

addChild が else 句にあるため、ステージに何も追加せずに 1 ずつ増やしています。

function randomizedorder()
{
    randomize = Math.floor(Math.random() * (choices.length));

    trace("the random number is" + randomize);

    if (randomize == indexcount ) {
        randomize++;
        randomize = randomize % choices.length;
        trace ("it goes through this pahse" + randomize);
    }

    addChild(choices [randomize]);

}

また、randomize が等しい場合にどうするかを決定する必要がありindexcountchoices.length-1その場合は選択を元に戻すために使用できません。

編集:モジュラス演算子を追加したので、ランダム化が範囲外になると0に戻ります。

于 2013-05-06T18:38:04.823 に答える