![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2000
Адрес: YS
Сообщений: 117
|
Привествую!
Хочю сделать на Flash'e систему тестирования, таку простенкую, вопросов на 20. И как всегда, возник, вдруг откуда не возмись!!! вопрос!!! Предположим, я хочю чтобы вопросы задавалсь не по порядку, а скажем каждый раз при запуске хаотично! Конечно, Вы скажите, random() смотри.... Ну это понятно, а функция random, как работает? Впросы то могут повторяться, т.е. если сперва все идет как надо, то потом random выбрасывает на не нужный вопрос?! Правильно! Так вот вопрос в том, как избавиться от повторения при случайном вопросе? Наверно, тут нужен массив! Возможно эта тему уже публиковалась, Вы меня уж извините!!! Дайте тогда ссылку!!! ![]() Спасибо за внимание!!! |
|
|||||
|
Может, можно как-то лучше, но вот такой способ используется в криптосистеме RC4:
массив делать прийдется, допустим, это массив Quest [] с номерами вопросов по порядку: for (i=1; i<=20; i++) {Quest[i]=i;} А перемешиваются они так: for (i=1; i<=20; i++) {num=random(20); tmp=Quest[i]; Quest[i]=Quest[num]; Quest[num]=tmp; } |
|
|||||
|
myslish werno, a algoritm - shkol'niy
zavodish sebe massiv x[kol-vo voprosov] tmp=0 while tmp<kol-va elementov { y=math.round(math.random(kol-vo voprosov)) (y v massive uje imeetsia?) then {x[i]=y;tmp=tmp+1;} } vot i vse, na vihode - slu4. uporiado4enniy massiv ili ty hotel gotoviy skript?? ![]()
__________________
Knizhki umnie 4itat' nado(C) fil'm-detyam |
|
|||||
|
"Ниразу не флэшер"
|
вот скрипт. в свое время помучился (противно, что флэш команды goto не знает)
N=30; //кол. элементов for (i=0;i<N;i++){ oo1=0; while (oo1==0){ oo1=2;ooo=random(N); for (i1=0;i1<i;i1++) if (sToy[i1]==ooo)oo1=0;} sToy[i]=ooo; } на выходе в массиве sToy круто переменшанный список. А вопрос этот поднимался. кто-то из админов помещал прям прототип.
__________________
стучитесь в асю за дополнительной помощью.... ЗЫ: ПОИСК действительно рулит. |
|
|||||
|
Ну, вот, набросала, без повторения...
var width_but=50,x_but=200,y_but=200 a=["a","b","c","d","e"] _root.createEmptyMovieClip("b",1) b.moveTo(x_but,y_but) b.lineStyle(1,0) b.beginFill(0xFF0000) b.lineTo(x_but+width_but,y_but) b.lineTo(x_but+width_but,y_but+width_but) b.lineTo(x_but,y_but+width_but) b.lineTo(x_but,y_but) b.endFill() b.onRelease=function(){ z=[] z2=["a","b","c","d","e"] for (var i=0;i<a.length;i++){ n=random(z2.length) z.push(z2.splice(n,1)) } trace(z) }
__________________
----------------- Глава, последняя в этой истории: Добро побеждает Зло и наступает Happy End, но какой-то подозрительный! ---------------- |
|
|||||
|
Сорьки за тупые лайны) и т.п. MX - увлекает
![]()
__________________
----------------- Глава, последняя в этой истории: Добро побеждает Зло и наступает Happy End, но какой-то подозрительный! ---------------- |
|
|||||
|
Регистрация: Jun 2000
Адрес: YS
Сообщений: 117
|
Спасибо!!!
Очень большое!!!! Пойду юзать..... ![]() |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Какие-то коды у вас мрачные. Хы. Не факт, что у меня сильно светлый.
Допустим имеется массив вопросов Questions, тогда // перед новым опросом нужно сделать function Reset() { QRandom = (new Array()).concat(Questions); } // чтобы добыть случайный вопрос нужно function getQuestion() { var _result = "There's no more..."; if (QRandom.length > 0) { var _index = random(QRandom.length); _result = QRandom[_index]; QRandom.splice(_index, 1); } return _result; } Успехов ![]() Последний раз редактировалось DeliMIter; 21.03.2002 в 15:39. |
|
|||||
|
|
![]() |
Часовой пояс GMT +4, время: 20:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|