Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перерписать скрипт javascript<->PHP (https://javascript.ru/forum/misc/37870-pererpisat-skript-javascript-php.html)

zondex 12.05.2013 01:03

Перерписать скрипт javascript<->PHP
 
Здраствуйте, ищу человека который бы помог переписать скрипт алгоритма поиска "Алгоритм А*" с явыскрипта на пхп. Я не прошу всю работу сделать за меня. Мои познания в яваскрипте несколько ограничены, и в процессе перевода с оригинального языка на пхп я столкнулся с некоторыми непонятными конструкциями(алгоритмами) .

Исходник скрипта http://www.mintdesign.ru/site/sample...js_a_star.html

Aetae 12.05.2013 02:01

А чем существующие php реализации плохи?

zondex 12.05.2013 04:22

Цитата:

Сообщение от Aetae (Сообщение 249957)
А чем существующие php реализации плохи?

я пробовал по этому туториалу http://www.policyalmanac.org/games/a...torial_rus.htm писать и даже получился условно рабочий алгоритм. Но у меня возникла проблема при переходе в локации, которая имеет вот такую форму.



Мой алгоритм разворачивается в обратную сторону. Тоесть идет оттуда откуда пришёл, вместо того что бы продолжать путь двигаясь справа налево. Провел не 1 час над решением пробемы.

Исходник моей реализации алгоритма А* по туториалу выше http://upwap.ru/3107462

Другие же варианты(которые я сумел найти в сети) написанные на РНР оказались менее эффективными по сранению с JS версией. В принципе я допилить с JS в PHP могу, мне требуется лишь помощь что бы разобраться с логическим пониманием некоторых конструкций написанных на JS.

Вот некоторые моменты из JS исходника, логику которых я не понимаю:

1)matrix[x][y] = {};
не понятная конструкция
2)get_random_cell = function(){ return...}
переменной присваивается резльтат работы ф-ии?
3)walls = [];
не понятная конструкция
4)for(i in walls)
не понятная конструкция, что значит in?
5)next = next || {}
не понятная конструкция
6)wave = {
cells : [top, left, bottom, right, topleft, topright, bottomleft, bottomright],
cost : function( next )
{
next = next || {}
return cell.x != next.x && cell.y != next.y
? 14 // diagonal
: 10 // normal
}
};

wave - это массив с вложенным массивом?

edison 12.05.2013 06:31

1 - объявляется массив $matrix['x']['y']=array();
2 - объявляется функция, имя переменной это название функции,почти тоже самое что и function get_random_cell (){} , но она объявляется только в тот момент когда эта часть скрипта отрабатывает, т.е нужно смотреть по коду как ее объявлять.
3 - опять массив
4 - перебор массива - foreach - i это key, а не value
5 - переменной присваивается next вернет true (т.е. если в ней что-то есть) или объявляется массив если переменная пустая
if(!$next)$next=array();
6 - многомерный ассоциативный массив где $wave['cells'] это вложенный массив, а $wave['cost'] функция, на пхп придется переписывать этот момент по другому и опять же функция объявляется в тот момент когда этот участок кода отрабатывает


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