Leroki
-
Публикации
18 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Сообщения, опубликованные пользователем Leroki
-
-
-
там на c#, JavaScript, и еще чемто писать скрипты можноПока только C# и JavaScript, в будущих версиях обещают C++, но С++ там какой-то замороченный
Cryengine скрипты на lua
cryengine довольно прожорливый движок, и если уж использовать что-то мощное, то тогда лучше unreal engine
-
Я за Unity и c# т.к. у меня есть опыть и там и там, и в сети куда больше руководств и туториалов именно по этой связке, плюс юнити относительно легко позволяет создавать кроссплатформенное приложение.
-
Таблица для пяти мусорных предметов не займет много памяти. А периодическое стандартное сравнение слотов всяко быстрее проверки ВСЕХ мусорных слотов на КАЖДОЙ итерации. Делов-то: Изменился слот – сравниваем с мусором, и если требуется, чистим и новый слот и слот с образцом.
Окей, т.к. я разобрался с сжиманием файла, то сделаю это, и проверку на блок перед роботом руки теперь чуть более развязаны. -
А в шапке сайта сжималка не кошерная?Чтож он так запрятан? Сразу и не поймешь что это выпадающее меню.
ps: минификатор в шапке сжал на 150 байт лучше, значит есть куда двигаться, но для меня удобнее скрип, т.к. не надо копировать вставлять
-
Написал уменьшалку, правда пока без замены переменных, но и сейчас результат хороший уменьшил с 4 083 байт до 2 182 байт.
Не знаю в какой раздел её закидывать, так что пока тут.
Это простой скрипт для питона:
Запуск:
python luaSmaller.py 'абсолютный путь к файлу' (без кавычек)
по завершению выдаст 'done' и файл в тойже директории с припиской -small.lua
PS: Программа не тестировалась на Windows, кто может протестить отпишитесь, какие косяки вылезли, я исправлю
Скрипт:
https://www.dropbox.com/s/qzk7wj0ifm9e77c/luaSmaller.py?dl=0
-
Можно удалить комменты. Или склонировать прогу. Пробелы вроде тоже память едят. Если я прав то можно кирпичом программировать. Можно всякие переменные типо "robot" заменить на "r". Конечно глаза будут страдать, но зато будет крутая прога.
Полазив по сети, не нашел программы которая может сжимать lua код, поэтому решил написать свою на питоне, сегодня (завтра) выкачу, в планах изменение одинаковых переменных на одно - дву буквенные сочетания, удаление всех коменатариев, отступов
-
1
-
-
Не знаю. У меня на сервере всегда были проблемы с действиями робота. Он то не двигался, то не ломал. Даже не мог поставить блок иногда. Пришлось все стандартные функции заменить. Я тестил на скае. Задержки и прочее не помогало. Мне кажется в сингле таких проблем не должно быть.Потестить бы на сервере, но для усовершенствования осталось мало места программа занимает 4 083 байта из 4092, надо уменьшать код.
-
Но сама кирка слишком быстро ломается.
-
Добавил, скрины с примером работы.
Пример работы робота:
https://www.dropbox.....40.42.png?dl=0
https://www.dropbox.....40.51.png?dl=0
PS: Робот плохо работает с эндер-киркой, мусор летит в ящик.
-
Не знаю как там на робике, но если ни эндер кирки,ни АЕ,ни прочей ерундистики в таком роде не будет,копалка будет (почти) полностью бесполезной?
Что по твоему нужно добавить, что-бы "копалка" была полезной?
PS: есть какие-нибудь сжиматели lua кода, хочу прикрутить систему навигации, но места под нее не хватает.
-
depth = depth - (depth % 3)Спасибо!
-
Тут две подзадачи, требующие оптимизации: найти слоты – изменившийся и соответствующий ему мусорный.
Первую я бы решил так:
-- очистить очередь сигналовwhile computer.pullSignal(0)do end-- добыть блокrobot.swing(3)-- пропустить сигналы кроме нужногоrepeat ev,slot=computer.pullSignal(0) until not ev or ev=="inventory_changed"-- новый предмет в [slot]?if ev=="inventory_changed" then ...
При наличии контроллера инвентаря быстрее всего будет получить номер мусорного слота из таблицы по имени предмета.смысл программы работать на eeprom, при минимальной комплектации робота, таблица предметов может потенциально привести к переполнению памяти и просто не влесть в память eeprom, на 1 планке ОП 1 уровня, а "аналоговая" проверка блоков работает медленнее (это надо еще проверить), но позволяет сделать фильтр довольно таки большой (если стоит достаточно улучшений на инвентарь).
-
1) По поводу сыпучих блоков, только что все проверил (в сингле, т.к. на сервере нет возможности проверить) ни чего не тупит, робот работает исправно, проблем не замечено. А вот с обсидианом будут проблемы если если не дать роботу инструмент который разрушит этот блок.
2) Проверка изменившегося слота, и соответственно считать его мусорным, тут может быть потенциальная проблема защитывания в мусорный слот руды выкопаной при движении вперед, т.к. нет проверки при движении вперед, он бы тогда еще дольше копал. (если робот не сломает блок или не сдвинется, то это не сломает всю программу, просто немного сдвинет робота от изначальной точки)
3)
while (deepM % 3) ~= 0 do deepM = deepM - 1 endПроверка на дурака, как её сделать короче, не нагородив if'ов, я не знаю.
-
Почему мне так оперативно медальки не выдают?

Не работал с ЕЕРОМОМ. Можно редактировать "прошивку"? Ведь полезно изменять данные. Можно даже без моника.
Для прошивки eeprom нужен полноценный компьютер, с монитором и клавиатурой, но который можно разобрать и превратить в робота при надобности, а робот в свою очередь поможет вам накопать ресов для нового компьютера. По другому увы ни как. Прошивку при наличии компьютера можно менять хоть кода (если робот не на работе) достаточно положить робота и прошитый eeprom на верстак и новая прошивка поставится в робота, а старая выпадет (сам eeprom можно перепрошивать неограниченное количество раз).
PS: извиняюсь за ошибки, пишу с телефона
-
Хорошая идея.
Действительно, нафиг роботу ОСь?
Прошил - и отправил копать. =)
Так ему еще и не нужен ни монитор, ни клавиатура, ни жесткий диск и все слоты можно забить инвентарями, да батарейками
-
3
-
-
UPD #1 - Добавлена смена инструментов (инструкция ниже!)
UPD #2 - Прикручена система координат (пока ни как не используется)
Робот который копает карьер, как бы не было банально, но он копает его максимально экономно!
Характеристики робота:
корпус 1 ур. 1шт, процессор 1 ур. 1шт, оперативная память 1ур. 1шт, улучшение инвентаря минимум 1шт (чем больше тем лучше)
Для авто-смены инструментов нужно добавить контроллер инвентаря 1шт
Для работы дать роботу кирку как минимум железную, а лучше всего электро-бур
В программе есть настройки:
Настройки задаются в исходном коде программы!
trashSlots - количество слотов инвентаря под фильтры, и мусор который робот будет выкидывать по мере продвижения (в эти слоты желательно класть: камень, землю, гравий, песок, ... , булыжник (он ложится в последний слот, что-бы не тормозить функцию проверки блоков) предметы в слотах располагаются по мере их количества в предполагаемом месте работы (самые часто встречаемые, должны лежать в начале, что-бы не тормозить работу) !!! Все слоты-фильтры должны быть заполнены !!!
lengh - Длинна карьера
width - Ширина карьера (вводите четные числа, если введенное число не будет четным, от него отнимется 1)
deepM - Высота карьера (вводите числа кратные 3, если число не будет кратное 3, от него отнимутся значения пока оно не будет кратное 3)Для авто-смены инструментов:
--------------------------------------------------------------------------------------
toolSwich - смена инструментов роботом true - да / false - нет (если нет контроллера инвентаря оставить выключенным)
tool1 - 1 слот для инструмента
tool2 - последний слот для инструмента!!! Все отмеченные слоты должны быть заняты !!!
--------------------------------------------------------------------------------------
Примечание!!!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Устанавливайте высоту карьера на 10 блоков меньше чем высота установки робота, во избежание застревания оного
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Принцип работы:
Робот опускается под землю, и идет змейкой в заданных параметрах проверяя блок под собой и над собой на совпадение в слотах-фильтрах.
Если робот не нашел совпадение, то добывает блок, если совпадение найдено, движется дальше.
После выкапывания всего, робот возвращается на поверхность и на место дыры под собой ставит блок из последнего слота-фильтра.
Пример работы робота:
https://www.dropbox.com/s/be9l5rnday5s7ej/2016-08-25_01.40.42.png?dl=0
https://www.dropbox.com/s/vxm0kmklyhpngud/2016-08-25_01.40.51.png?dl=0
Комплектация робота:
https://www.dropbox.com/s/vqpn5uei5sjjmes/2016-08-25_02.19.47.png?dl=0
Настройки программы:
https://www.dropbox.com/s/nww84qssk4vqa8z/2016-08-25_02.21.21.png?dl=0
Загрузка робота:
https://www.dropbox.com/s/jbeuoudovdg63rf/2016-08-25_02.24.45.png?dl=0
Накопанные ресурсы за 1ч:10м:
https://www.dropbox.com/s/vfg78en1hw1alx8/2016-08-25_03.41.41.png?dl=0
Робот прошел вниз 36 блоков. У него сломалась кирка и почти сел аккумулятор, так что ставьте глубину не больше 30 - 33
Исходный код:
https://gist.github.com/L3rok1/17e9265bc33032a9230d5feefe29165a
-
11
-

Идеи для игр (кодинг, разработка)
в Флудилка
Опубликовано:
Можно подождать когда разрабы Screep выложат исходники серва и запустить его. (обещали в конце лета, осенью)