PDA

Просмотр полной версии : RANDOM


belyadeadweight
13.09.2009, 23:40
меня етсь тест. к примеру с 1 по 20 кадр. в нем несколько кнопок(варианты ответа). нужно чтобы после нажатия на кнопку анимация переходила на случайный вопрос т.е кадр, и в этом вопросе после нажатия кнопки нужно чтобы анимация переходила на случайный вопрос, но таким образом, чтоб ни один вопрос не повторился дважды, т.е. если я 20 раз нажму на кнопки я увижу 20 различных вопросов.
Я создаю массив, заполненный числами от 1 до 20 в случайном порядке, иберу значения из него.

var startArray:Array = [1, 2, 3, 4, ..., 20];

function shuffle(val1:Object, val2:Object):Number {
return Math.round(Math.random()*2)-1;
}
var randomizedArray:Array = orderedArray.sort(shuffle);
А вот что дальше? Помогите пожалуйста

mooncar
14.09.2009, 00:11
В ваш код не вникал.
По сути:
1. Сделайте второй массив, и туда заносите номера использованных вопросов.
При рандомном выборе нового вопроса делайте проверку по второму массиву - нет ли выбранного уже в использованных.

Или так:

2. Выбираете в первом массиве номер.
Берете индекс выбранного вопроса и под этим же индексом пишите во второй массив еденицу.
Потом, при следующем выборе проверяйте по взятому из первого массива индексу вопроса, нет ли по индексу с таким же номером, но во втором массиве, единицы. Если есть - дальше выбираете.
Если нет - берете вопрос.
И т.д.

Второй алгоритм лучше.

iNils
14.09.2009, 01:22
1. Название темы не раскрывает сути вопроса.
2. Для оформления своего кода надо использовать теги (http://www.flasher.ru/forum/showthread.php?t=122539)