Проблема с отбором.

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Проблема с отбором.

Сообщение wapifz » 30 апр 2014, 19:59

Всем привет. Пишу небольшое приложение для детей (попросили по учебе). Столкнулся с проблемой. Попробую объяснить коротко.

Приложение - что-то вроде "Кто хочет стать миллионером". Дается 6 вариантов ответа. 1 из них правильный - остальные 5 выбираются рандомным образом. Все варианты ответа берутся из одного массива.

Сделать так, чтобы правильный ответ не попадался в нескольких ячеек одновременно я смог. А вот сделать так, чтобы другие варианты не повторялись среди остальных - проблема.

Как быть? Может быть кто подскажет? Буду ну очень признателен ;) Если нужен полный исходник - скину полный.

  1.  
  2. //_trueButton - номер кнопки правильного ответа (все кнопки в массиве)
  3. //_btns - массив, в котором хранятся кнопки.
  4. //AnimalsList.ANIMALS_EASY - массив, в котором хранятся варианты ответа
  5.  
  6. private function randomButtons(_trueButton: Number, _btns: Array): void {
  7.             _btns[_trueButton].label = AnimalsList.ANIMALS_EASY[currentAnimal - 1].animalName; // сразу пишу правильный ответ на правильной кнопке   
  8.             for (var i:int = 0; i<_btns.length; i++){
  9.                 if (i != _trueButton){
  10.                     var rand:Number = Math.floor(Math.random()*AnimalsList.ANIMALS_EASY.length);
  11.                     _btns[i].label = AnimalsList.ANIMALS_EASY[rand].animalName;
  12.                     trace ("rand"+rand);
  13.                 }
  14.             }
  15.             trace("=====");
  16.         }
  17.  
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Проблема с отбором.

Сообщение alexandr_ratush » 30 апр 2014, 21:25

Привет!
Я бы перемешал массив с ответами, и выбрал бы первые элементы сколько мне нужно.
Вот пример перемешивания:
  1. var arr : Array = [0,1,2,3,4,5,6,7,8,9];
  2.  
  3. function randomize ( a : *, b : * ) : int {
  4.     return ( Math.random() > .5 ) ? 1 : -1;
  5. }
  6.  
  7. trace( arr.sort( randomize ) );


Далее просто копируем часть массива, к примеру 4 ответа, и все:

За это сообщение автора alexandr_ratush поблагодарил:
wapifz
Аватара пользователя
alexandr_ratush

 
Сообщения: 94
Зарегистрирован: 05 мар 2014, 21:47
Откуда: Ukraine
Благодарил (а): 2 раз.
Поблагодарили: 25 раз.

Re: Проблема с отбором.

Сообщение wapifz » 30 апр 2014, 22:00

Массив с ответами - статический. Его вроде как перемешать не удастся.

Если честно - не очень понял ваш код. Можете немного подробнее?
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

Re: Проблема с отбором.

Сообщение alexandr_ratush » 30 апр 2014, 22:58

Массив с ответами - статический. Его вроде как перемешать не удастся.

Тогда скопируйте его :) . Тут читать.

Вот набросал пример работы (писал в кадре). Киньте на сцену кнопку.
  1. import flash.events.MouseEvent;
  2.  
  3. // Предположим что это статический массив
  4. var answerArrayStatic:Array = ["one", "three", "two", "four", "five", "six"];
  5.  
  6. // Копируем массив
  7. var copyAnswer:Array = answerArrayStatic.slice();
  8.  
  9. // Вывод в трейс 4 случайных эллемента массива
  10. function getRandomValue():void {
  11.     var randomValue:Array;
  12.    
  13.     // Перемешиваем массив
  14.     copyAnswer.sort(randomize);
  15.    
  16.     // Копируем первые 4 эллемента, и выводим
  17.     randomValue = copyAnswer.slice(0, 4);
  18.     trace(randomValue);
  19. }
  20.  
  21. // Служебная ф-ция для сортировки массива
  22. function randomize(a:*, b:*):int {
  23.     return (Math.random() > .5) ? 1 : -1;
  24. }
  25.  
  26. // Кнопка на сцене btnRes
  27. btnRes.addEventListener(MouseEvent.CLICK, onClick);
  28. function onClick(e:MouseEvent):void {
  29.     getRandomValue();
  30. }
  31.  

За это сообщение автора alexandr_ratush поблагодарил:
wapifz
Аватара пользователя
alexandr_ratush

 
Сообщения: 94
Зарегистрирован: 05 мар 2014, 21:47
Откуда: Ukraine
Благодарил (а): 2 раз.
Поблагодарили: 25 раз.

Re: Проблема с отбором.

Сообщение wapifz » 30 апр 2014, 23:05

Спасибо большое :) помогли
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.


Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1