Задача была спроектировать механический клеточный автомат реализующий игру "жизнь" без использования каких бы то ни было элементов логики. Подробно расписывать устройство я не буду, дам только принцип действия основных узлов.
Итак, нужен механизм управляющий механическим лепестковым табло, отображающим эволюцию автомата в точном соответствии с её правилами. ПОнятно, что лепестки табло должны иметь различный цвет на каждой из двух своих сторон. Чёрный, допустим будет соответствовать "живой" клетке, а белый - мёртвой. Будем считать, что "мёртвое" состояние клетки или лепестка обеспечивается возвращающей пружиной, а "живое" штоком толкателя который выдвигаясь переворачивает лепесток чёрной стороной.
Значит, нам потребуется столько же штоков, сколько клеток на табло и "живая" клетка будет соответствовать выдвинутому штоку, а "мёртвая" убранному в исходное положение. Всё. Про табло можно забыть. Теперь, получается, что все зависимости обеспечиваются взаимным влиянием текущих состояний штоков друг на друга. У каждого штока ровно восемь соседей и каждый может быть в состоянии выдвинут ("живой") и убран ("мёртвый"). Вопрос в том, как можно собрать информацию о состоянии соседних штоков чтобы обеспечить требуемое состояние центрального, по отношению к соседним, штока. Вопрос решается, не просто, а очень просто. Нашему штоку ничего не мешает вращаться вокруг собственной оси, а муфте, насаженной на шток, вращаться относительно самого штока. Если эту муфту снабдить сухариком (или флажком), который бы зацеплялся за соседние штоки выставленные в положении "выдвинут", т.е. "живой", то за полный оборот штока можно получить зависящую от количества "живых" соседних, долю оборота муфты от её начального положения в количестве "осьмушек" полного оборота. Т.е., если соседних "живых" штоков два - то муфта провернётся, на 2/8, три - 3/8, и т.д. Теперь, нашу муфту надо соединить с замком на штоке, состоянием которого она будет управлять в зависимости от величины угла поворота муфта и текущего состояния "закрыт/открыт". Будем считать, что состояние "закрыт" соответствует тому, что шток выдвинется на следующем цикле и управляющийся им лепесток табло перевернётся в "живое" состояние.
Тогда получается, что,
1 при повороте на 3/8 (ровно три "живых соседа" замок переводится в состояние "закрыт", вне зависимости от того, в каком состоянии он был раньше
2 при повороте муфты на угол меньше 3/8, замок переводится в состояние "открыт"
3 при повороте муфты на угол больше 3/8, замок также переводится в состояние "открыт".
Реализация такого замка может быть различной и каждый видел, например, защёлку шариковой ручки удерживающую подпружиненный стержень в том или ином положении и меняющий своё состояние при очередном нажатии. Здесь может быть подобная же и не единственная конструкция зависящая от угла поворота.
Ну и через каждый полный поворот штока, вся система штоков подаётся в сторону лепестков табло, но выдвигаются только те штоки, замки которых закрыты.
Вот в принципе, всё главное здесь приведено. Остальная конструкция не является существенной.
Внимательные читатели могут мне попенять, что я по ходу создал механические элементы "логики", хотя сам запретил их использовать. Но дело в том, что в механике такие элементы элементами логики не считаются и описываются совершенно иначе.
Отредактировано Шарпер (2023-02-17 14:54:42)