October 1st, 2016

404

Алгоритмическое

(интересно только задротам в Infinifactory)

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

Предположим, у нас конвейер с временем доставки N. Элементы конвейера: конвейер (прямой и перевёрнутый), подъёмник. Неявный элемент - гравитация, которая падение вниз.

Предположим, что у нас доставка в заданную сторону №1 (остальные - №2, №3, №4, причём №4 - противоположная).

Мы хотим осуществить доставку за N+2*(n+1) (то есть за N+1, N+3, etc).

Если мы делаем обычную плоскую петлю (сдвиг в стороны №2 или №3 с возвратом обратно), то это добавляет 2*x тиков, где x - размер петли. Заметим, нас интересует только размер в 2/3, потому что в основном направлении (№1) как ехали по таймингам, так и едем.

Если мы делаем вертикальную петлю (подъём/спуск), то это даёт нам так же 2*n (подъём + спуск).

Очевидный просящийся трюк: если на пути есть падение (если нет - вертикальная петля нам в помощь), то сделать overprovisioning, то есть сделать петлю в вертикальном направлении с возвратом в направлении №4. Но тут мы имеем опять 2*n, потому что оверпровиженинг n, возврат n.

Остальные варианты выглядят как комбинация этих же - и я не могу придумать такой конфигурации движения, которая бы была +(2*n+1) от требуемой. Только трюки с задержками на источниках.

Наверное, задачу даже можно переформулировать иначе: если мы находимся в метрическом пространстве с дискретной метрикой расстояния x+y, то в таком пространстве нельзя изменить длину пути из точки A в точку Б на нечётное число. Это даже интуитивно понятно. Вот что не интуитивно понятно: верно ли то же самое для трёхмерного пространства, где дискретная метрика расстояния вида x+y+z.
404

infinifactory

Я прошёл navigation computer. Я был сильно демотивирован офигенным решением, которое я видел на ютубе, но которое я сейчас (к сожалению) не могу найти.

Следующий паззл - разделить поток кубиков в соотношении 25:16. Очевидное решение - собрать цепочку из 41 кубика и реагировать на это - слишком грубо. Счётчик кажется разумной идеей, кроме момента, когда надо считать в ритме 25, а потом 16.

Заняться триггерами? Проблема в том, что в рамках движка я могу сделать 'latch', но не могу 'release'.

Но если что, мне удалось сделать относительно компактный генератор:



upd: оставить, я протупил. Минимальный генератор - кубик на встречных рельсах, но как из этого сделать 'release' мне пока не понятно.