Просмотр полной версии : Рэндомное распределение чисел
greenhill
16.11.2009, 13:01
Здравствуйте. Такой вопрос:
есть массив элементов, например, магазинов:
var shops = new Array();
for (var i = 0; i<5; i++) {
shops[i] = "shop"+i;
}
и есть массив:
var score_number:Array = new Array(0, 0, 1, 1, 2, 3);
мне нужно рендомом распределить каждому элементу массива shops значение score_number.
То есть, shops[i].num = score_number[рендомное число.]
Поскажите как сделать, а то у меня все или циклится или вообще не работает корректно.
А как вы стрингу хотите свойство сделать?
Добавлено через 13 минут
А вообще вот
var shops:Array = new Array();
var score_number:Array = new Array(0, 0, 1, 1, 2, 3);
for (var i = 0; i < 5; i++) {
shops[i] = "shop"+i;
var rand:Number = Math.round((Math.random()*score_number.length)); //выбираем случайное число
Некая переменная/свойство = score_number[rand]; //присваиваем случайное значение
score_number.splice(rand, 1); //чтобы не было повтором в числах мы удаляем выбранное значение из массива
}
greenhill
16.11.2009, 14:45
var shops:Array = new Array();
var score_number:Array = new Array(0, 0, 1, 1, 2);
for (var i = 0; i < 5; i++) {
shops[i] = "shop"+i;
var rand:Number = Math.round((Math.random()*score_number.length)); //выбираем случайное число
//Некая переменная/свойство = score_number[rand]; //присваиваем случайное значение
score_number.splice(rand, 1); //чтобы не было повтором в числах мы удаляем выбранное значение из массива
trace(rand)
}
trace вывел
4
2
1
2
0
мне нужен чтоб присваивались в рендомном порядке элементы массива score_number.
важно чтоб рендом не повторял на следующей итерации значение предыдущих.
надеюсь понятно :)
ааа... я думал нужно, чтобы не повторялись значения из score_number
greenhill
16.11.2009, 15:33
к сожалению нет
есть идеи? я не знаю как корректно организовать проверку на рендом
var shops:Array = [];
var score_number:Array = new Array(0, 0, 1, 1, 2, 3);
var clone:Array = [].concat(score_number);
var length:Number = clone.length;
for (var i:Number = 0; i < length; i++)
{
shops.push(clone.splice(Math.floor(Math.random() * clone.length), 1)[0]);
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.