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

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

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

Регистрация: Oct 2000
Адрес: Piter
Сообщений: 111
Question Взять из массива переменную!..

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

Пример - есть 20 полей. На каждом поле - уникальный мувик. Нужно в случайном порядке расставить их на поля так чтобы они не повторялись.
__________________
Если у Страха глаза велики, то какие они у Ужаса?..

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

Регистрация: Aug 2001
Адрес: Киев
Сообщений: 551
Отправить сообщение для Darina с помощью ICQ
Надо сделать так называемое "перемешивание".
Например так:
for(i=0; i<num; i++) M[i]=i;
for(i=0; i<num; i++) {pos=random(num);
tmp=M[i];
M[i]=M[pos];
M[pos]=tmp;}
M - это твой массив, а num - кол-во его элементов
__________________
www.ori-art.com

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

Регистрация: Oct 2000
Адрес: Piter
Сообщений: 111
По умолчанию Понял

Понял.
Пасибки, Darina
__________________
Если у Страха глаза велики, то какие они у Ужаса?..

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

Регистрация: Oct 2000
Адрес: Piter
Сообщений: 111
По умолчанию Все равно глючил это код...

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

Выход нашел так:

Код:
function MixArray(array, _array) {
//Обнуляем выходной массив. 0 - признак того что ячейка свободна
        for (i = 0; i < array.length; i ++)
        _array[i] = 0;

//Смотрим каждый элемент исходного массива
        for (i = 0; i < array.length; i ++)
        {
//Находим куда ставить элемент в выходной массив
            new_pos = random(array.length);
            
// Если ячейка в выходном массиве занята или вставляем элемент на ту же
// позицию - меняем позицию 
            while(new_pos == i || _array[new_pos]!=0)
            {
                new_pos++;
                if (new_pos>=array.length)
                   new_pos = 0;
            } 
            //Вставка элемента на место
            _array[new_pos] = array[i];
        }
   }
Помогли друзья Php-шники...
__________________
Если у Страха глаза велики, то какие они у Ужаса?..

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

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

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


 


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


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