Перейти к содержимому


Фотография

Карьер для очень дешевого робота на EEPROM

робот карьер добыча eeprom

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 35

#1 Оффлайн   Leroki

Leroki
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 23 Август 2016 - 20:54

*
Популярное сообщение!

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.....40.42.png?dl=0

 

https://www.dropbox.....40.51.png?dl=0

 

Комплектация робота:

 

https://www.dropbox.....19.47.png?dl=0

 

Настройки программы:

 

https://www.dropbox.....21.21.png?dl=0

 

Загрузка робота:

 

https://www.dropbox.....24.45.png?dl=0

 

Накопанные ресурсы за 1ч:10м:

 

https://www.dropbox.....41.41.png?dl=0

 

Робот прошел вниз 36 блоков.  У него сломалась кирка и почти сел аккумулятор, так что ставьте глубину не больше  30 - 33

 

Исходный код:

 

http://pastebin.com/fEa4Qxef

https://gist.github....30d5feefe29165a


Сообщение отредактировал Leroki: 25 Август 2016 - 01:26


#2 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 23 Август 2016 - 22:19

Хорошая идея.

Действительно, нафиг роботу ОСь?

Прошил - и отправил копать. =)


  • 1Ridav, Fingercomp, Asummonster и еще 1 это нравится

#3 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 23 Август 2016 - 22:25

Хорошая идея.

Действительно, нафиг роботу ОСь?

Прошил - и отправил копать. =)

Так ему еще и не нужен ни монитор, ни клавиатура, ни жесткий диск и все слоты можно забить инвентарями, да батарейками


  • Totoro, Fingercomp, Asummonster и еще 1 это нравится

#4 Оффлайн   TraerTaer

TraerTaer
  • Пользователи
  • Сообщений: 94
  • Уровень сигнала: 0,07%
  • В игре: 0 час. 32 мин.

Награды

           

Отправлено 24 Август 2016 - 01:12

Почему мне так оперативно медальки не выдают? :D

Не работал с ЕЕРОМОМ. Можно редактировать "прошивку"? Ведь полезно изменять данные. Можно даже без моника.


  • Leroki это нравится

#5 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 03:38

Почему мне так оперативно медальки не выдают? :D
Не работал с ЕЕРОМОМ. Можно редактировать "прошивку"? Ведь полезно изменять данные. Можно даже без моника.


Для прошивки eeprom нужен полноценный компьютер, с монитором и клавиатурой, но который можно разобрать и превратить в робота при надобности, а робот в свою очередь поможет вам накопать ресов для нового компьютера. По другому увы ни как. Прошивку при наличии компьютера можно менять хоть кода (если робот не на работе) достаточно положить робота и прошитый eeprom на верстак и новая прошивка поставится в робота, а старая выпадет (сам eeprom можно перепрошивать неограниченное количество раз).
PS: извиняюсь за ошибки, пишу с телефона

Сообщение отредактировал Leroki: 24 Август 2016 - 03:40


#6 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 880
  • Уровень сигнала: 6,36%
  • В игре: 48 час. 1 мин.

Награды

                          

Отправлено 24 Август 2016 - 09:53

Жалко шахтера. Заблудится он в сыпучих блоках и будет ждать своего владельца на дне лавового озера.

И карьер проходить он будет медленно, роясь в инвентаре на каждом шаге.

И вот это издевательство над роботом желательно укоротить:
while (deepM % 3) ~= 0 do
    deepM = deepM - 1
end

  • Leroki это нравится

#7 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 24 Август 2016 - 10:49

Жалко шахтера. Заблудится он в сыпучих блоках и будет ждать своего владельца на дне лавового озера.

И карьер проходить он будет медленно, роясь в инвентаре на каждом шаге.

Я когда - то думал над проблемой проверки инвентаря, можно вести учёт в памяти, хотя бы примерное представление что и где.


  • Leroki это нравится

#8 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 880
  • Уровень сигнала: 6,36%
  • В игре: 48 час. 1 мин.

Награды

                          

Отправлено 24 Август 2016 - 14:19

Я когда - то думал над проблемой проверки инвентаря, можно вести учёт в памяти, хотя бы примерное представление что и где.

Тут две подзадачи, требующие оптимизации: найти слоты – изменившийся и соответствующий ему мусорный.
Первую я бы решил так:
-- очистить очередь сигналов
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
  ...
При наличии контроллера инвентаря быстрее всего будет получить номер мусорного слота из таблицы по имени предмета.
  • Leroki это нравится

#9 Оффлайн   TraerTaer

TraerTaer
  • Пользователи
  • Сообщений: 94
  • Уровень сигнала: 0,07%
  • В игре: 0 час. 32 мин.

Награды

           

Отправлено 24 Август 2016 - 14:27

 лучше бы заменить

robot.swing(side)

.Например, 

while *чекаем блок по сайду(забыл)* do robot.swing(side) end

Ибо 1) Роботы будут лагать в гравиях 2) Роботы на серверах иногда тупят и не ломают блок. Или не двигаются. 


Сообщение отредактировал TraerTaer: 24 Август 2016 - 14:29

  • Leroki это нравится

#10 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 743
  • Уровень сигнала: 52,02%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 24 Август 2016 - 14:48

Не знаю, как на Скае, и что там вообще копать в небе, но на робике достаточно дать роботу кирку из эндия, которую предварительно нужно залинковать шифт-ПКМ на любой сундук, и робот будет кататься и копать и прямо в этот чест рес телепортить. А если в робота кинуть чанклодырь, то такой робот хоть из овера, хоть из незера, рес будет метать прямо в вашу АЕ систему сразу (чест нужно к АЕ подключить) А тут какие-то еще вайлетру свинги до сих пор обсуждаются и проверки мусора.  Это же баян прошлого века=)


  • Leroki это нравится

#11 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 15:03

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

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

3)

 

while (deepM % 3) ~= 0 do deepM = deepM - 1 end

Проверка на дурака, как её сделать короче, не нагородив if'ов, я не знаю.


Сообщение отредактировал Leroki: 24 Август 2016 - 15:05


#12 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 15:26

Тут две подзадачи, требующие оптимизации: найти слоты – изменившийся и соответствующий ему мусорный.
Первую я бы решил так:

-- очистить очередь сигналов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 уровня, а "аналоговая" проверка блоков работает медленнее (это надо еще проверить), но позволяет сделать фильтр довольно таки большой (если стоит достаточно улучшений на инвентарь).

Сообщение отредактировал Leroki: 24 Август 2016 - 16:06


#13 Оффлайн   unknown

unknown
  • Пользователи
  • Сообщений: 63
  • Уровень сигнала: 16,1%
  • В игре: 121 час. 36 мин.

Награды

        

Отправлено 24 Август 2016 - 16:05

Проверка на дурака, как её сделать короче, не нагородив if'ов, я не знаю.

depth = depth - (depth % 3)

А тут какие-то еще вайлетру свинги до сих пор обсуждаются и проверки мусора. Это же баян прошлого века=)

Если у игрока есть возможность сделать эндер-кирку, значит у него есть возможность не экономить на соплях и сделать нормального робота второго (третьего) уровня с монитором, клавиатурой и геолайзером в придачу. Мы же говорим про супер-дешевого робота с максимальным инвентарём!

Сообщение отредактировал unknown: 24 Август 2016 - 16:11

  • Leroki это нравится

#14 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 16:23

depth = depth - (depth % 3)

Спасибо!



#15 Оффлайн   Quant

Quant
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 24 Август 2016 - 16:53

Не знаю, как на Скае, и что там вообще копать в небе, но на робике достаточно дать роботу кирку из эндия, которую предварительно нужно залинковать шифт-ПКМ на любой сундук, и робот будет кататься и копать и прямо в этот чест рес телепортить. А если в робота кинуть чанклодырь, то такой робот хоть из овера, хоть из незера, рес будет метать прямо в вашу АЕ систему сразу (чест нужно к АЕ подключить) А тут какие-то еще вайлетру свинги до сих пор обсуждаются и проверки мусора.  Это же баян прошлого века=)

Не знаю как там на робике, но если ни эндер кирки,ни АЕ,ни прочей ерундистики в таком роде не будет,копалка будет (почти) полностью бесполезной?


  • Leroki это нравится

#16 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 17:01

Не знаю как там на робике, но если ни эндер кирки,ни АЕ,ни прочей ерундистики в таком роде не будет,копалка будет (почти) полностью бесполезной?

Что по твоему нужно добавить, что-бы "копалка" была полезной?

PS: есть какие-нибудь сжиматели lua кода, хочу прикрутить систему навигации, но места под нее не хватает.


Сообщение отредактировал Leroki: 24 Август 2016 - 17:10


#17 Оффлайн   Quant

Quant
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 24 Август 2016 - 17:09

Что по твоему нужно добавить, что-бы "копалка" была полезной?

Это копалка полезна,особенно что она использует только OC. Алекс же предлагает сделать копалку под сборку,которая "одноразовая".


  • Leroki это нравится

#18 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 743
  • Уровень сигнала: 52,02%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 24 Август 2016 - 19:21

но если ни эндер кирки,ни АЕ,ни прочей ерундистики в таком роде не будет,копалка будет (почти) полностью бесполезной?

если нет ни АЕ, ни ИК, ни эндер кирок, ни прочей "ерундистики", то тогда не копалка бесполезная, а ОС твой бесполезен вместе со своими копалками ванильными, так как копать для ЧЕГО тогда? Ради копания? :giggle:

 

Чего-то на твоем "квантовом мясе" я не видел ванильки + умной  ОС копалки змейкой онли, а вот ерундистики там был ох как много :D


  • Leroki это нравится

#19 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 20:50

Добавил, скрины с примером работы.

 

Пример работы робота:

 

https://www.dropbox.....40.42.png?dl=0

 

https://www.dropbox.....40.51.png?dl=0

 

PS: Робот плохо работает с эндер-киркой, мусор летит в ящик.


Сообщение отредактировал Leroki: 24 Август 2016 - 20:52


#20 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 743
  • Уровень сигнала: 52,02%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 24 Август 2016 - 21:06

PS: Робот плохо работает с эндер-киркой, мусор летит в ящик.

Робот хорошо работает с эндер-киркой. Кирка просто по своей механике ВЕСЬ выкопанный рес отправляет в ящик, минуя робота. Робот и знать не знает и знать не должен, что он там выкопал. А ящик свой уже сортируй :)

Но если ящика нет, или он не прогружен в чанке и недоступен по каким-то причинам или кирка не прилинкована, рес тогда уже будет влетать в пузо робота, как обычно.


  • Leroki это нравится

#21 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 24 Август 2016 - 21:48

Но сама кирка слишком быстро ломается.

#22 Оффлайн   TraerTaer

TraerTaer
  • Пользователи
  • Сообщений: 94
  • Уровень сигнала: 0,07%
  • В игре: 0 час. 32 мин.

Награды

           

Отправлено 25 Август 2016 - 01:14

...

Не знаю. У меня на сервере всегда были проблемы с действиями робота. Он то не двигался, то не ломал. Даже не мог поставить блок иногда.  Пришлось все стандартные функции заменить.

 

Я тестил на скае своего робота. Задержки и прочее не помогало. Мне кажется в сингле таких проблем не должно быть.

 

UPD: протестил в сингле прогу. Был прав. Мобы мешают пройти. Карьер кривеет. Вроде из-за пинга(на сервере) может лагать из-за сыпучих блоков.


Сообщение отредактировал TraerTaer: 25 Август 2016 - 01:27

  • Leroki это нравится

#23 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 25 Август 2016 - 01:26

Не знаю. У меня на сервере всегда были проблемы с действиями робота. Он то не двигался, то не ломал. Даже не мог поставить блок иногда.  Пришлось все стандартные функции заменить.   Я тестил на скае. Задержки и прочее не помогало. Мне кажется в сингле таких проблем не должно быть.

Потестить бы на сервере, но для усовершенствования осталось мало места программа занимает  4 083 байта из 4092, надо уменьшать код.



#24 Оффлайн   TraerTaer

TraerTaer
  • Пользователи
  • Сообщений: 94
  • Уровень сигнала: 0,07%
  • В игре: 0 час. 32 мин.

Награды

           

Отправлено 25 Август 2016 - 01:37

но для усовершенствования осталось мало места программа занимает  4 083 байта из 4092, надо уменьшать код.

Можно удалить комменты. Или склонировать прогу. Пробелы вроде тоже память едят. Если я прав то можно кирпичом программировать. Можно всякие переменные типо "robot" заменить на "r". Конечно глаза будут страдать, но зато будет крутая прога.



#25 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 25 Август 2016 - 02:11

Можно удалить комменты. Или склонировать прогу. Пробелы вроде тоже память едят. Если я прав то можно кирпичом программировать. Можно всякие переменные типо "robot" заменить на "r". Конечно глаза будут страдать, но зато будет крутая прога.

Полазив по сети, не нашел программы которая может сжимать lua код, поэтому решил написать свою на питоне, сегодня (завтра) выкачу, в планах изменение одинаковых переменных на одно - дву буквенные сочетания, удаление всех коменатариев, отступов


Сообщение отредактировал Leroki: 25 Август 2016 - 02:42

  • TraerTaer это нравится

#26 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 25 Август 2016 - 05:12

Написал уменьшалку, правда пока без замены переменных, но и сейчас результат хороший уменьшил с 4 083 байт до 2 182 байт.

Не знаю в какой раздел её закидывать, так что пока тут.

Это простой скрипт для питона:

Запуск:

python luaSmaller.py 'абсолютный путь к файлу'       (без кавычек)

по завершению выдаст 'done' и файл в тойже директории с припиской -small.lua

PS: Программа не тестировалась на Windows, кто может протестить отпишитесь, какие косяки вылезли, я исправлю

 

Скрипт:

https://www.dropbox....Smaller.py?dl=0


Сообщение отредактировал Leroki: 25 Август 2016 - 05:15


#27 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 814
  • Уровень сигнала: 19,36%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 25 Август 2016 - 05:26

Чую, это только портить код. А в шапке сайта сжималка не кошерная?

К тому-же есть еще crunch и мой алгоритм, который закидали какашками крипера.


  • Leroki это нравится

#28 Оффлайн   Leroki

Leroki
  • Автор темы
  • Пользователи
  • Сообщений: 18
  • Уровень сигнала: 0,1%
  • В игре: 0 час. 45 мин.

Награды

        

Отправлено 25 Август 2016 - 05:30

А в шапке сайта сжималка не кошерная?

Чтож он так запрятан? Сразу и не поймешь что это выпадающее меню.

ps: минификатор в шапке сжал на 150 байт лучше, значит есть куда двигаться, но для меня удобнее скрип, т.к. не надо копировать вставлять


Сообщение отредактировал Leroki: 25 Август 2016 - 05:33


#29 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 25 Август 2016 - 10:03

Когда то на нашем форуме обсуждался сжиматель lua-кода, который работал прямо из OpenOS. Я его даже себе скопировал и использовал пока диск не полетел. Кто понял о чем я, напомните пожалуйста.

 

Ага, нашел. Это блог Крутого


Сообщение отредактировал Zer0Galaxy: 25 Август 2016 - 10:19

  • Leroki это нравится

#30 Оффлайн   Kartze

Kartze
  • Пользователи
  • Сообщений: 435
  • Уровень сигнала: 40,57%
  • В игре: 306 час. 24 мин.

Награды

              

Отправлено 25 Август 2016 - 11:03

 



Не знаю, как на Скае, и что там вообще копать в небе, но на робике достаточно дать роботу кирку из эндия, которую предварительно нужно залинковать шифт-ПКМ на любой сундук, и робот будет кататься и копать и прямо в этот чест рес телепортить. А если в робота кинуть чанклодырь, то такой робот хоть из овера, хоть из незера, рес будет метать прямо в вашу АЕ систему сразу (чест нужно к АЕ подключить) А тут какие-то еще вайлетру свинги до сих пор обсуждаются и проверки мусора.  Это же баян прошлого века=)

Чур я сделаю! :)
 
  • Leroki это нравится





Темы с аналогичным тегами робот карьер, добыча, eeprom

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных