Просмотр полной версии : Про рандом
водлопиаа... ой о чем это я?
Добрый день, господа flash'еры!!!;)
Просьба помочь в такой ситуации!!!!
У меня на сцене 12 ящиков. При нажатии на ящик(любой) появляется
число. И снова. И снова. Проблема в том, как при загрузке сцены эти числа
(в ящиках) менялись местами, т.е. я запустил мою флэшку 1-ый раз и в ящике 6 (например) число 10000, а при 2-ом запуске в ящике 3 (например)
число 10000.
Помогите плз!!!!!!!!!!!!!!!!!
Storm[pfp]
04.10.2006, 19:38
в чем проблема !? рандоино при запуске выбирай ящик и помещай туда число
Задача не так проста , тебе нужно работать с масивом и проверять варианты совпадения ...
P.S. Попробую сделать что небудь ... завтра , а сейчас спать =)
function getUnique (array:Array) {
var len:Number = array.length;
var arrayA:Array = array.concat ();
var arrayB:Array = new Array ();
for (var i:Number = 0; i < len; i++) {
arrayB.push (arrayA.splice (Math.floor (Math.random () * arrayA.length), 1)[0]);
}
return arrayB;
}
////
var array:Array = new Array (0, 1, 2, 3, 4, 5, 6);
////
trace (getUnique (array));
trace (getUnique (array));
trace (getUnique (array));
trace (getUnique (array));
trace (getUnique (array));
1) если нужно просто размещеть произвольные числа, то можно просто обойтись random(max_value+1);
2) iNils в принципе правильный код подсказал, но зачем так городить? Тем более он зафиксировать тип возвращаемого функцией значение, так что в трейсе вылетят ошибки.
3) вот код, получившийся у меня:
function getUnique (array:Array): Number {
var arr_length:Number = array.length;
var rand_index:Number = random(arr_length);
var element:Number = array[rand_index];
array.splice(rand_index, 1);
return element;
}
var array:Array = [0, 1, 2, 3, 4, 5, 6];
trace(getUnique(array));Данная функция работает без повторов значений из массива, т.е. число ящиков, по идее, должно не превышать кол-во эл-тов массива array, иначе будет одна пустота.
iNils - каким образом помещать текст кода в сообщениях, чтобы он был в отдельном окне?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.