Перерписать скрипт javascript<->PHP
Здраствуйте, ищу человека который бы помог переписать скрипт алгоритма поиска "Алгоритм А*" с явыскрипта на пхп. Я не прошу всю работу сделать за меня. Мои познания в яваскрипте несколько ограничены, и в процессе перевода с оригинального языка на пхп я столкнулся с некоторыми непонятными конструкциями(алгоритмами) .
Исходник скрипта http://www.mintdesign.ru/site/sample...js_a_star.html |
А чем существующие php реализации плохи?
|
Цитата:
![]() Мой алгоритм разворачивается в обратную сторону. Тоесть идет оттуда откуда пришёл, вместо того что бы продолжать путь двигаясь справа налево. Провел не 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 - это массив с вложенным массивом? |
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. |