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

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

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

Регистрация: Sep 2001
Адрес: Moscow
Сообщений: 72
Отправить сообщение для MbICH с помощью ICQ
По умолчанию random numbers или про массивы

проблема, нужно чтото типа жеребъевщика, задаеш число, он генерирует числа от 1 до этого числа

проблема в том чтобы эти чистла не повторялись

не знаю че делать, помогите

вот что получилось, пока сделал толлько чтбы в паре чисел не было повторов, кароче смотрите сами, исходник там же ъ
вот она
или с массивами,думаю это дело нужно делать с ними))
Вложения
Тип файла: zip 1.zip (57.8 Кб, 73 просмотров)
__________________
быстрее сюда

Старый 10.02.2002, 16:51
[subway]design вне форума Посмотреть профиль Отправить личное сообщение для [subway]design Посетить домашнюю страницу [subway]design Найти все сообщения от [subway]design
  № 2  
[subway]design
 
Аватар для [subway]design

Регистрация: Oct 2001
Адрес: в Петербурге
Сообщений: 2,430
По умолчанию чтоб цифры не повторялись...

RANDOMIZE

(qBasic рулит!)
__________________
subway.net.ru

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

Регистрация: Sep 2001
Адрес: Moscow
Сообщений: 72
Отправить сообщение для MbICH с помощью ICQ
По умолчанию RANDOMIZE

а поподробнее?
__________________
быстрее сюда

Старый 10.02.2002, 19:02
[subway]design вне форума Посмотреть профиль Отправить личное сообщение для [subway]design Посетить домашнюю страницу [subway]design Найти все сообщения от [subway]design
  № 4  
[subway]design
 
Аватар для [subway]design

Регистрация: Oct 2001
Адрес: в Петербурге
Сообщений: 2,430
это шутка была...

а что бы не повторялись - делай цикл-проверку. У меня сейчас времени нет, пример не смогу дать.
__________________
subway.net.ru

Старый 10.02.2002, 20:48
MbICH вне форума Посмотреть профиль Отправить личное сообщение для MbICH Посетить домашнюю страницу MbICH Найти все сообщения от MbICH
  № 5  
MbICH

Регистрация: Sep 2001
Адрес: Moscow
Сообщений: 72
Отправить сообщение для MbICH с помощью ICQ
По умолчанию не пойдет

a1 = random(b)+1;
c1 = random(b)+1;
if (a1 == c1) {
a1 = random(b);
}

если так, то можно сделать чтобы в паре не повторялиь, а мне нада чтобы все числа были разные, думаю больно большой код получится) если чисел 20 или 30они все равно повторяются)
__________________
быстрее сюда

Старый 10.02.2002, 22:21
Хрюндик вне форума Посмотреть профиль Отправить личное сообщение для Хрюндик Посетить домашнюю страницу Хрюндик Найти все сообщения от Хрюндик
  № 6  
Хрюндик
 
Аватар для Хрюндик

Регистрация: Sep 2000
Сообщений: 326
Отправить сообщение для Хрюндик с помощью ICQ
//init part(add to the first frame!)
max = 26;//number
used = [];
//main part
number = random(max)+1;
for(var some in used){
if(used[some] == number) {
it_used = 1;
break;
}
}
if(it_used != 1){
trace(number);
used.push(number);
}
it_used = null;

должно работать, но не проверял....
__________________
Флэш - это искусство(читай издевательство)

Старый 11.02.2002, 03:06
valeris вне форума Посмотреть профиль Отправить личное сообщение для valeris Найти все сообщения от valeris
  № 7  
valeris
 
Аватар для valeris

Регистрация: Jan 2002
Адрес: Kiev
Сообщений: 174
Отправить сообщение для valeris с помощью ICQ
Мой вариант:

max=30;
function order (a, b) {
var name1 = random(max)+1;
var name2 = random(max)+1;

if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}


r=new Array();

for (n=0; n<max; n++){ r[n]=n+1 };

r.sort(order);
r.sort(order);
r.sort(order);
r.sort(order);
r.sort(order);

Старый 11.02.2002, 08:27
ish вне форума Посмотреть профиль Отправить личное сообщение для ish Посетить домашнюю страницу ish Найти все сообщения от ish
  № 8  
ish

Регистрация: Sep 2000
Адрес: :)
Сообщений: 2,374
Отправить сообщение для ish с помощью ICQ
вобще говоря, мне часто приходилось сталкиваться с подобными задачами, поэтому я давно для себя написал универсальный класс.

Код:
Object.prototype.RND=function(obj) {
this._rnd=new Array();
this._obj=obj;
this.randomize=function() {
if(this._obj!=undefined&&this._obj.__proto__==Array.prototype) {
delete this._rnd;
this._rnd=new Array();
var len=this._obj.length;
this.length=len;
for(var i=0;i<len;i++) {
this._rnd[i]=this._obj[i];
}
}
}
this.random=function() {
var len=this._rnd.length;
this.length=len;
if(len!=0) {
var n=random(len);
var temp=this._rnd[len-1];
this._rnd[len-1]=this._rnd[n];
this._rnd[n]=temp;
return this._rnd.pop();
} else {
return null;
}
}
ASSetPropFlags(this,null,7);
this.randomize();
}
все что нужно вставить в первый кадр ролика.

значит как работать, все просто:
есть массив со значениями, которые необходимо случайно выбирать с условием уникальности выбора. притом что значения массива могут быть любого типа :)
ну например:
values=["string",2,3,6,7,"c",8];

далее создаем обьект:
myRandom=RND(values);

для случайного и уникального выбора значения:
myVar=myRandom.random();

когда выбор будет исчерпан, функция будет возвращать null

для восстановления набора значений:
myRandom.randomize();

узнать сколько осталось "нетронутых" значений:
myRandom.length

пример:
Код:
values=[1,2,3,4,5,6,7,8,9];
trace("-== 1-st set ==-");
myRandom=new RND(values);
while(myRandom.length) {
trace(myRandom.random());
}
trace("-== 2-st set ==-");
myRandom.randomize();
while(myRandom.length) {
trace(myRandom.random());
}
:)


Последний раз редактировалось ish; 11.02.2002 в 08:30.
Старый 11.02.2002, 10:15
ish вне форума Посмотреть профиль Отправить личное сообщение для ish Посетить домашнюю страницу ish Найти все сообщения от ish
  № 9  
ish

Регистрация: Sep 2000
Адрес: :)
Сообщений: 2,374
Отправить сообщение для ish с помощью ICQ
звиняйте, в сорс вкралась ошибка :)
тут правильно
Код:
Object.prototype.RNDGenerator=function(obj) {
this._rnd=new Array();
this._obj=obj;
this.randomize=function() {
if(this._obj!=undefined&&this._obj.__proto__==Array.prototype) {
delete this._rnd;
this._rnd=new Array();
var len=this._obj.length;
this.length=len;
for(var i=0;i<len;i++) {
this._rnd[i]=this._obj[i];
}
}
}
this.random=function() {
var len=this._rnd.length;
if(len!=0) {
var n=random(len);
var temp=this._rnd[len-1];
this._rnd[len-1]=this._rnd[n];
this._rnd[n]=temp;
var out=this._rnd.pop();
this.length=this._rnd.length;
return out;
} else {
return null;
}
}
ASSetPropFlags(this,null,7);
this.randomize();
}
Код:
myRandom=new RNDGenerator([1,2,3,4,5,6,7,8,9]);

trace("-== 1-st set ==-");
while(myRandom.length) {
trace(myRandom.random());
}

myRandom.randomize();

trace("-== 2-nd set ==-");
while(myRandom.length) {
trace(myRandom.random());


Последний раз редактировалось ish; 11.02.2002 в 10:17.
Старый 11.02.2002, 11:15
Fisher вне форума Посмотреть профиль Отправить личное сообщение для Fisher Найти все сообщения от Fisher
  № 10  
Fisher

Регистрация: Oct 2000
Адрес: Ukraine Lugansk
Сообщений: 852
Отправить сообщение для Fisher с помощью ICQ
Хочу тоже поучаствовать Класов правда не сподобил, но два кусочка положу
Просто случайное число с проверкой чтоб подряд не шли.
do {
new=random (n);
} while (new==old);
old=new;

А вот это интересный кусосочек - просто от сердца отрываю Создает псевдослучайный массив.

ar=[];
for (i=0; i<20; ++i) {
ar.splice(random (10),0,i);
}
trace (ar);

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

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

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


 


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


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