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

eu_tomat

Модераторы
  • Публикации

    2 666
  • Зарегистрирован

  • Посещение

  • Победитель дней

    331

Сообщения, опубликованные пользователем eu_tomat




  1. 10+0+10+0+10+0+10+0+10+0+10+0+10+0+10+0+10+0+1+0+1+0+1+0

    Это ты в уме посчитал, но кое-чего не учел.
    Для начала перепиши обработчик события в удобоваримый вид. Например:
    local inp = r.getInput(input_side)
    local add = 10^(inp-1)
    res = res + add
    print( inp,add,res )
    И посмотри на вывод.

     

    Fingercomp, опередил меня. Зря ты сказал. Пусть поучился бы отладке кода.


  2. Где команда смещения робота вниз?

    Вот она: robot.down()

    И в твоем цикле она встречается целых два раза:

    здесь: while not robot.down() do

    и здесь: print(robot.down())

     

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


  3. Не надо меня учить, как создавать что-то, чтобы потом не запутаться, я читал книги по рефакторингу, и это применимо и к AE и ко многим другим областям. А на счет запутанности приведу реальный пример: можно при создании программы использовать парадигму событий и если пару месяцев не трогал какой-то проект, открыв его, сразу все вспоминается, но события работают не так быстро, как прямые вызовы функций, поэтому кажется, что лучше отдать предпочтение им. На практике же выясняется, что код, где одни прямые вызовы читается сложнее.

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

    Серж, зря ты от обучения отказываешься. Ты же согласен со мной. Приведенный тобой пример полностью укладывается в схему «усложнять следует ровно настолько, насколько это необходимо, и не более того», и при этом никак не оправдывает применение клубка из AE-труб вместо логистической системы на роботе. Твой постскриптум тоже не оправдывает схему на AE, т. к. до этого ты сам назвал ее сложной и запутанной. Ты в целом верно мыслишь, но зачем-то грудью встал на защиту запутанных лагосхем из AE-труб.

     

    P.S. Извини за резкие формулировки. Ты выбрал утверждения, для защиты которых приходится вступать в конфликт с логикой. А я выбрал пафос, который мешает диалогу. С этого момента всю патетику я возвращаю в блог, с которого она и началась.


  4. При помощи gps api будет выглядеть опрятней и дрон будет шнырять по-прямой, без лишних движений.

    Если игрок неподвижен, можно и без GPS в четыре движения вернуться. А если подвижен, можно за несколько циклов по 4 движения приближаться, тоже быстрее получится, чем по одному шагу случайных метаний.

  5. Не стал захламлять тему "вайт vs вайп", здесь мое одобрение идеи будет уместнее:

    Можно скупать по себестоимости весь товар (чл, солярки и прочее перед вайпом) или включать виртуальные хранилища, кстати есть смысл в виртуальной свалке Дуба.


  6. ...возвращается назад, попутно высаживая саженцы.

    Что вперед, что назад, какая разница? Ты же под землей копаешь. А саженцы высаживаются над землей.

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

    Вообще заинтриговал.

  7. 12 раз,событие - 24раза

    Отлично. Теперь скажи, сколько раз происходит суммирование полученных данных в результирующую переменную?

    И что именно суммируется?

    Если сложно считать в уме, можешь добавить print в обработчик события.


  8. А если ездить под землей или на уровне земли? Саженцы подхватывать, а бревна рубить, когда робот проедет все поле - возвращается назад, попутно высаживая саженцы.

    На уровне земли уже обсудили. А при движении под землей куда ты собираешься саженцы втыкать?

     

    Ну так и надо  как-то по идее делать. Я, если честно, не понял, как Саня там умудрился в сингулярность лиственную попасть

    Да легко можно попасть. Черепахи листвы не боялись, и для них самым оптимальным был уровень над саженцами.

  9. в этой версии кода:

    Да, именно в этой, когда ты еще не понаставил костылей.

    Правда, здесь тоже какой-то мусор в виде "if b then l=l-1 end;", но не будем о нем.

    В каждом цикле у тебя неявно добавляется 0.1 к результату.

     

    Вот, ответь мне, сколько у тебя выполняется циклов передачи при пересылке числа 93?

    И сколько раз вызывается событие изменения редстоуна в приемнике?


  10. Fingercomp, если не хочешь, чтобы поле зря пропадало, и по возможности была засажена каждая клетка, можно при движении робота рубить саженец впереди и устанавливать позади. Затраты на лишние движения робота компенсируются большей продуктивностью фермы при той же занимаемой площади. Тем более, вариант ivan52945 тоже предусматривает повороты налево-направо для проверки блока. Если, конечно, он не с геосканером рубит лес.


  11. передаю 93 - получается 94.3

    Естественно. Я же тебе говорю, у тебя в каждом цикле добавляется 0.1

    А циклов у тебя 9+4 = 13.

    Поэтому 93 + 0.1*(9+4) = 94.3

     

    И для того, чтобы решить проблему, следует не подгонять результат, добавляя 0.9, и не умножать в передатчике на 10, а потом в приемнике делить, чтобы убрать ошибку, т.к. не понимая природы накопления ошибки, ты не можешь оценить и ее размер.

     

    Надо просто найти причину накопления ошибки и устранить ее.


  12. У меня же алгоритм не позволял дать себе срубиться, так как он нахоился на уровне саженцов.

    А разве treecapitator распространяется на роботов? Если да, я удивлен. А если нет, то роботу все равно придется подняться, чтобы срубить дерево полностью, и тогда он рискует быть поглощенным листвой соседнего дерева, и весь наш эффективный алгоритм посадки идет коту под хвост.

  13. ivan52945, тут, как я понял, в другом дело. Имеющийся алгоритм уже не предусматривает нахождения робота над саженцем. Тут, скорее всего, листва его убила. Или я не знаю.


  14. Кстати, о саженцах хороший вопрос. И о схеме посадки. Когда сундук забивался, черепаха прекращала рубить лес. И вся поляна сплошняком зарастала. В результате при первом проходе черепаха тратила все свои саженцы, собирая только древесину. Поэтому я высаживал деревья сплошными рядами, но между рядами имелись промежутки для листвы в 1-2 блока, точно не помню.

     

    Upd: Вот еще вспомнилось: Моя лесоферма была огорожена стеклом. И если стекло оказывалось слишком близко к деревьям, то стекло могло заместиться листвой, почти как у тебя с роботом. Но с черепашкой ничего плохого никогда не происходило. Это под 1.4.7 было.


  15. если саженец вырастает и робот находится в месте, где должен быть блок древесины, последний заменяет роботика полностью и безвозвратно.

    Вот это печаль! А я как раз собирался переписать своего лесоруба с черепашек на роботов. Алгоритм похож на твой, но максимально оптимизированный на скорость и устойчивость. Похоже, частью скорости придется пожертвовать. По теме ничего не посоветую, сам удивлен происходящим.

  16. Нет, я поставил это в кавычки потому, что это игра, мы играем в инженеров, приобретая навыки. На счет AE могу сказать: то что строишь сам, для тебя прозрачно, запутанная - это не всегда непонятная. И часто простые схемы не самые эффективные.

    Играя в инженера следует помнить вот, о чем. Пока ты пишешь программу, она тебе полностью понятна, даже если выглядит запутанно. Но если ты отложишь работу над ней на месяц-два, то твой собственный код покажется тебе чужим вплоть до того, что ты скорее перепишешь его с нуля, чем согласишься разбираться в нем. Рецепт известен: программу следует писать так, чтобы ее текст оставался максимально понятным, несмотря на сложность решаемой задачи. Это относится не только к программированию, но и к другим инженерным задачам. Усложнять следует ровно настолько, насколько это необходимо, и не более того.

    Запутанные решения получаются в разных случаях, например:

    1) Человек не умеет адекватно выразить свою идею с помощью имеющихся инструментов.

    2) Человек выбрал неадекватный инструмент для решения своей задачи.

    3) Человек намеренно создает запутанную схему, чтобы произвести на других впечатление или же скрыть детали своего решения.

    4) Реально сложные задачи. Почти всегда в разработке таких задач принимает участие множество людей, и никто по отдельности неспособен охватить задачу полностью.

     

    Первая причина проходит с опытом решения задач. Вторая — с опытом и расширением кругозора. Третья причина может принести пользу, но кого мы пытаемся обмануть в майнкрафте? Четвертый случай не имеет отношения к логистике майнкрафта.

     

    В нашем случае AE2 специально побуждает игроков к строительству безумных схем, чтобы те не скучали. Но при наличии роботов и так не скучно — есть же очень близкая к реальности не очень простая логистическая задача в отличие от работающих на неведомой магии труб AE.

     

    Про сложность и простоту пояснил. Теперь скажу несколько слов об эффективности. Давай зададимся вопросом. Кто будет сильнее нагружать сервер: значительную часть времени находящийся с состоянии сна робот, по расписанию подъезжающий к сундукам и печкам для их загрузки и выгрузки или же МЭ-система, каждый тик проверяющая все подключенные к ней объекты, в какой из них и что нужно положить и откуда взять? AE эффективен только в сравнении с БК трубами, мгновенно перемещая предметы.

     

    Хочешь быть инженером?

    Так строй хорошие системы, будь инженером, б***ть!

    • Нравится 2

  17. Селекцию я выбрал, чтобы не подложить кому-нибудь свинью, а чтобы не бегать по майнерсам за золотом и железом. А в своем воображении я играю всегда, даже когда сплю или играю в майн, это называется творчество.

    Вопрос был не о свинье, а об автоматизации. И не о роли воображения, а о смысле виртуализации в и без того уже виртуальном мире.
×
×
  • Создать...