2013-05-06 3 views
0

Я пытаюсь создать случайное число и сравнить с другим числом, если они одинаковы, я хочу, чтобы случайное число увеличилось на единицу, а затем добавило его на сцену. но если он отличается от начала, я хочу, чтобы он напрямую добавлял его на сцену. но он не работает должным образом, если числа одинаковы, он проходит через 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]); 
     } 

    } 
+0

Не уверен, что это неправильно код здесь выглядит okayish. Я думаю, вам стоит подумать о рандомизации/скремблировании списка заранее. Возможно, клонируйте массив, а затем рандомизируйте его, выбрав случайное изменение n пятен, а затем используйте клонированный массив для добавления детей из (и проверки). – shaunhusain

ответ

1

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

пока вы увеличиваете его на один и не добавляя ничего на сцене, так как AddChild находится в пункте еще.

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 равно indexcount и также равна choices.length-1 в этом случае вы не можете использовать его для undex выбор.

Edit: Я добавил оператор модуля, так что если Распределить выходит за пределы будет вернуться к 0.

+0

есть, это работает thx. но мне также нужно знать, является ли случайное число вне пределов, так как в нем больше, чем длина выбора, как я могу его просить, вместо того, чтобы увеличиваться на один снимок на единицу? хорошо, что есть выбор. потому что это происходит прямо сейчас, если у меня есть индекс, который равен 1, и все же у меня есть выбор, доступный в 0, но если рандомизация достигает 1, она переходит на 2. Мне нужно попросить его вернуться к 0 Я знаю, что могу попросить его проверить на последнем месте, но как же я попрошу его добавить его на сцену? – tailedmouse

+0

Отредактировав мой ответ, вы можете использовать оператор модуля для того, чтобы обернуть «randomize» обратно в 0, если он выходит за пределы. –

+0

oooo fancy .. Большое спасибо за то, что вы научили меня чему-то новому: D он также решил проблему: p Я никогда не знал об этом отношении. – tailedmouse

Смежные вопросы