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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2012, 22:12
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 1  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Код AS3:
if (device is Magnet)
{
      var magnetDevice: Magnet = device as Magnet;
      //Делаем что-то с магнитом или роботом
      //Подойти на расстояние действия магнита например, а затем use();
}
__________________
http://www.chessmax.ru

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Паттерн Мост. Тип манипулятора как раз и есть мост, предоставляющий реализацию абстракции "взаимодействие с объектом". Тут не Стратегия с тупым use(), относящимся только к манипулятору. Тут мост к соответствующему разделу логики взаимодействия, устанавливаемый при смене дивайса.

Добавлено через 15 минут
Абстрагируйте параметры взаимодействия, чтобы единообразно описывать любое.
Например, расстояние, на котором осуществляется взаимодействие.
Количество затрачиваемой энергии.
Результат - разрушение, нагрев, изменение положения, массы и т.п. – что произойдет с объектом?
Всю эту инструкцию можно хранить собственно в дивайсе в виде параметров. Если получится абстрагировать взаимодействие, то получится и возможность создавать новые плагинские девайсы и единообразно подключать их и использовать. Робот анализирует параметры, сравнивает их с ситуацией и задачей, и совершает необходимые действия – по вашему описанию, если расстояние до объекта не удовлетворяет параметрам, надо его сократить, и т.п.
__________________
Reality.getBounds(this);

Старый 03.04.2012, 12:31
Den_root вне форума Посмотреть профиль Отправить личное сообщение для Den_root Найти все сообщения от Den_root
  № 3  
Ответить с цитированием
Den_root

Регистрация: Feb 2012
Сообщений: 36
Wolsh
Т.е. создаем единый интерфейс-мост и его реализации выстрелить, подтянуть, закрыться и т.п.
Создаем интерфейс девайса и там делегируем наш мост, а так же добавляем абстрактные свойства такие как расстояние до объекта и т.п., а реализация будет работать с этими свойствами.
P.S. Даже если ответите утвердительно всё равно завалю еще тонной вопросов


Последний раз редактировалось Den_root; 03.04.2012 в 12:46.
Старый 03.04.2012, 13:52
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Смысл моего поста был в том, что надо подняться от руки к голове))) Абстрагировать один метод use() мало, так ведь? Дивайс влияет не только на то, как будет двигаться, выглядеть и действовать сам дивайс, но и на то, как будет вести себя робот.
1. Поведение робота в какие-то моменты учитывает, какой именно дивайс у него смонтирован.
Как это абстрагировать? "Мозг" робота должен учитывать при расчете поведения какие-то параметры дивайса. Например, что это armor, или это weapon, или это tool. Это и есть "робот знает, что у него есть пушка". Надо определиться, какие базовые типы могут быть – защита, оружие, инструмент. У них естественно подтипы – оружие ближнего боя или на расстоянии, или массового поражения, и т.д. Инструмент для механики, для микроэлектроники, для жарки картошки?
Мозг анализирует объект в поле "зрения" ина основании своей оснащенности определяет, может ли с этим объектом взаимодействовать. Таким образом дивайс ни о чем сам не думает за робота, а только предоставляет ему данные о себе, чтобы тот решил, стоит ли вообще вызывать use(), и надо ли перед этим что-то сделать (подойти поближе, сходить подзарядиться и т.п.)
__________________
Reality.getBounds(this);

Старый 03.04.2012, 18:46
Den_root вне форума Посмотреть профиль Отправить личное сообщение для Den_root Найти все сообщения от Den_root
  № 5  
Ответить с цитированием
Den_root

Регистрация: Feb 2012
Сообщений: 36
Wolsh
Не ну то, что нужно еще и роботу мозги править это мы ужу выяснили несколькими постами выше, вопрос в том как это грамотно обставить? Inet_PC приложил if/switch, вы вот в своем предыдущем посте Brige, но я не совсем понял как его можно присобачить под это дело.


Последний раз редактировалось Den_root; 03.04.2012 в 19:09.
Старый 03.04.2012, 20:35
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Inet_PC предполагает действие от дивайса, по сути – как использовать дивайс, а Вам (я надеюсь) надо сначала определиться, надо ли его использовать. Чтобы не стрелять по пулям и не магнитить врага. А эта тема как бы выходит за рамки дивайса. Дивайс только предоставляет свой тип в обычном свойстве, далее интеллект робота должен оценить ситуацию и полезность данной руки в этой ситуации. Если надо защищаться от пуль и левая рука предоставляет защитный дивайс, робот использует левую руку, а не правую с паяльником. Мост здесь потому, что Стратегией ( use(...?...) ) не ограничишься. Тут нет даже выбора контекста, в котором юзать. Рука не может поменять дивайс в зависимости от контекста, понятие контекста, а значит и стратегии, здесь бессмысленно. Здесь "метаконтекст", то есть – Мост, то есть контекст диктуется внешними для интеллекта условиями – в данном случае типом дивайса, который и составляет мост с защитным блоком интеллекта. То есть, когда нужна защита, защитный блок интеллекта обращается через мост к защитной руке, и на основе её инструкции строит защитное поведение.
Всё еще абстрактно? Надо больше конкретики о проекте наверное, чтобы говорить конкретнее. Да и западать конкретно на паттерн нет особого смысла, я просто хотел подчеркнуть что это не Стратегия, как предлагали товарищи выше. Здесь не просто выбор метода, здесь формирование поведения в зависимости от того, что на другой стороне моста, от инструкций дивайса.
__________________
Reality.getBounds(this);

Старый 03.04.2012, 20:35
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
if/switch при интерфейсе, как-то не очень хорошо.

Вот еще пара вариантов (правда может это одно и то-же).
1) use просто генерит какой-то объект (не обязательно визуальный), исходя из состояния робота (пулю, магнитную волну, щиток). Соответственно пулька улетает по своим делам. Магнитная волна тоже. Щиток "виснет" со стороны щита. А ребята с кем произошел соответствующий контакт сами думают. Поймал пульку - помер. Поймал волну - сдвинулся в сторону откуда она прилетела. Щиток взаимодействует только с пульками (там они сами "думают").

2) Отдаем в use информацию об окружающем мире, а инструмент уже сам решает что делать, исходя из состояния своего и хозяина.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 03.04.2012, 20:45
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
как бы алгоритм..
1. Событие - в поле зрения появился объект
2. Анализ объекта. Например, объект – Враг
3. Врага надо уничтожать. Анализ системы. Проверяем, есть ли Оружие.
4. Правая рука предоставляет оружие, можно нападать.
5. Задействуем интеллект атаки, передаем ему мост к дивайсу в правой руке.
6. Анализируем параметры оружия. Энергии достаточно для атаки. Расстояние слишком большое.
7. Приближаемся к врагу на расстояние по инструкции оружия
8. Анализируем оружие. Прицеливание требуется
9. Выполняем прицеливание
10. Производим выстрел
11. Анализируем оружие. Перезарядка требуется
12. Перезаряжаем
13. Анализируем состояние цели / результат атаки
и т. д.
__________________
Reality.getBounds(this);

Старый 06.04.2012, 00:26
Den_root вне форума Посмотреть профиль Отправить личное сообщение для Den_root Найти все сообщения от Den_root
  № 9  
Ответить с цитированием
Den_root

Регистрация: Feb 2012
Сообщений: 36
Wolsh
Итак, спустя пару дней, я кажется переварил несколько последних ваших постов.
Ни робот решает, что нужно сделать, что бы использовать дивайс. Он лишь сообщает дивайсу, что хочет его использовать и дивайс на основании параметров робота (можно, наверно отправить дивайсу ссылку на всего робота) сообщает ему что тот (робот) должен делать (подъехать поближе, развернутся и т.д.).

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Обе руки сразу, или как-то поочереди? ))))))
__________________
Reality.getBounds(this);

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

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

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


 


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


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