Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2010, 12:35   #1
Spooner
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 17
По умолчанию ИИ приведений. PacMan

Привет. Помогите пожалуйста. Не как не могу сделать, чтобы приведения свободно ходили по «лабиринту».
Я создал пару функций, чтобы проверять можно ли идти влево, вправо и т.д, если в том направлении нет стены. При перемещении приведения проверяю можно ли идти в направлении, если можно то иду в направлении(логично вроде ). Но не выходит. Как и что я делаю не правильно.

Практику поиска кратчайшего пути не предлагать. Т.к. при рандомном перемещении шансов на встречу игроков больше.
Spooner вне форума Ответить с цитированием
Старый 26.07.2010, 12:46   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Практику поиска кратчайшего пути не предлагать.
Почему ? По крайней мере их поведение на это очень сильно похоже.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 26.07.2010, 12:53   #3
Spooner
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 17
По умолчанию

Kotofff, не уверен, но мне кажется, что они рыскают по «лабиринту». Доходят до «поворота» он меняет направление.
Spooner вне форума Ответить с цитированием
Старый 26.07.2010, 13:36   #4
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

ну мы же тут не экстрасенсы! не можем гадать что у тебя тут не так
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 26.07.2010, 13:42   #5
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Знаете как выйти из лабиринта человеку?
Касаетесь правой рукой стены и идете не отрывая руки от стены. На перекрестках поворачиваете только на право. Вот и весь алгоритм. Так можно выйти из любого лабиринта, хоть путь и не всегда самый короткий. Такой же фокус можно провернуть и с левой рукой.
Вот и реализовывайте такую систему. При инициализации привидений, случайно задавайте им руку, которой они будут держаться стены... А на поворотах используйте ваши функции. Привидения должны ходить и обшаривать ваш лабиринт...
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 26.07.2010, 13:44   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я предлагаю алгоритм блуждания по горизонтали (только что придумал ). Смысл в том, что гадина ходит лево-право, до тех пор пока не найдет ближайший ход вверх-низ. Далее проверяется, если выполнить перемещение вверх-низ приблизиться ли тварь к игроку. Если да, то перемещаться, если нет (допустим есть возможность подняться наверх, а игрок на уровень ниже), то бродить дальше.
Цитата:
Привидения должны ходить и обшаривать ваш лабиринт...
Бр-р-р, слепые и однорукие приведения .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.07.2010, 13:48   #7
Spooner
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от D@rkD@iver Посмотреть сообщение
ну мы же тут не экстрасенсы! не можем гадать что у тебя тут не так
я не говорил найти у меня ошибку (без кода), я просил примерчик какой-либо подобной «ходьбы»… или на пальцах объяснить.
Spooner вне форума Ответить с цитированием
Старый 26.07.2010, 13:51   #8
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Бр-р-р, слепые и однорукие приведения .
Зато какие страшные)))
Ну а вообще да... Хотелось бы увидеть ваши функции... И как Вы двигаете привидения? У Вас имеется некий массив, в котором создается лабиринт? Поподробнее обрисуйте ситуацию...
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 26.07.2010, 13:56   #9
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Цитата:
Сообщение от Spooner Посмотреть сообщение
я не говорил найти у меня ошибку (без кода), я просил примерчик какой-либо подобной «ходьбы»… или на пальцах объяснить.
Как уже неоднократно упоминалось: самый логичный вариант, это строить граф и искать кратчайший путь... Тогда будет похоже на то, что привидения имеют глаза и уши))). Минусом можно считать то, что призраки собьются в кучу... А вообще ходить по лабиринту, и на перекрестке рандомно выбирать направления из доступных на данный момент...
К сожалению сейчас нет времени накропать пример...
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 26.07.2010, 14:01   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Этот пример описан в журнале форума ПРОграммист. Найти можно на procoder.info Там же можно найти класс графа реализующего алгоритм Дейкстры.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра - аналог Pacman Гром Gamedev - cоздание игр: Unity, OpenGL, DirectX 32 16.03.2012 22:34
Pacman Merkator Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 12.02.2011 13:58
Pacman Roll1n C++ Builder 1 28.05.2010 20:57
Пишу Pacman. Нужна помощь. AngelOfDeath Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 07.10.2008 14:34