Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.12.2011, 19:22
SCRIBE SCRIBE вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 6
Репутация: 10
Счастье Исследование карты! (Поиск пути)

Задача:

1. Есть карта, но проходимость каждой ячейки мы не знаем(например 15х15)
2. В ячейках есть только 4 пути, (вверх, вниз, влево, вправо).
3. Создать алгоритм прохождения всей карты не зная ее, с каждым перемещением узнаем куда можно а куда нельзя перейти, т.е. рисуется сама карта.

Стандартные алгоритмы не знаю как применить, так как там нужно заранее знать всю карту и потом уже искать кратчайший путь...
Ответить с цитированием
  #2  
Старый 28.12.2011, 19:32
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Муравей Лэнгтона?
Тут вам придется с машиной Тьюринга разбираться. В принципе тема довольно простая. Составляйте блок-схему алгоритма, а реализация - дело плевое.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 28.12.2011, 20:40
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Муравей же меняет карту, а тут нельзя.

Я такое же примерно делал для курсача, де игру надо было сделать. Алгоритм примитивный, зацикленный, то есть после последней команды выполняется первая:

Пока впереди свободно топать вперед.
Если справа свободно, повернуть направо. Перейти на первую команду.
Если слева свободно, повернуть налево. Перейти на первую команду.
Повернуть направо
Повернуть направо.
Ответить с цитированием
  #4  
Старый 28.12.2011, 20:53
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Пока впереди свободно топать вперед.
Если справа свободно, повернуть направо. Перейти на первую команду.
Если слева свободно, повернуть налево. Перейти на первую команду.
Повернуть направо
Повернуть направо.
Такой алгоритм может легко зациклиться.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 02.05.2013 в 00:28.
Ответить с цитированием
  #5  
Старый 28.12.2011, 21:17
SCRIBE SCRIBE вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 6
Репутация: 10
По умолчанию

Мне надо чтобы програма побывала на всех клетках! Прошла всю карту!

+ чтоб програма не блудила по карте на рандоме(это займет много времени), а старалась по тем же ячейкам не ходить!

Условие: на карте не может недоступных ячеек, т.е. к каждой ячейке можно пройти, просто пути разные.

Последний раз редактировалось SCRIBE, 28.12.2011 в 21:25.
Ответить с цитированием
  #6  
Старый 28.12.2011, 21:24
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Цитата:
Такой алгоритм может легко зациклиться.
Я знаю, но этого хватает для целей игры
Ответить с цитированием
  #7  
Старый 28.12.2011, 21:41
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от SCRIBE
... а старалась по тем же ячейкам не ходить! ...
А вот это как раз, не самое простое. Пусть уж ходит дважды-трижды по одной клетке, но зато алгортм прохождения упрощается.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #8  
Старый 28.12.2011, 22:58
SCRIBE SCRIBE вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 6
Репутация: 10
По умолчанию

вы навели меня на мысль, приблизительно понял нужный алгоритм, как реализую тут отпишу...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter