Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VB6]Построение карты и минимального пути 
:(
    Опции темы
manuntd
Дата 10.3.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.3.2010

Репутация: нет
Всего: нет



Помогите пожалуйста, нужно написать прогу по построению карты и нохождения минимального пути от одной точки до другой. Очень надо. На VB6. Буду благодарен хоть за любые кусочки этой проги.
PM MAIL   Вверх
alex77755
Дата 10.3.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



Что имеется в виду под построением карты?
Сколько задано точек, как. Координатами? На карте?

PM MAIL   Вверх
alex77755
Дата 10.3.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



Цитата

Буду благодарен хоть за любые кусочки этой проги. 

Ну вот тебе начало:
Код

Option Explicit
Dim T()
Private Sub Комманда1_Click(Index As Integer) ' обнуляем точки
Dim I
For I = 0 To П.Count - 1
П(I).Value = 0
Next I
End Sub

PM MAIL   Вверх
manuntd
Дата 10.3.2010, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.3.2010

Репутация: нет
Всего: нет



Цитата(alex77755 @ 10.3.2010,  17:19)
Цитата

Буду благодарен хоть за любые кусочки этой проги. 

Ну вот тебе начало:
Код

Option Explicit
Dim T()
Private Sub Комманда1_Click(Index As Integer) ' обнуляем точки
Dim I
For I = 0 To П.Count - 1
П(I).Value = 0
Next I
End Sub

спс

Добавлено через 1 минуту и 38 секунд
Цитата(alex77755 @ 10.3.2010,  16:41)
Что имеется в виду под построением карты?
Сколько задано точек, как. Координатами? На карте?

Просто поставить точек 10 какие нибудь ограждения между ними и все найти минимальный путь от одной до другой точки
PM MAIL   Вверх
alex77755
Дата 10.3.2010, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



Всё равно непонятно. Между какими двумя? Или просто попарно между всеми точками, но с условием препятствий?
Если произвольно расставлять точки и прептствия - бред получитсяю Точки могут оказаться рядом и без препятствий. Значит надо самому расставлять хотя бы точки, а препятствия можжно накидать рандомно. или тоже самому. Но в любом случае вариант с объездом препятствий значительно усложняет задачу.
Вряд ли кто захочет делать её за так  
PM MAIL   Вверх
manuntd
Дата 10.3.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.3.2010

Репутация: нет
Всего: нет



Цитата(alex77755 @ 10.3.2010,  19:08)
Всё равно непонятно. Между какими двумя? Или просто попарно между всеми точками, но с условием препятствий?
Если произвольно расставлять точки и прептствия - бред получитсяю Точки могут оказаться рядом и без препятствий. Значит надо самому расставлять хотя бы точки, а препятствия можжно накидать рандомно. или тоже самому. Но в любом случае вариант с объездом препятствий значительно усложняет задачу.
Вряд ли кто захочет делать её за так

Сделай как получится как тебе удобно.
PM MAIL   Вверх
Sanaff
Дата 11.3.2010, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: -1
Всего: 1



Цитата(manuntd @ 10.3.2010,  14:13)
Помогите пожалуйста, нужно написать прогу по построению карты и нохождения минимального пути от одной точки до другой.

Самый лучший алгоритм для такого - волновой алгоритм обхождения препятствий. Сам алгоритм найти легко. реализовать сложнее)) Действительно, за так делать вряд ли будут. Я могу взяться. 
ICQ 373-628-456

Добавлено через 5 минут и 26 секунд
______Обход препятствий: волновой алгоритм_______
прокладка маршрута по карте с препятствиями

Суть его в том, что для поиска пути используется принцип расходящихся на воде кругов от брошенного в воду камня. При этом для повышения эффективности работы алгоритма применяется принцип обратной трассировки. Поиск пути ведется из точки финиша в точку старта.
     Волновой алгоритм очень прост.
Переходим из клетки в клетку, считая длину пути от нее до точки начала расчета. В точку старта помещаем единицу. Это - начало пути. Почему не ноль? Потому что нолями преед началом расчета заполняются все точки нашей карты. Препятствия (стены) заполнены некими заранее заданными значениями, например -1. Впрочем, подойдет любое число, заведомо отличимое от пустой клетки.
На следующем шаге осматриваем соседние клетки, на которые можно перейти. Их не больше четырех: по одной клетке справа, слева, сверху и снизу. Перейти можно на поля, не занятые препятствиями и не пройдеными на одном из предыдущих шагов. В нашем примере Это поля, в которых записан ноль. Если такие поля находятся среди соседей клетки, мы пишем в них расстояние от исходной точки расчета. На втором шаге это расстояние будет равно двум. На нашейкарте такая клетка всего одна, поскольку точка начала расчета (точка финиша для искомого пути, помним про обратную трассировку!) расположена в "кармане". 
 
После этого поочередно для каждой изученной на предыдущем шаге клетки ищем незанятые соседние клетки, в которые заносим следующее значение длины пути, в нашем примере тройку. Таким образом, с каждым шагом мы заполняем все большее и большее число клеток, расширяя границу изученной территории. Для точки "3" уже есть две клетки-соседкиа, в каждую из которых мы пишем знкачение "4", поскольку в каждую можно попасть из точки начала расчета за 4 шага. Для клетки "5" соседей тложе два, а вот для клетки "6" уже находится три соседние клетки, в каждую из которых помещаем значение "7". 

Расчет заканчивается, когда мы приходим в точку цели. После этого, пользуясь простым правилом перехода на клетку с меньшим значением, мы, двигаясь из точки нашего старта (в ней, кстати, будет значение, равное длине нашего пути!) в точку финиша, в которой будет значение "1".

--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.