Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   случайный вопрос (http://www.flasher.ru/forum/showthread.php?t=28835)

Fiksa 20.03.2002 12:34

случайный вопрос
 
Привествую!


Хочю сделать на Flash'e систему тестирования, таку простенкую, вопросов на 20.
И как всегда, возник, вдруг откуда не возмись!!! вопрос!!!

Предположим, я хочю чтобы вопросы задавалсь не по порядку, а скажем каждый раз при запуске хаотично!
Конечно, Вы скажите, random() смотри....
Ну это понятно, а функция random, как работает?
Впросы то могут повторяться, т.е. если сперва все идет как надо, то потом random выбрасывает на не нужный вопрос?! Правильно!

Так вот вопрос в том, как избавиться от повторения при случайном вопросе?
Наверно, тут нужен массив!

Возможно эта тему уже публиковалась,
Вы меня уж извините!!!
Дайте тогда ссылку!!! :)

Спасибо за внимание!!!

Darina 20.03.2002 13:10

Может, можно как-то лучше, но вот такой способ используется в криптосистеме 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;
}

AZart.de 20.03.2002 13:15

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?? :D

Egoritch 20.03.2002 14:17

вот скрипт. в свое время помучился (противно, что флэш команды 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 круто переменшанный список.
А вопрос этот поднимался. кто-то из админов помещал прям прототип.

Sveta 20.03.2002 15:46

Ну, вот, набросала, без повторения...
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)
}

Sveta 20.03.2002 16:07

Сорьки за тупые лайны) и т.п. MX - увлекает ;)

Fiksa 21.03.2002 13:30

Спасибо!!!
Очень большое!!!!


Пойду юзать.....
:)

DeliMIter 21.03.2002 15:36

Какие-то коды у вас мрачные. Хы. Не факт, что у меня сильно светлый.
Допустим имеется массив вопросов 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;
}

Успехов :cool:

Darina 21.03.2002 18:53

:D :D :D Чем-то всё это напоминает:
http://slava.podolsk.ru/prog.php


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

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