Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Random без повторений (http://www.flasher.ru/forum/showthread.php?t=132613)

greenhill 16.11.2009 17:52

Random без повторений
 
Подскажите, пожалуйста, как правильно организовать рендом без повторений.
скажем 1,2,3,4,5 Чтоб все цифры были, а порядок рендомно менялся. Но не было повторений типа 1,1,2,3,5

VVall 16.11.2009 18:07

Если допустимо 1,2,1, то просто запоминайте предыдущее число и проверяйте новое на совпадение с предыдущим.

greenhill 16.11.2009 18:44

спасибо

aceton41k 31.03.2010 23:06

Подскажите пожалуйста как следующее:
имеется 10 клипов
в начальный момент времени загружается совершенно случайный клип (допустим 3), далее идет random с таким расчетом что случайно и только один раз за первым клипом начнут проигрываться остальные клипы (2,6,1,7,8,4,9,10,5), при этом ниразу не повторившись. Затем когда последовательность клипов кончится (нечего проигрывать). Все счетчики сбрасываются и проигрывание начинается заного с клипа, номер которого не повторяет номер последних 4-х проигранных клипов. Надеюсь понятно объяснил =)

udaaff 31.03.2010 23:30

Создайте массив со своими клипами. Перетасуйте его (поиск по shuffle array site:flasher.ru). Запомните предварительно ссылку на случайный клип не входящий в последнюю четверку. Далее, shift'ом выбирайте свои клипы из массива. После того, как закончатся, формируете новый массив из того элемента, который запомнили + остальные заново перетасованные. И поехали по новой с "Запомните предварительно ссылку..."

in4core 31.03.2010 23:34

Код AS1/AS2:

var arr = [c1,c2,c3,c4.....]; // набор клипов пихаем в массив
c1.play(); // ну допустим первый клип сразу включаем
function moveAndDelete() {
  // сдесь такая задача, думаю справитесь - каждый раз из массива arr запускается клип рандомно. Этот же клип удаляется из массива, а затем создается новый массив.
}
var t = setInterval(moveAndDelete,someTimeRepeat);


_SAM_ 01.04.2010 00:11

Я заполнял масив числами от 1 до н.
Делал рандом от 0 до длинны массива. Брал элемент массива с полученым чеслом, удалял его с массива. снова рандомил от о по новой длине.


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

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