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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Jun 2009
Сообщений: 61
По умолчанию Как упорядочить стек фишек при добавлении фишки

В казино рулетки есть стек из фишек, который формируется добавлением фишек. Подскажите, как сортировать фишки в стеке при добавлении каждой фишки по номиналу ?

Старый 26.12.2012, 08:05
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 2  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Array.sort с кастомной сравнивающей функцией

Старый 26.12.2012, 08:20
stflasher вне форума Посмотреть профиль Отправить личное сообщение для stflasher Найти все сообщения от stflasher
  № 3  
Ответить с цитированием
stflasher

Регистрация: Jun 2009
Сообщений: 61
Применяю и нифига не получается. Может что не так делаю.
Код AS3:
 
numStack[sumNum][8].sort();
for (var p2:int = 0; p2<mc.numChildren; p2++) {
 mc.removeChildAt(0)				
}			
 
for (var p1:int = 0; p1 < numStack[numberCeil][8].length; p1++) {
 mc.addChild(numStack[numberCeil][8][p1])
}

Старый 26.12.2012, 10:28
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
stflasher, читать хэлп по Array.sort.
__________________
hauts.ru

Старый 26.12.2012, 11:15
stflasher вне форума Посмотреть профиль Отправить личное сообщение для stflasher Найти все сообщения от stflasher
  № 5  
Ответить с цитированием
stflasher

Регистрация: Jun 2009
Сообщений: 61
Код работает, но там почему-то не очищается поле как надо и смещение идёт при добавлении фишек.

Старый 26.12.2012, 11:39
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Потому что код не верный. Итератор в цикле возрастает, а количество фишек уменьшеается. Меня удивляет как это вообще работает и не выкидывает ошибку (хотя, что-то мне подсказывает, что ошибка все-таки вылетает).

Лучше написать так для очистки:
Код AS3:
while (mc.numChildren) {
   mc.removeChildAt(0);
}
или же для 11 плеера просто
Код AS3:
mc.removeChildren();

Старый 26.12.2012, 12:16
stflasher вне форума Посмотреть профиль Отправить личное сообщение для stflasher Найти все сообщения от stflasher
  № 7  
Ответить с цитированием
stflasher

Регистрация: Jun 2009
Сообщений: 61
Нее. Ошибку не выдаёт, но криво написано. Понял почему.Спасибо

Старый 26.12.2012, 16:28
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
1. Удалять объекты не нужно
Можно просто по-порядку вставлять в нужный индекс
2. Сортировать не нужно
При добавлении фишки идем с конца в начало и сравниваем значение - перестало быть > или < (в зависимости от того в какую сторону сортируем) - останавливаемся и делаем addChildAt

Может здесь не критично, но при лишнем вызове addChild или addChildAt и т.д. объект попадает в область отрисовки, хотя он инкуда не двигался, а если вызывать эти методы только у перемещаемого объекта - область перерисовки останется небольшой.

Старый 27.12.2012, 02:33
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
> При добавлении фишки идем с конца в начало
Нет, идем всередину и с шагом уменьшающимся вдвое каждый раз идем или вправо или влево, взависимости от того, было ли значение больше или меньше. Но это если мы предполагаем, что в массиве есть незаполненные промежутки. Как я понимаю, промежутков незаполненных быть не может, т.как фишек всегда постоянное количество. Т.е. тут просто addChildAt один хватит.

Или, если фишки нужно сначала рандомально перемешать, а потом сортировать, тогда наверное имеет смысл всех удалить, отсортировать и всех добавить обратно, т.как если реализовывать сортировку самому, то добавлений и удалений из списка отображения получится больше, а это затратная операция.
__________________
Hell is the possibility of sanity

Старый 28.12.2012, 18:21
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 10  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Нет, идем всередину и с шагом уменьшающимся вдвое каждый раз идем или вправо или влево, взависимости от того, было ли значение больше или меньше.
Это если других вариантов нету, потому что это сложно.

Цитата:
Но это если мы предполагаем, что в массиве есть незаполненные промежутки. Как я понимаю, промежутков незаполненных быть не может, т.как фишек всегда постоянное количество. Т.е. тут просто addChildAt один хватит.
Идем мы чтобы сравнивать, а не что-бы что-то двигать. Не понимаю, причем здесь отсутствие промежутков, хотя, какая разница - тема наверно уже не актуальна.

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

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

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


 


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


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