Новаторская 2D Java игра?

Поскольку вопрос помечен как jQuery, вы можете использовать $.param() для уменьшенного объекта

var substr = [1, 2, 3, 4, 5, 6];

var query = $.param(substr.reduce((a,c)=> (a['url' + c]='',a),{}))

console.log(query)

[ 117]

13
задан Peter Mortensen 21 December 2016 в 23:28
поделиться

4 ответа

Вы действительно хотите A *, это оптимальная реализация для поиска пути на основе сетки.

Это может помочь вам :

http://www.cokeandcode.com/main/tutorials/path-finding/

РЕДАКТИРОВАТЬ: Предыдущая ссылка подходит как для реализуемого набора классов, так и в качестве руководства по настройке методы поиска пути для удовлетворения вашего удовлетворения.

10
ответ дан 1 December 2019 в 22:58
поделиться

Это самый информативный пост о поиске пути, который я когда-либо видел: http: / /www.ai-blog.net/archives/000152.html

4
ответ дан 1 December 2019 в 22:58
поделиться

Естественно, вы многое узнаете о поиске пути, если напишете собственную реализацию. Но вы также потратите много времени на это.

Посмотрите библиотеку JGraphT , которая работает с графами в целом, имеет хороший API и поддерживает больше алгоритмов кратчайшего пути, чем просто А *.

3
ответ дан 1 December 2019 в 22:58
поделиться

Книга AI для разработчиков игр имеет очень хороший объяснение A *. На самом деле я собирался написать реализацию сегодня ... если я это сделаю, я приведу здесь код.

Код готов, его здесь слишком много, поэтому его можно взять из: https://chaos.bcit.ca/svn/public/astar/ (самозаверяющий сертификат, но сервер не делает ничего плохого).

Я следовал псевдокоду в книге для большинства отчасти, но я сделал все гораздо более объектно-ориентированным, чем все, что я видел до сих пор для A *.

У вас есть лабиринт, который состоит из плиток. У каждой плитки есть местоположение и препятствие (ноль, если нет препятствий).

Вы можете использовать PathFinder (например, AStar), чтобы найти кратчайший путь между заданным начальным и конечным местоположением. Вы получаете путь назад, который включает в себя плитки, которые вам нужно пройти, чтобы пройти от начала до конца.

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

Код является лицензией в соответствии с LGPL, поэтому, если вы вносите изменения и распространяете приложение, вы должны сделать эти изменения доступными. Не стесняйтесь отправлять отчеты об ошибках / исправления на адрес электронной почты в комментарии к лицензии (находится в каждом заголовке).

Я (никогда не получал) комментировать его после экзаменов, но я думаю, что это довольно просто.

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

Код является лицензией в соответствии с LGPL, поэтому, если вы вносите изменения и распространяете приложение, вы должны сделать эти изменения доступными. Не стесняйтесь отправлять отчеты об ошибках / исправления на адрес электронной почты в комментарии к лицензии (находится в каждом заголовке).

Я (никогда не получал) комментировать его после экзаменов, но я думаю, что это довольно просто.

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

Код является лицензией в соответствии с LGPL, поэтому, если вы вносите изменения и распространяете приложение, вы должны сделать эти изменения доступными. Не стесняйтесь отправлять отчеты об ошибках / исправления на адрес электронной почты в комментарии к лицензии (находится в каждом заголовке).

Я (никогда не получал) комментировать его после экзаменов, но я думаю, что это довольно просто.

поэтому, если вы вносите изменения и распространяете приложение, вы должны сделать эти изменения доступными. Не стесняйтесь отправлять отчеты об ошибках / исправления на адрес электронной почты в комментарии к лицензии (находится в каждом заголовке).

Я (никогда не получал) комментировать его после экзаменов, но я думаю, что это довольно просто.

поэтому, если вы вносите изменения и распространяете приложение, вы должны сделать эти изменения доступными. Не стесняйтесь отправлять отчеты об ошибках / исправления на адрес электронной почты в комментарии к лицензии (находится в каждом заголовке).

Я (никогда не получал) комментировать его после экзаменов, но я думаю, что это довольно просто.

3
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: