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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
По умолчанию обхождение препятствий

дано:
игровое поле
по нему, по клеточкам(шестигранникам) ходит чел
как ему обойти препятствие?

чего я добился в решении данного вопроса.. сначала примитивными условиями я таки заставил его их обходить, но он не всегда выбирает кратчайший путь, тогда я решил, а проверю-ка я все варианты.
Все варианты я решил проверять при помощи хмл дерева, и все бы хорошо, НО уже на 7-ом шаге флэш предложил мне остановить выполнение скрипта - не мудрено, просчитать (3..6)^7 вариантов, и на том спасибо.
Сейчас у меня есть продолжения:
1 - доработать примитивные условия обхода, но как с их помощью обойти такое препятствие..
|---------
|. . . .[*] |
| . . . . . .|
| . -------
| . |
| . |-------
| . . . . . . .
|----------
..хотя в принципе условие можно написать для всего..

2 - использовать хмл дерево, но только для обхода препятствий, т.к на небольшие(препятствия) нужно мало шагов, а большие обрубят много веток (мало направлений куда можно идти). А ходить уже при помощи др. команд. Так я наверно и сделаю, но звучит сложновато, может есть еще какие-нибуть пути решения проблемы..
__________________
Пора бы мне уже умнеть..

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
http://en.wikipedia.org/wiki/Shortest_path_problem
А еще ключевые слова "алгоритм поиска пути", "алгоритм Дийкстры".
Если в двух словах - выглядит так, как будто из начальной и конечной точки выливаешь постепенно чернила, регистрируя "степень залитости", где встретятся - там и самый короткий путь. Но в любом случае, считать лучше не в флеше, особенно если карты большие, а препядствия сложные (не дай бог еще и цена передвижения по разным гексагонам разная - вообще повесится). Т.е. написать на С, например, а флешке просто выдавать результат, гораздо быстрее работать будет.
__________________
Hell is the possibility of sanity

Старый 12.09.2006, 21:02
Ноябрь вне форума Посмотреть профиль Отправить личное сообщение для Ноябрь Посетить домашнюю страницу Ноябрь Найти все сообщения от Ноябрь
  № 3  
Ответить с цитированием
Ноябрь
 
Аватар для Ноябрь

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
я не очень дружу с С, кроме него на чем можно писать, только в языке должен быть XML?
__________________
Пора бы мне уже умнеть..


Последний раз редактировалось Ноябрь; 12.09.2006 в 21:08.
Старый 12.09.2006, 22:06
Ekzi вне форума Посмотреть профиль Отправить личное сообщение для Ekzi Посетить домашнюю страницу Ekzi Найти все сообщения от Ekzi
  № 4  
Ответить с цитированием
Ekzi
 
Аватар для Ekzi

Регистрация: Jan 2006
Адрес: ННовгород
Сообщений: 1,242
Отправить сообщение для Ekzi с помощью ICQ Отправить сообщение для Ekzi с помощью Skype™
есть такой алгоритм A*, но он хорошо катит только на плитках(((
|---------
|. . . .[*] |
| . . . . . .|
| . -------
| . |
| . |-------
| . . . . . . .
|----------
хотя, это собственно и есть плитки...
__________________
Flash ещё не торт...

Старый 12.09.2006, 22:27
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 5  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
есть еще поиск, и тема обсуждалась =)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 13.09.2006, 01:47
Ноябрь вне форума Посмотреть профиль Отправить личное сообщение для Ноябрь Посетить домашнюю страницу Ноябрь Найти все сообщения от Ноябрь
  № 6  
Ответить с цитированием
Ноябрь
 
Аватар для Ноябрь

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
E.x.E. дай ссылку, т.к мои шестигранники от плиток практически не отличаются
__________________
Пора бы мне уже умнеть..


Последний раз редактировалось Ноябрь; 13.09.2006 в 04:08.
Старый 13.09.2006, 02:50
Ноябрь вне форума Посмотреть профиль Отправить личное сообщение для Ноябрь Посетить домашнюю страницу Ноябрь Найти все сообщения от Ноябрь
  № 7  
Ответить с цитированием
Ноябрь
 
Аватар для Ноябрь

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
оказывается хмл дерево для просчета вариантов можно заменить двумерным массивом, но правда если лишние цифры убирать(повторяющиеся) невозможно составить последовательность шагов, xml лучше..
Т.о написать такое можно на яве например (как я понял в яве нет xml), но чего я не пойму, так это почему флэш не может дальше 7-го шага просчитать, а ява сможет?
__________________
Пора бы мне уже умнеть..

Старый 13.09.2006, 03:40
Ноябрь вне форума Посмотреть профиль Отправить личное сообщение для Ноябрь Посетить домашнюю страницу Ноябрь Найти все сообщения от Ноябрь
  № 8  
Ответить с цитированием
Ноябрь
 
Аватар для Ноябрь

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
Волновой алгоритм является одним из самых уникальных алгоритмов трассировки. Он позволяет построить трассу(путь) между двумя элементами в любом лабиринте .

Из начального элемента распространяется в 4-х направлениях волна. Элемент в который пришла волна образует фронт волны.На рисунках цифрами обозначены номера фронтов волны.
Каждый элемент первого фронта волны является источником вторичной волны. Элементы второго фронта волны генерируют волну третьего фронта и т.д. Процесс продолжается до тех пор пока не будет достигнут конечный элемент.
На втором этапе строится сама трасса. Её построение осуществляется в соответствии со следующими правилами :

1) Движение при построении трассы осуществляется в соответствии с выбранными приоритетами.
При движении от конечного элемента к начальному номер фронта волны (путевые координаты) должны уменьшатся.


2) Приоритеты направления движения выбираются на стадии разработки. В зависимости от того какими задаются эти приоритеты получаются разные трассы, НО длина трассы в любом случае остается одной и той же.

Преимущества волнового алгоритма в том, что с его помощью можно найти трассу в любом лабиринте и с любым количеством запретных элементов (стен). Единственным недостатком этого алгоритма является, то что при построении трассы требуется большой объем памяти.

пс
кстати я почти догадался, когда решил из своего дерева убрать лишние ветки, сначала я заносил все ходы в массив и проверял при новом ходе его равность с занесенными, но такое дерево засохло в начале 3-го уровня, т.к уже все новые шаги были в массиве, тогда я убрал проверку массива и просто исключил шаг обратно(проверил прародителя), мысль что массив должен содержать только шаги предыдущих уровней у меня была, но после тестирования деревьев "без одинаковых шагов" и "без обратных шагов" мне показалось что лучше не будет и стало лень, а ведь тогда бы и получился этот волновой алгоритм если б не нашел сегодня завтра бы точно сделал
__________________
Пора бы мне уже умнеть..


Последний раз редактировалось Ноябрь; 13.09.2006 в 04:04.
Старый 14.09.2006, 14:04
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 9  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Цитата:
Сообщение от E.x.E.
есть такой алгоритм A*, но он хорошо катит только на плитках(((
|---------
|. . . .[*] |
| . . . . . .|
| . -------
| . |
| . |-------
| . . . . . . .
|----------
хотя, это собственно и есть плитки...
Согласен, А* - идеальный выбор для Flash.

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

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

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


 


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


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