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

Лидеры


Популярный контент

Показан контент с высокой репутацией 03.03.2019 во всех областях

  1. 5 баллов
    Представляю вам опять программу для робота, которая позволяет добывать руду, не лазая по пещерам. Робот, используя геолизер, может самостоятельно находить и добывать руду. Реализованы еще не все возможности, поэтому прошу тестировать и сообщать мне о багах. Требования: Корпус компьютера (уровень II или III) Апгрейд инвентарь (больше - лучше) Апгрейд контроллер инвентаря Жесткий диск EEPROM с прошитым Lua BIOS Геосканер Память (уровень I или выше) Процессор (любой) Апгрейд полета (I уровень) Алмазная кирка или аналогичный инструмент. Опционально: Апгрейд верстак Беспроводная сетевая карта Апгрейд батарея Апгрейд опыта Апгрейд чанклоадер Апгрейд генератор Апгрейд солнечная панель Эндерсундук из мода EnderStorage Установка: Скачать и сохранить файл как init.lua wget https://raw.githubusercontent.com/DOOBW/geominer/master/miner.lua init.lua Закинуть этот файл в корень диска. Добавить диск при сборке робота. Установить робота на платформу из твердых блоков. Дать роботу кирку. Поставить возле робота контейнер и зарядник. Нажать кнопку питания и наслаждаться процессом.
  2. 3 балла
    И снова доброго времени суток! Написал и недавно допили прогу по упровлению светом с помощью RedLogic! Команда для скачивания: pastebin get -f uZFEL62c light.lua Вот код: component = require("component"); side = require("sides"); color = require("colors"); rs = component.redstone; --funcs------------------------------------------------------------------------------------------------------------- function hlp() os.execute('clear'); check(); print('\n-------------------------------------------------', '\nlight_1_on - to switсh on a light_1;', '\nlight_1_off - to switсh off a light_1;', '\nlight_2_on - to switсh on a light_2;', '\nlight_2_off - to switсh of a light_2;', '\nall_on - switсh on all light;', '\nall_off - to switсh off all light;', '\n-------------------------------------------------\n'); end -- function check() local component = require('component'); local light_1 = component.redstone.getBundledInput(2, 14); local light_2 = component.redstone.getBundledInput(2, 4); if light_1 <= 255 and light_1 > 15 then print('Light_1 \x1b[32m++\x1b[0m '); elseif light_1 >= 0 and light_1 < 15 then print('Light_1 \x1b[31m--\x1b[0m '); end if light_2 <= 255 and light_2 > 15 then print('Light_2 \x1b[32m++\x1b[0m'); elseif light_2 >= 0 and light_2 < 15 then print('Light_2 \x1b[31m--\x1b[0m'); end end -- function _light_1_on() rs.setBundledOutput(2, 14, 255); os.execute('clear'); check(); end -- function _light_1_off() rs.setBundledOutput(2, 14, 0); os.execute('clear'); check(); end -- function _light_2_on() rs.setBundledOutput(2, 4, 255); os.execute('clear'); check(); end -- function _light_2_off() rs.setBundledOutput(2, 4, 0); os.execute('clear'); check(); end -- function _all_off() rs.setBundledOutput(2, 4, 0); rs.setBundledOutput(2, 14, 0); os.execute('clear'); check(); end -- function _all_on() rs.setBundledOutput(2, 4, 255); rs.setBundledOutput(2, 14, 255); os.execute('clear'); check(); end --main-------------------------------------------------------------------------------------------------------------- os.execute('clear'); print('Enter \'help\''); local cmds = { light_1_on = _light_1_on, light_1_off = _light_1_off, light_2_on = _light_2_on, light_2_off = _light_2_off, all_on = _all_on, all_off = _all_off, help = hlp } local term = require("term"); while true do term.write('> '); cmd = term.read(); if cmd == false then print("Exiting!") os.exit() end cmd, _ = cmd:gsub("\n",""); if type(cmds[cmd]) == "function" then cmds[cmd](); else print("No such command: " .. cmd); end end (На лампе №1 нет контакта, но и так понятно что всё работает) Если преодолею лень и перестану тупить то возможно у этой проги появится GUI!
  3. 2 балла
    Еще одно обновление. Удалил из TODO свайпы - слишком сложно и бесполезно. Добавил в TODO QR-коды для ссылок - очень просто (нашел либу и научился ей пользоваться) и полезно - с сервиса_нейм ко мне в соцсеть_нейм и в мессенджер_нейм будут (надеюсь) быстрее перетекать юзеры и писать багрепорты, которые я сам не обнаруживаю. Фиксы: Ассоциации файлов не работали вообще Теперь "низкий уровень свободной памяти" - 64 килобайта. При меньших значениях возникали проблемы. Всплывающие окна теперь располагаются правильно. Добавлено: Подсказки пользователю о некоторых аспектах работы с системой (решил перевести все на нормальный фреймворк вместо однотипных кусков кода по всей оболочке). Кнопка "Продолжить" у поля ввода. Кнопка удаления уведомления, а так же при клике по самому уведомлению оно откроется полностью. У файлов в "Все программы" появилось контекстное меню. Изменения: Полный рефакторинг системы обновлений. Внимание: вам придет два обновления. Одно обновление обновит оболочку, а второе - инициализирует систему обновлений.
  4. 1 балл
    Уже вроде как сбрасывал кому то такую штуку, но повторю еще раз. --https://i.imgur.com/9aw0a6E.gifv --блоки руды сверху в сундук закидывать --сыпуху вниз будет скидывать --перед роботом не забудьте поставить подставку, так будет точнее ставить --в руку бур/кирку с максимальными чарами на удачу local r = require('robot') while true do r.select(1) if r.suckUp(64) then local rep = r.count(1) for i=1,rep do r.place() while not r.swing() do os.sleep(0) end end for i=1, r.inventorySize() do if r.count(i) > 0 then r.select(i) r.dropDown(64) end end else os.sleep(15) end end
  5. 1 балл
    краш в строке на 1.7.10 471 if item[slot].name == tool.name and item[slot].damage < tool.damage then Видно часть ошибки: (field '?') getAllStacks и getAllStacks().getAll() по-разному работают на разных версиях MC На 1.7.10: индексация массива из getAllStacks().getAll() начинается с 0, а не с 1. getAllStacks().getAll()[slot] для пустого слота возвращает пустую таблицу, а не таблицу с «воздухом» getAllStacks()[slot] для пустого слота возвращает nil, а не таблицу с «воздухом»
  6. 1 балл
    Идея отличная! Молодец! Главное не забрось идею, и если сможешь, зделай, пожалуйста, интерпритатор python!
  7. 1 балл
    В процессе подгонки всех функций программа очень быстро разрослась. Дам краткий обзор всех новинок. Минимальная и максимальная плотность были вынесены в начало программы к остальным переменным. + переменная port, для модема. + переменные steps и turns, вначале для отладки. steps пригодилась для подсчета шагов, чтобы каждые 32 шага проверять состояние инструмента и батареи. + функция arr2a_arr() - преобразование списков в ассоциативный массив для быстрого доступа к элементам. Массивы tails, fragments преобразуются этой функцией, функции работающие с ними, адаптированны соответствующим образом. + функция report(), позволяющая передавать пользователю статусные сообщения посредством модема или связанной карты. В данный момент еще пикает и выводит сообщения на экран. Также завершает работу программы, при получении соответствующего параметра. remove_point() отделилась от функций, удаляющих метки из таблицы. Функция check() отделилась от функции step(). Каждые 32 шага или по принуждению вычисляет расстояние до стартовой точки, сохраняет текущие координаты. Если уровень энергии или инструмента не хватает на дорогу до дома + 64 шага, совершается переход домой, потом возврат к работе. Если есть генератор, происходит попытка заправки. Каждый шаг проверяются точки вокруг робота и удаляются, если робот может их достать. Функция calibration() объединилась с калибровкой компаса. Происходит проверка компонентов: геосканер, контроллер инвентаря, инструмент и наличие блока под роботом, в случае не обнаружения - программа завершается. Настраиваются модем или связанная карта. sorter() упростилась и ускорилась. + функция home() перемещает робота на точку старта, запускает сортировку и упаковку предметов, ищет сундук (требует, в случае не обнаружения). Складывает добычу в сундук, в случае переполнения ждет, когда освободится место. Достает из сундука неупакованные предметы и переупаковывает. Забирает из сундука стак с углем, при наличии генератора. Кроме перехода к точке старта, ищет в инвентаре эндерсундук из EnderStorage и сгружает ресурсы в него. Пытается найти более новый инструмент в сундуке, либо ищет зарядник и пробует засунуть в него и зарядить. На точке старта ждет, пока уровень энергии не достигнет 99% потом возвращается к работе. + функция main() - основной цикл сканирования и добычи. Робот сканирует весь чанк, в цикле перебирает все метки, выбирает ближайшую и перемещается к ней, пока не пройдет по всем. Ну и цикл перехода по спирали от чанка к чанку. Запускает функцию main(), по завершении вычисляет координаты следующего чанка, перемещает к нему, запускает main() и т. д., пока не дойдет до последнего, потом вызывает функуию home() и завершает работу. Осталось добавить возвращение по хлебным крошкам при аварии. И правильную работу с инструментами, имеющими нестандартную механику износа - энергетические и магические кирки/буры из модов. Еще можно заставить робота таскать с собой генератор из какого-нибудь мода и зарядник, тогда ему не нужно будет возвращаться на точку старта для подзарядки (а с эндерсундуком вообще на надо будет возвращаться) Бета-версию можно посмотреть и скачать тут - https://pastebin.com/hXWLDKre
  8. 1 балл
  9. 0 баллов
    А разве алгоритм Дейкстры предусматривает обход всех узлов?
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...