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

Doob

Гуру
  • Публикации

    1 089
  • Зарегистрирован

  • Посещение

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

    141

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


  1. Есть еще проблема с самим назначением задачи, например: сервер послал задачу, ноды ее выполняют и тут... сервер отваливается, задача решается, но результата не будет.

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


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

     

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

     

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


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

    Еще один минус в том, что робот делает запрос, если зафлудить систему, то она повиснет, так что нужен таймаут на каждый адрес.

     

    В нормальной GPS рандомно расставленные микроконтроллеры раз в N времени бродкастят свои координаты, пользователи сами вычисляют свои координаты (хотя вычисление по трем сферам через вектора несколько более громоздкое, но других не видел)

    Тут тоже есть один минус - достоверность данных, я давным-давно предлагал ввести крипто-подпись, чтобы пользователи по открытому ключу проверяли полученные координаты (конечно, придется один слот занять дата-картой и подтверждать запрос на получение закрытого ключа для каждого нового спутника, но зато будет защита от хацкеров)

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

     

    Мне на нескольких проектах популярно объяснили, что GPS никому не нужна (хотя почему ее часто юзают в ComputerCraft - не понятно) я и забил на это дело, как и на десяток других полезных проектов.


  4. Для начала вполне неплохо, но код опять слишком избыточный. Цвета можно генерировать или хотя-бы предоставить пользователю задавать их вручную и не помешало бы автоматическое масштабирование под разрешение монитора.

     

    Если что-то непонятно, то можно спросить в чате, а по граблям можно ходить всю жизнь.


  5. Я как-то занялся распараллеливанием вычислений через интернет, хотел связать несколько сотен компов/роботов на нескольких серверах, чтобы считать генетические алгоритмы, даже был алгоритм перераспределения задач при изменяющимся количестве компов (который придумали лет эдак за 60 до меня). Теоретически, результат можно было бы получать на порядки быстрей, но дело не дошло даже до пробного запуска, т. к. комп не тянет перегруженные модами сборки и меня закидали навозом всякие умники, обвиняя в нерациональном использовании ресурсов серверов.

     

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

     

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


  6. Это было очень давно, помню только, что при распаковке в конце текста был шум, в чем была проблема я не стал разбираться.

     

    Все время руки не доходят до компрессоров, вроде-бы все проблемы обнаружил и исправил, но надо проверить работоспособность.


    • нaвигaция прoстo вынoсит мoзг, функция движения рaзмaзaнa нa 90 стрoк, oднa oпечaткa в кoде и рoбoт улетит в неизвестнoм нaпрaвлении, oдин лaг - рoбoт прoбьет стену и зaстрянет

    нет пoддержки других мoдoв, в мoдaх нaмнoгo бoльше деревьев

    есть вoзмoжнoсть oпределения кooрдинaт рoбoтa, нo oна не испoльзуется в сaмых критичных мoментaх

    фермa мoжет рaбoтaть тoлькo с глaдкoствoльными деревьями, врoде дубoв и берез. Если бы рoбoт рубил деревья снизу вверх, a не сбoку, тo мoжнo былo бы вырaщивaть любoй вид деревьев, при тoм, чтo испoльзуется tractor beam (мoжнo, кстaти, oбoйтись пaрoй ведер вoды и сэкoнoмить мнoгo энергии)

    не oчень пoнятнo, чтo с пoтреблением пaмяти, если переменные oбъявить внaчaле прoгрaммы, тoгды былo-бы нaгляднo, a тaк, придется пoлзaть пo всему кoду тудa-сюдa

    смoтреть скрины сoхрaненные через PAINt, тa еще бoль

    • Нравится 2

    • У камеры слишком маленькое разрешение и дальность, если разрешение увеличивать, то время обработки вырастает в сотни, а то и тысячи раз. Геолайзер использовать более разумно, т. к. он сканирует 64 блока в пределах 32x блоков, как угодно.

    Определять победителей можно установив в правилах отправку на сервер уникальных меток для каждого робота в команде (либо просто привязав адреса роботов к командам, чтобы избежать читов) т. е. живые роботы должны сообщать в эфир "я еще жив!".

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

    Прежде чем публиковать идею, надо было бы протестировать саму возможность реализации, микроконтроллер и ангел-апгрейд может и подойдут, а ванильный TNT отпадает сразу - слишком лагучий и непредсказуемый.

    • Нравится 1

  7. Если не хочется городить таймер, можно использовать computer.beep() - предел 5 секунд. Поэтому, если надо дольше, то все-равно придется делать цикл.

     

    Робот в цикле сканирует под собой квадрат x8 блоков, если обнаружены блоки из указанного диапазона - обходит их все, если обнаруживает блок с отрицательной плотностью (по-дефолту -0.3, это максимальная плотность бедрока при обычном уровне шума) завершает цикл и переходит к следующему столбу. Если же никаких блоков не найдено, то опускается, сканирует и т. д.

     

    Столбы x8 блоков обходятся по спирали (чтобы робот обрабатывал максимум блоков в пределах загруженных чанков), пока робот идет вниз, он не выходит за пределы столба - при каждом сканировании делается поправка.

     

    Я гонял копалку на специальном стенде - размечал квадраты бедроком (где-то на 10 блоков под роботом), через дебаг-карту заливал руды между роботом и бедроком, запустив робота можно увидеть весь алгоритм сканирования и добычи как на ладони.


  8. Кто-то спрашивал оригинальный код копалки. Оригинальный я потерял, но взял сжатый, восстановил имена переменных и добавил коментарии. Возможно, нашел баг с сундуком, надо будет протестировать.

    http://pastebin.com/abmQgbCy

     

    Если кому-нибудь интересно, могу написать подробный гайд вроде: "пишем копалку с нуля", с описанием необходимых функций и мелких усовершенствований, совместив которые, можно было бы написать самую совершенную копалку.

    • Нравится 7

  9. Когда его запустили, я на него зашел, повтыкал и вылетел, даже на минимальных настройках лагает, фризит, матерится. Bs, от чего это, то-ли моды какие, то-ли... не знаю.

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


  10. Totoro сделал визуальную писалку, можно такое и для самих компов накодить, но интерфейс будет не очень удобный.

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


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

    Либо, можно попросить админа надюпать жестких дисков с одинаковым адресом.

    • Нравится 1

  12. Отличие от алгоритмов типа LZ - использование эвристического анализатора текста (который я так и не взялся сделать), LZ просто ест все, что ему даешь, а этот алгоритм предназначен специально для сжатия текста, а урезание диапазона кодировки повышает эффективность. (хотя, я об этом уже сказал не один раз - меня никто не понял)

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

     

    Алгоритм взял не с потолка, сжимал код автозаменой в n++, потом сделал макрос и увидел, что нужен анализ всего словаря, затем каждого слова в отдельности. А все потому-что могут попасться схожие слова, с разной эффективностью, например end - 350 слов (1400 символов), end[пробел] - 300 слов (1200 символов), LZ сначала возьмет то слово, которое больше и эффективность сжатия этого места получится на 14% ниже. Поэтому надо для каждого совпадения проводить сравнение в словаре, чтобы исключать пересекающиеся слова с меньшим коэффициентом сжатия.

×
×
  • Создать...