imitator 0 Опубликовано: 8 ноября, 2020 (изменено) opencomputers 1.12.2 + AgriCraft (robot cross plants) Описание программы от @eu_tomat. код программы pastebin (https://pastebin.com/TVdveifu) Изменено 9 ноября, 2020 пользователем eu_tomat ссылка на описание Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 8 ноября, 2020 Эта программа для автоматической прокачки растения до 10/10/10? Можно описание по-подробнее сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 8 ноября, 2020 10 минут назад, hohserg сказал: Эта программа для автоматической прокачки растения до 10/10/10? Можно описание по-подробнее сделать? Если я верно понял код, то просто делается 25 попыток скрещиваний, результат складывается в сундук, а решение о дальнейшей селекции позже принимает игрок. Программа не имеет каких-либо проверок на корректность, все действия совершаются вслепую, поэтому работоспособность гарантируется лишь в каких-то стабильных и специфических условиях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 8 ноября, 2020 Вероятно, с дефолтными конфигами 25 попыток дают близкую к 1 вероятность получения макс харок семян. Но это не точно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
imitator Автор темы 0 Опубликовано: 8 ноября, 2020 2 часа назад, eu_tomat сказал: Если я верно понял код, то просто делается 25 попыток скрещиваний, результат складывается в сундук, а решение о дальнейшей селекции позже принимает игрок. Программа не имеет каких-либо проверок на корректность, все действия совершаются вслепую, поэтому работоспособность гарантируется лишь в каких-то стабильных и специфических условиях. Да все верно Вы поняли, программу писал чисто для себя, селекция успевает до 10/10/10 на Project Ozone 3 A New Way Forward PO3-3.3.60 Final замечены 2 глюка, 1 если не прогружать чанк робот может сойти с ума начать делать что то не то можно сделать 3 ур робот и вставить улучшение прогрузка чанка если поставить слишком много ускорителей роста робот может не успевать поставить вторую жердочку в остальном все стабильно работает, в идеале можно писать кучу проверок на состояние робота, но работает все довольно стабильно кинул в сундук семена, под землю из Mystical Agriculture ускорители роста по 8 шт и робот доволен через минут 15 семя 10/10/10 лежит в сундуке Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
imitator Автор темы 0 Опубликовано: 8 ноября, 2020 (изменено) 2 часа назад, hohserg сказал: Вероятно, с дефолтными конфигами 25 попыток дают близкую к 1 вероятность получения макс харок семян. Но это не точно за сегодня вырастил до 10/10/10 30 раз 1 раз были параметры 10/10/9, в основном в сундуке 5-6 семян ур 10/10/10, можно счетчик сделать больше и 100% гарантированно Изменено 8 ноября, 2020 пользователем imitator Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 8 ноября, 2020 26 минут назад, imitator сказал: если не прогружать чанк робот может сойти с ума начать делать что то не то Обычное дело на серверах. Робот может по разным причинам отказаться от выполнения команд. Но, к счастью, большинство команд робота возвращают в программу статус их исполнения. Проверка статуса поможет роботу сохранить работоспособность, если что-то пойдёт не по плану. 35 минут назад, imitator сказал: кинул в сундук семена, под землю из Mystical Agriculture ускорители роста по 8 шт и робот доволен через минут 15 семя 10/10/10 лежит в сундуке Как-то всё очень легко получается в AgriCraft. Жёрдочки из IC2 посложнее будут. Там сложнее добраться до максимальных характеристик, столь примитивный алгоритм там не прокатит. А кроме того в IC2 максимальные характеристики вредны, а оптимальные надо вычислять для конкретных условий выращивания. В общем, там есть, о чём подумать. А по поводу описания @hohserg верно предлагает. Желательно рассказать, что там делает робот. Что там с чем скрещивается, и в какой последовательности, какова цель скрещивания и условия достижения результата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
imitator Автор темы 0 Опубликовано: 8 ноября, 2020 IC2 тут даже в теме не указан, скрещивание именно в AgriCraft задумка была просто заставить робота скрестить семена до 10/10/10, после долгих часов попыток сделать это с помощью Extra Utils 2 или RfTools controls я понял что пора программировать, быстренько наклепал робота начал пошагово ему задавать разные варианты сценарий таков 1) Робот стоит около сундука и смотрит в его сторону, слева зарядная станция справа грядки (вспаханые) 2) загружаем ему программу (кто этого не умеет см. гайды на ютюб) можно с дискеты в папке tmp либо в жесткого диска можно даже через pastebin 3) запускаем файл 4) робот берет 1 предмет потом еще 1 и потом 2 стака из сундука, ложит к себе в 13 -16 слоты (не пробовал что будет если предметы будут не те или в другом порядке думаю ничего хорошего, для такой проверки нужно много дописывать кода) 5) ставит 3 жёрдочки и на последнюю сажает семя которое ему дали, переходит назад и ждет пока по жердочкам растения созреют до него (тут нету сорняков, или я их ни разу не видел хотя грабли в моде есть) 6) робот тыкает правой кнопкой по жёрдочке (и получает заряд сзади) пока в первом слоте что то не появится у робота 7) робот идет в соседнюю клетку (клетка скрещивания) срубает с нее все что есть (левой кнопкой), и скидывает все в сундук за ним 8) разворачивается, ставит 2 жёрдочки подряд (тут нужно бы сделать проверку реально ли 2 поставил или ускорители успели проростить что то сбоку) берет в руку совок и тыкает правой кнопкой с совком только так жердочки на перекрестии не ломаются 9) как только в совке что то появилось робот левой кнопкой чистит всю грядку скидывает все что у него в сундук и возвращается на исходную 10) цикл начинается заново только в этот раз в слоте где было семя пусто и робот сажает семя которое на совке находится 11) после окончания циклов их 25 скрещеваний робот снимает семя с совка и скидывает результат в сундук инициализации, если игрок периодически пробегает рядом он увидит что грядки пустые, можно сделать 100 оповещалок, но мне это не нужно обычно я создаю в RFTools Dimensions небольшой плоский мирок с постоянным полднем, конфигурирую робота загрузкой чанков и солнечной батареей и он автономно работает можно допилить что бы он по очериди сам брал семена с одного места, а жёрдочки с другого или крафтил их по мере надобности, но у меня много еще квестов, а черепашка делает свое дело и норм Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 9 ноября, 2020 @imitator Ага, немного проясняется механика AgriCraft. Но пока не всё для меня очевидно. И, думаю, тут на форуме многим требуется пояснение механики мода, чтобы оценить логику работы этого алгоритма. 8 часов назад, imitator сказал: цикл начинается заново только в этот раз в слоте где было семя пусто и робот сажает семя которое на совке находится А в каком слоте было пусто? Или имеется в виду пустой совок? На старте используется только одна семечка? Растение в AgriCraft само расползается по жёрдочкам? Сорняки, насколько я помню, присутствуют в AgriCraft. На том сервере сорняки отключены, или просто за 15 минут они обычно не успевают появиться? При скрещивании культур в AgriCraft их параметры могут ухудшиться? Или скрещивание всегда даёт параметры не хуже исходных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
imitator Автор темы 0 Опубликовано: 9 ноября, 2020 2 часа назад, eu_tomat сказал: А в каком слоте было пусто? в сундуке 1 семя в 1 слоте (второе робот решит что это совок и логика нарушится) в 13 слот робот подгребает семя, на втором цикле робот его там не найдет и выполнет обработку посадки растения с совка 2 часа назад, eu_tomat сказал: Растение в AgriCraft само расползается по жёрдочкам? да, и если есть какие нибудь ускорения роста из других модов то это довольно быстро происходит, в моде присутствует система орошения авто-полив 1 раз пробовал ничего интересного 2 часа назад, eu_tomat сказал: Сорняки, насколько я помню, присутствуют в AgriCraft. я уже говорил сколько раз играл в AgriCraft ни разу не видел сорняков, вероятно из за ускорителей роста в IC2 сорняки это частое явление 2 часа назад, eu_tomat сказал: На том сервере это сборка а не сервер, я играю в одиночку, AgriCraft один раз видел на сервере но там не было Mystical Agriculture и оценить его в полном масштабе тогда не удалось 3 часа назад, eu_tomat сказал: При скрещивании культур в AgriCraft их параметры могут ухудшиться? не хуже предыдущих параметров, редко бывают те же что и посаженные И вообще-то тема называется "робот скрещивает растения AgriCraft " это означает, что сюда тем кто знаком с модами opencomputers и AgriCraft а тема "механика мода AgriCraft" это уже другая история впрочим как и вопросы как инсталлировать lua-bios в каком устройстве создать робота и т. д. это не в эту ветку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 9 ноября, 2020 12 минуты назад, imitator сказал: я уже говорил сколько раз играл в AgriCraft ни разу не видел сорняков Это для меня не очевидно. Если не видел ты, это не значит, что сорняков вообще нет. Я помню AgriCraft на 1.7.10, там и сорняки были, и культуры не переползали на жёрдочки. Видимо, на 1.12.2 другая механика. 7 минут назад, imitator сказал: И вообще-то тема называется "робот скрещивает растения AgriCraft " это означает, что сюда тем кто знаком с модами opencomputers и AgriCraft Вообще-то форум посвящён программированию, а чтобы читатели смогли оценить алгоритм, им требуется понимать соответствующую механику. И если программирование на Lua завсегдатаям форума в целом понятно, то детали механик модов требуется пояснять отдельно. Гайд по моду писать не требуется, но логика работы программы нуждается в описании. Не таком описании как "робот поворачивает направо, тыкает по жёрдочке и поворачивается к сундуку", а что-нибудь похожее на такое: Эта программа позволяет получить семена AgriCraft с максимальными параметрами. Я применил следующее решение: Робот берёт из сундука с материалами исходное семя, лопатку и два стака жёрдочек. Затем устанавливает одиночные жёрдочки на три грядки, на последнюю высаживает семя и возвращается к первой грядке, ожидая на ней урожая. Рано или поздно растение на последней жёрдочке вырастет и заселит среднюю жёрдочку, а затем и первую. Тем временем робот непрерывно пытается собрать урожай с первой грядки. Успешный сбор урожая сигнализирует о полном заселении грядок изначальной культурой. Получив урожай, робот уничтожает растение на средней грядке, сбрасывает полученную с грядки продукцию в сундук для продукции и устанавливает на освободившуюся грядку двойные жёрдочки для скрещивания. Далее робот непрерывно пытается лопаткой забрать растение со средней грядки. Успешный сбор сигнализирует об успешном скрещивании. Получив новое растение на лопатке, робот очищает все грядки, сбрасывает продукцию в сундук и возвращается на исходную позицию. Робот повторяет перечисленные выше действия, но теперь высаживая не семена, а растение с лопатки. Всего выполняется 25 скрещиваний. В большинстве случаев этого достаточно для получения семян с максимальными характеристиками 10/10/10. Примерное время работы составляет 15 минут при наличии 8 ускорителей роста из мода Mystical Agriculture под каждой грядкой. Без ускорителей весь процесс занимает 5 часов (указать нужное время). Завершив последнее скрещивание, робот высаживает растение с лопатки на жёрдочки, собирает с него семена и сбрасывает содержимое своего инвентаря в сундук с продукцией. Для успешной работы программы робот должен смотреть на сундук с материалами, а в сундуке должно лежать одно (не больше!) семя, лопатка и два стака жёрдочек точно в указанной последовательности. Проверено на версиях модов AgriCraft-2.12.0-1.12.0-a6.jar и OpenComputers-MC1.12.2-1.7.5.192.jar (указать правильные версии). Вот что-то примерно такое я ожидаю видеть в описании. Из этого описания читатели поймут, нужна ли им такая программа, и что от неё ожидать. Также это поможет читателям разобраться в назначении отдельных участков кода и предложить лучшие решения этой задачи. А ещё по картинке не понятно, на какой из сундуков должен смотреть робот в исходной позиции. Судя по коду, скриншот запечатлел конечную позицию робота. Или робот там ожидает успешного скрещивания. Попробуй угадай, куда ставить робота. Почитав код, предполагаю, что робот должен смотреть на правый сундук, левым боком касаясь зарядника. @imitator Поправь меня, если где-то я ошибся или был не точен. И будем считать этот пост описанием твоей программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
imitator Автор темы 0 Опубликовано: 9 ноября, 2020 (изменено) 34 минуты назад, eu_tomat сказал: А ещё по картинке не понятно, на какой из сундуков должен смотреть робот в исходной позиции. в листенге программы подробно описано куда и когда робот должен смотреть, и да на скриншоте робот в процессе скрещевания, тут какая то проблемма со вставкой картинок, а в целом красиво 5+ за правильное описание Проверено на версиях модов? серьезно указание сборки модов "Project Ozone 3 A New Way Forward PO3-3.3.60 Final" мало? Изменено 9 ноября, 2020 пользователем imitator Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах