Могу ли я изменить свои случайные числа в сценарии действий - PullRequest
1 голос
/ 23 мая 2011

Привет всем, мне нужно изменить случайные числа, выведенные в сценарии действия.вы увидите, что я получаю 5 случайных чисел для 5 различных местоположений, но это ограничивает число для каждого местоположения.

_loc_2 = Math.floor(Math.random() * 4) + 1;
Cone.text = "" + _loc_2;
_loc_3 = Math.floor(Math.random() * 4) + 5;
Ctwo.text = "" + _loc_3;
_loc_4 = Math.floor(Math.random() * 2) + 9;
Cthree.text = "" + _loc_4;
_loc_5 = Math.floor(Math.random() * 2) + 11;
Cfour.text = "" + _loc_5;
_loc_6 = Math.floor(Math.random() * 3) + 13;
Cfive.text = "" + _loc_6;

мне нужно изменить его на это случайное значение от 1 до 15, но без создания дублированных чисел,

_loc_2 = Math.floor(Math.random() * 15) + 1;
Cone.text = "" + _loc_2;
_loc_3 = Math.floor(Math.random() * 15) + 1;
Ctwo.text = "" + _loc_3;
_loc_4 = Math.floor(Math.random() * 15) + 1;
Cthree.text = "" + _loc_4;
_loc_5 = Math.floor(Math.random() * 15) + 1;
Cfour.text = "" + _loc_5;
_loc_6 = Math.floor(Math.random() * 15) + 1;
Cfive.text = "" + _loc_6;

Можно ли это сделать в сценарии действия?

заранее спасибо, Дэйв

1 Ответ

1 голос
/ 23 мая 2011

То есть вы хотите сгенерировать числа 1-15 в случайном порядке без дубликатов?

Вероятно, есть несколько способов сделать это, но вот один из них:

var numberSource:Array = [];

function initArray(maxValue:int):void {
 for (var i:int = 0; i < maxValue; i++) {
  numberSource[i] = i + 1;
 }
}

function getNumber():int { 
 var index:int = int(Math.random * (numberSource.length - 1));
 return numberSource.splice(index, 1);
}

Таким образом, вы вызываете initArray (15), затем вызываете getNumber (), и каждый раз, когда оно выдает одно из ваших значений и возвращает его.Вы никогда не должны получать дубликаты, и вы должны в конечном итоге получить каждый номер.Я не проверял это, так что, возможно, там есть какой-то сбой, но это должно, по крайней мере, дать вам хорошее место для начала!:)

...