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

eu_tomat

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

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

  • Посещение

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

    331

Все публикации пользователя eu_tomat

  1. Найти файл с объявленной функцией можно, например, так: $ grep -lr 'function require' . ./lib/package.lua
  2. В какой версии так происходит?
  3. Да, в определённых случаях метатаблицы, конечно, помогают сократить код. Это понятно. Вопрос в том, как это поможет упросить наш случай.
  4. Если задаваться вопросами о смысле, то какой смысл и в функции __index, если наличие элемента в таблице легко проверяется обычным обращением к самому элементу? Чем это удобнее уже обсуждённой конструкции if tbl[idx] then?
  5. @man_cubus И что доказывает этот код?
  6. Сомнение в том, что __index вызывается только при отсутствии элемента в таблице.
  7. Кхе. Я ожидал увидеть кривую работу компонента, а ошибка возникла в своей же таблице. Ларчик просто открывался. Кстати, выше @ECS предложил более удобный вариант поиска элемента по id в качестве ключа, что избавляет от цикла:
  8. Компонент crystal, это прозрачный сундук из мода ironchest, подключается модом OpenPeripheral. Нумерация начинается с единицы, cry.getStackInSlot(i) возвращает таблицу с описанием содержимого слота или nil, если слот пустой. Код из стартового поста выглядит работоспособным, и я пока не вижу проблему. @Teen_Romance можешь выложить код не скриношотом, чтобы я его запустил у себя? А ещё нужны версии ironchest и OpenPeripheral.
  9. Идеи есть, но я пока не добрался до компа с Майнкрафтом, чтобы проверить. Можешь показать значения cry.getStackInSlot(i) для пустых и заполненных слотов?
  10. Что значит "не может дать индекс"? Как выглядит ошибка? Какая версия OpenComputers?
  11. Скорее всего, cry.getStackInSlot(j) для пустого слота возвращает пустую таблицу. Избежать исключения можно, проверив наличие поля cry.getStackInSlot(j).id.
  12. Например: https://minecraft-ru.gamepedia.com/OpenComputers/GPU_API https://minecraft-ru.gamepedia.com/OpenComputers/Event_API
  13. По какой ссылке качал? По этой? https://github.com/Jeija/spheretest/releases/download/release/spheretest_release.zip Я повторил эксперимент на другом компе. Первый раз запускал под Win7, второй раз под WinXP. Результат одинаков, мир плоский.
  14. Хорошо, попробую разобраться. По ссылке под видео скачал архив: https://github.com/Jeija/spheretest/releases/download/release/spheretest_release.zip Распаковал архив и запустил в нём файл minetest.exe, он там один. Выбрал и запустил мир spheredemo, он там тоже один. Вышел из домика и поднялся над планетой: Ничего похожего на сферу не наблюдается. Что я делаю не так?
  15. Что значит "не могу заставить"? Какие были совершены попытки заставить робота ломать блоки?
  16. Когда поверхность велика, и дальняя часть карты скрыта горизонтом или туманом, то в любой точке поверхность как тора, так и сферы можно считать условно плоской. Тут вопросов нет. Вопросы возникают на поверхностях с явной кривизной, которую невозможно не заметить. Рыбий глаз это искажение только напоминает. Различие в том, что фотку с эффектом рыбьего глаза всегда можно трансформировать в нормальный вид, а с этой картинкой такой фокус не пройдёт, перспектива иная. Тут сами блоки меняют ориентацию в пространстве, а не просто меняется точка зрения. Мне хотелось посмотреть, как выглядят крупные и высокие объекты с обратной стороны планеты, и я даже скачал демку. Но карта почему-то плоская, а запущенные спутники тупо уходят в землю. Карта интересна только своей зацикленностью в тороидальных координатах. В геймплей эта штука ничего пока не добавляет. Ну, зациклена карта, и что с того? Иллюзия сферичности тоже не добавит длительного интереса. Но посмотреть, как эта иллюзия достигается, будет интересно. Информативность видео недостаточна, я бы поставил свои эксперименты в этом мире. Кому-нибудь удалось запустить эту демку так, чтобы планета выглядела сферичной, как на видео?
  17. eu_tomat

    Дубокоп

    А разве алгоритм Дейкстры предусматривает обход всех узлов?
  18. К сожалению, это видео лишь поясняет, как достичь красивого соотношения сторон вокселей. Объяснение хорошее, но про взаимосвязь тора и сферы не сказано ничего. Я не понял смысла видео с первого раза. Когда увидел растягивающийся куб, понял, что есть искажения на углах, на которые игроку маловероятно натолкнуться. Модель понятна. Но сказанное про тор я вообще не смог сопоставить со сферой, и потому решил, что оно не имеет отношения к выбранной модели. Посмотрел внимательнее. Оказалось имеет. Как растянуть прямоугольник в тор, понятно. Тороидальные координаты тоже не вызывают вопросов. Также понятен трюк с траншей внутри тора. Непонятно, почему тор выглядит как сфера, а сфера ведёт себя как тор. Такое преобразование невозможно топологически, тор и сфера не гомотопны. И обойти кольцевую траншею на поверхности сферы тоже невозможно. Скорее всего, использован какой-то трюк визуализации, пояснения которого в видео не прозвучало. Остаётся один вопрос. Какой трюк позволяет отобразить тор в виде сферы?
  19. @Doob, а робот тогда будет перемещаться в каких координатах? Он будет двигаться вдоль поверхности шара или же по исходным, кубическим координатам? В первом случае вертикальная ось в кубических координатах будет меняться на 90 градусов при переходе с одной грани губа на другую. Во втором случае движения робота будут отвязаны от плоскости шара, и на обратной стороне шара робот будет располагаться вниз головой, а деревья для робота будут располагаться не только вертикально, но и горизонтально. Какой из вариантов ты предпочтёшь?
  20. В любом случае эта идея не для ближайшей сборки. А потом её вряд ли кто-то найдёт, т.к. темы о будущих сборках по традиции перетекают в холивары и затем перемещаются в корзину. Идея с шарообразным миром любпытная, я бы её перенёс, например, в шкатулку, но только выбросив всё остальное. Хорошо. Для начала найди возможность вменяемой системы координат в шарообразном мире. Где здесь верх, восток, юг? Видео демонстрирует способ превращения куба в шар. Координаты используются кубические, но исходный куб растягивается до формы шара. Так вот, на шаре всегда можно обозначить горизонталь и определить верх-низ, даже когда мы стоим по по центу блока, лежащего на грани исходного куба. А в кубических же координатах окажется, что можно стоять на одной из двух сторон блока, и в этом случае направление верха и низа резко меняется. Аналогично и для блока, находящегося в вершине куба, там возможны аж целых три направления "вниз". А у нас тут роботы бегают, им нужна чёткая система координат. Как предлагаешь решать эту проблему? Перенёс тему во флудилку. Поболтаем хотя бы о геометрии.
  21. Тут вопрос не в скорости, а в принципиальной возможности. Чтобы обучаться, нужно экспериментировать, сравнивать результаты со старыми. А как нейросеть поймёт, что текущий вариант действий лучше предыдушего, если ситуация каждый раз новая? Например, в прошлый раз было собрано 5 блоков руды за 5 секунд, а в этот 5 блоков за 7 секунд. На первый взгляд может показаться, что текущее решение хуже предыдущего, но на практике может оказаться, что прошлую задачу можно было выполнить за 4 секунды, а в этот раз 7 секунд являются наивысшим пределом. И как нам, не имея простого критерия правильности, обучить НС оптимальной копке? С нейросетями, играющими в простые игры, понятно: прошёл уровень, собрал все бонусы, сохранил жизни -- молодец; не прошёл уровень -- учись дальше. Но с Майном не так: каждый участок для добычи уникален, а поиск оптимума реализуется прожорливыми алгоритмами, для замены которых, собственно, и потребовались "быстрые" нейросети.
  22. А за счёт чего он будет достигаться? Откуда робот узнает, что поступил не самым оптимальным образом? Сама по себе нейросеть в лучшем случае научится добывать хоть что-то и хоть как-то.
  23. Да, хорошее решение. Я уже посмотрел последнюю запись блога. Да, медленная штука. Её обсуждение имело смысл только в противовес методам Монте-Карло. Я предпочитаю называть затраты на работу нейросетей не околонулевым, а фиксированным. От количества нейронов и связей между ними зависит сложность решаемых нейросетью задач. И "просто выплевывание готовых последовательностей" сводится к обсчёту всех нейронов с учётом их взаимосвязей. Да, алгоритм примитивный, но молотить придётся много. А если немного, то и результат будет не лучшим. Придётся искать компромисс, как и всегда. Кроме того, для обучения НС нужна таблица идеальных решений, а их тоже надо сначала найти, решая обсуждённые выше проблемы. Более шустрые языки программирования с мощными компьютерами помогут увеличить глубину поиска не особо сильно. Но идея интересна, согласен.
  24. Количество вычислений зависит от глубины экспоненциально, и поэтому увеличить глубину ощутимым образом всё равно не удастся. Вся надежда на алгоритмы.
  25. Кластеризация как раз и нацелена на уменьшение ширины и глубины поиска на локальных участках, отсекая вероятно неэффективные варианты. Да и муравьиный алгоритм достигает подобного результата другим путём. Использовать пустоты можно, но основное время тратится не расчистку прохода, на движение. Да и не так много пустот в слегка прогрызенной породе. Поэтому повторное использование пустот сгодится разве что на этапе доводки.
×
×
  • Создать...