Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 22.07.2002, 13:33
Massimo вне форума Посмотреть профиль Отправить личное сообщение для Massimo Найти все сообщения от Massimo
  № 1  
Massimo

Регистрация: Mar 2002
Адрес: Россия, Москва
Сообщений: 54
Отправить сообщение для Massimo с помощью ICQ
По умолчанию Random LoadMovie (1,2,3.....10) без повторов?

random такой:
loadMovieNum ("../../directory/"+Math.ceil(Math.random()*30)+".swf", 1000);
как сделать чтобы он не повторял предыдущий, или лучше даже чтобы ещё следующи после него тоже не поторял....?
Вроде понятно изложил суть вопроса...

Старый 22.07.2002, 13:38
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 2  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Делаешь массив имен, использованное имя метишь как пройденное в таком-то проходе. Если на него выпадает рандом, то рероллишь этот рандом. Счетчик проходов инкрементируешь, естесстна.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 22.07.2002, 13:53
Egoritch вне форума Посмотреть профиль Отправить личное сообщение для Egoritch Посетить домашнюю страницу Egoritch Найти все сообщения от Egoritch
  № 3  
Egoritch
"Ниразу не флэшер"
 
Аватар для Egoritch

Регистрация: Nov 2001
Адрес: +38-067-...
Сообщений: 1,434
Отправить сообщение для Egoritch с помощью ICQ
Код:
masCount = 10; //cколько элементов надо расставить
a = new Array(masCount);
	for (i=0;i<masCount;i++){
	oo1=0;
	while (oo1==0){
		oo1=2;ooo=random(masCount);
		for (i1=0;i1<i;i1++)	if (a[i1]==ooo)oo1=0;
		}
	a[i]=ooo;
	}

заполняет массив a размерности masCount числами от 0 до masCount без повторов.
__________________
стучитесь в асю за дополнительной помощью....
ЗЫ: ПОИСК действительно рулит.

Старый 22.07.2002, 13:54
lexass вне форума Посмотреть профиль Отправить личное сообщение для lexass Посетить домашнюю страницу lexass Найти все сообщения от lexass
  № 4  
lexass
 
Аватар для lexass

Регистрация: Sep 2000
Адрес: SPb
Сообщений: 3,374
Отправить сообщение для lexass с помощью ICQ
DeliMIter, лично Я тЯ понял =)))

ИМХО
мо быть массив заполнили,
то что отЮзали выкинули ?
__________________
Старый плюс лучше новых двух.
I like RTFM
попросил - подожди - обработай
Chr(255) == '\xFF' - это про "я"
lexass


Старый 22.07.2002, 14:00
Massimo вне форума Посмотреть профиль Отправить личное сообщение для Massimo Найти все сообщения от Massimo
  № 5  
Massimo

Регистрация: Mar 2002
Адрес: Россия, Москва
Сообщений: 54
Отправить сообщение для Massimo с помощью ICQ
Ухх.. я не думал, что всё так трудно....
Т.е. мне тот код нужно вставить после лоад муви, и всё заработает?

Старый 22.07.2002, 14:14
Egoritch вне форума Посмотреть профиль Отправить личное сообщение для Egoritch Посетить домашнюю страницу Egoritch Найти все сообщения от Egoritch
  № 6  
Egoritch
"Ниразу не флэшер"
 
Аватар для Egoritch

Регистрация: Nov 2001
Адрес: +38-067-...
Сообщений: 1,434
Отправить сообщение для Egoritch с помощью ICQ
послен выполнения того кода у тебя в массиве a будут лежать случайные числа от 0 до 9 неповторяющиеся

то есть что то типа

a[0]=4;
a[1]=2;
a[2]=9;
a[3]=0;

и т.п. как их заюзать - разбирайся ;-)) что-то типа в первом кадре, там пишешь этот код и i=0;

потом

loadMovieNum ("../../directory/"+a[i]+".swf", 1000);
i++;

__________________
стучитесь в асю за дополнительной помощью....
ЗЫ: ПОИСК действительно рулит.

Старый 22.07.2002, 14:47
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 7  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
по-моему надо быть проще
самый рациональный вариант тебе сказал делимитер в самом начале... только я не понял причем тут счетчик рандомов

// предел рандома + массив уже использованных
limit=30, hits=[];
//
// там, где нужно запускать лоад пишешь три строчки:
while (hits[tmp=Math.ceil(Math.random()*limit)]) {}
hits[tmp] = true;
loadMovieNum("../../directory/"+tmp+".swf", 1000);


...и все собственно

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


Последний раз редактировалось Nox Noctis; 22.07.2002 в 14:54.
Старый 22.07.2002, 14:49
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 8  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
2lexass

Эт здорово, что хоть ТЫ меня понял ;)))
В условии требовалось не повторять как минимум два предыдущих, но ничего не было про НЕ ПОВТОРЯТЬ ВООБЩЕ. Так что у меня все правильно :))
Код:
Track = new Array();

function Turn() {
 while (Track[_i = random(30)] + 2 > _turn);
 loadMovieNum(...);
 Track[_i] = ++_turn;
}
Так что Egoritch идет в угол за много лишнего кода.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 22.07.2002, 14:51
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 9  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
хе-хе-хе.... а я на две минуты раньше

Старый 22.07.2002, 14:53
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 10  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Я заметил (мрачно)...
__________________
...убивать людей не удовольствия ради, но для еды.

Создать новую тему   Часовой пояс GMT +4, время: 06:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:21.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.