BarBoss 89 Опубликовано: 25 апреля, 2015 (изменено) Сделал было робота-карьериста вырубающего сплошной массив, но оказалось, что на ИТ он малоэффективен. Основная добыча - кобла. Горизонтов руд, как на МТ, здесь нет. Если нет чанклоадера, то карьер вообще бесполезен. Всё равно приходится стоять рядом и пасти его. Испробовал вариант проще. Это модификация широко известной "бесконечной комнаты", которая роет горизонт высотой 3 блока по спирали от центра. С небольшим изменением - добавлен ограничитель радиуса и, самое главное, робот роет не сплошной горизонт, а движется по спирали, оставляя между витками стенку толщиной в два блока. Дополнительным ограничением является износ кирки (я использую самые простые - бронзовые). Сломав кирку он останавливается и ждёт, когда её заменят. Дополнительным бонусом "спиральной" траектории является то, что робот нырнув в лаву или воду с большой вероятностью вернётся в мои цепкие лапы. Робот использован простой. Второй уровень, память Т2.5, 1 инвентарь и генератор. Желателен контейнер 3-го уровня - туда можно поместить апгрейд "опыт". Ангельский апгрейд тоже не помешает - робот сможет поставить сундук в лаву или навесу и нормально разгрузиться. Иначе он лут просто выбросит. Вот сама програмуля: -- В последний, 16 слот,несколько сундуков (чем больше, тем лучше).-- В предпоследний, 15 слот, топливо (любое, которое горит);local long = 25 -- ограничитель - радиус спиралиlocal r = require("robot")local component = require("component")local g = component.generatorlocal leng = 3local i = 0local j = 0function eat()local selectedSlot = r.select()--beginr.select(15)g.insert(8)r.select(selectedSlot)endfunction fillChest()local selectedSlot = r.select()local k = 0--beginr.select(16)r.placeDown()for k = 1, 14 dor.select(k)r.dropDown()endr.select(selectedSlot)endfunction checkInv()--beginif r.count(14) > 0 thenfillChest()endendfunction forward()checkInv()repeatr.swing()until not r.detect()while not r.forward() do os.sleep(0.2) endr.swingUp()r.swingDown()end--beginforward()r.turnRight()forward()r.turnRight()-- while true dofor k = 1, long doprint("Current tunnel length: "..leng)if g.count() < 1 theneat()endfor j = 1, 2 dofor i = 1, tonumber(leng) - 1 doforward()endr.turnRight()end-- для спирали добавил два шага вперёдleng = leng + 3end Итак, ставим робота даём ему кирку, сундуки и уголь. Запускаем. А потом топаем сзади и выколупываем из стен то, что нам приглянулось. Изменено 25 апреля, 2015 пользователем BarBoss 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KelLiN 49 Опубликовано: 25 апреля, 2015 (изменено) Я тоже себе с месяц назад подправил этот код до спирали. Рад что не я один так подумал. Только радиус ограничения не ставил и использовал бур как инструмент (бур разрядился и робот приостанавливает работу). Сейчас еще можно и генератор не ставить т.к. энергии у робота и так много, а от генератора он все равно не успевает заряжаться. Изменено 25 апреля, 2015 пользователем KelLiN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах