Syabro 81 Опубликовано: 11 ноября, 2014 Давно не играл на этом проекте но решил выложить свой API. Это файлик с функциями для ComputerCraft. Сейчас он имеет: algLi2D(grid,ax, ay, bx, by) - волновой алгоритм для 2D карты algLi3D(grid,a, b ) - Beta test moovToCord(a,b, up) - как-то писал на форуме но удалили... ComputerCraft – Отправка робота на координаты X Y и Z getFuel(a,b ) - ComputerCraft – Отправка робота на координаты X Y и Z тут есть! easyScan2DMap(W_Size,H_Size) - сканирует поверхностно 2D карты сохраняя в формате algLi2D easyScan3DMap(x,y,z) - сканирует 3D карту, так-же поверхностно в формате algLi3D (beta test) tableSave(tbl,filename) - сохранение таблицы в файл (чтоб не искать) tableRead(filename) - чтение таблицы из файла Код Pastebin: 5B4tnUHA 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro Автор темы 81 Опубликовано: 11 ноября, 2014 Все офигенно! Я похоже рокал потому что пока я не помучаюсь с чем либо у меня ничего не выйдет, но если я долго мучаюсь то что-то по любому выходит! Так бета тест algLi3D и easyScan3DMap работают прелестно! вроде... остался последний тест с moovToCord. Получается все так: easyScan3DMap сканирует кубоид в карту для algLi3D, algLi3D проходит карту и передает 3 массива с координатами x,y и z для moovToCord. Одна проблема с координацией черепахи, но она решаема с помощью GPS так: side = 1 x,y,z = gps.locate(1) a{x,y,z,side} b{bx,by,bz} _,_,_,side = sapi.moovToCord(a,b) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro Автор темы 81 Опубликовано: 11 ноября, 2014 Просто блеск! Черепаха на ура справилась с трехмерным лабиринтом! Правда он пока на 5 слоя, просто очень долго сканирует черепаха! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro Автор темы 81 Опубликовано: 11 ноября, 2014 http-~~-//www.youtube.com/watch?v=PabvESaoJkM Показал работу программы if fs.exists("sapi") then os.loadAPI("sapi") end map = sapi.tableRead("map") local W = #map[1] local H = #map resp1,resp2,resp3,resp4 = sapi.algLi3D(map,{1,1,1},{15,17,1}) side = 1 if resp1 then for k=1,#resp2 do x,y,z = gps.locate(5) print(x..","..y..","..z.."->"..resp2[k]..","..resp3[k]..","..resp4[k].."|") a={x,y,z,side} b={resp2[k],resp3[k],resp4[k]} _,_,_,side = sapi.moveToCord(a,b) end end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro Автор темы 81 Опубликовано: 12 ноября, 2014 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro Автор темы 81 Опубликовано: 24 июня, 2015 Закрывайте тему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах