Показать сообщение отдельно
Старый 06.01.2007, 19:35
poorjorik вне форума Посмотреть профиль Отправить личное сообщение для poorjorik Найти все сообщения от poorjorik
  № 1  
Ответить с цитированием
poorjorik
 
Аватар для poorjorik

Регистрация: Oct 2002
Адрес: Москов сити.
Сообщений: 48
Question Неповторяющийся рандом.

Друзья, бьюсь уже 3 дня. думал обойтись без помощи форума, да видать по-другому невозможно.
Есть следующая задумка (почти реализованная):
Мувик из N кадров, на каждом кадре стоп, в каждом кадре разные объекты, назовем его БИБЛИОТЕКА.
Мувик в который вставлен БИБЛИОТЕКА (назовем его ВЫБОРКА) и прописано следующее:
--------------------------------------------------------
Код:
onClipEvent (load) {
	var playscene=[1,2,3,4,5,6,7,8,9];
	n=random(playscene.length);
	this.gotoAndStop(n);
	playscene.splice(n,1);
}
--------------------------------------------------------
Идея такая - рандомно выбирается кадр из БИБЛИОТЕКА, и в ВЫБОРКА отображается соответсвенно.
Затем есть еще один мувик, содержащий ВЫБОРКА и код: дубликат симбл.
Итого пытаюсь получить но не получается: чтобы дублированные объекты генерились рандомно, но ни один из них не повторялся. Генерятся рандомно, но иногда бывают повторения.

В экшене я не очень шарю, но понимать вроде могу. Книжка под боком. ПЫтался сделать это (основано на исходнике генерящем неповторябщися рандом из 10 цифр):
--------------------------------------------------------
Код:
onClipEvent (load) {
	Temp = "";
	i = 1;
while (Number(i)<>11) {
	rnd = random(10);
	x = 1;
	while (Number(x)<>Number((Number(length(Temp))+1))) {
		if ((substring(Temp, x, 1)) eq rnd) {
			rnd = "";
		}
		x = Number(x)+1;
	}
	if (rnd ne "") {
		Temp = rnd;
		i = Number(i)+1;
	}
}
	this.gotoAndStop(temp);
}
--------------------------------------------------------
Итог тот=же, повторения наблюдаются.

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


Последний раз редактировалось iNils; 06.01.2007 в 19:45.