Во-первых, для тех, кто не знаком с игрой, так работает игра,
Цель игры состоит в том, чтобы выключить все источники света, которые называются «Lights Out», и каждое нажатие кнопки / источника света инвертирует свое состояние, а также соседних с ним север / юг / восток / запад соседей, и это в значительной степени ,
Теперь я могу подумать о том, чтобы использовать SR-триггеры или JK-триггеры. Это связано с его способностью выступать в качестве элемента хранения (начальное состояние и следующее состояние). Но я не могу думать о способах их реализации.
Другая идея заключается в том, что каждый набор кнопок и смежных (NSEW) кнопок / индикаторов будет иметь свою собственную таблицу истинности, например:
но возможно ли, чтобы входные переменные были такими же, как выходные переменные? Есть ли другие способы сделать это?
источник
Я бы сказал, что T триггеры, вероятно, будут самыми простыми, поскольку вы можете переключать их выходное состояние одним входом. Вы можете использовать один триггер для каждого светодиода, а вход связан с кнопкой, а выход - с светодиодом. Затем вы можете привязать каждую кнопку к входам 4 соседних триггеров, чтобы также переключать их состояние.
Если вы хотите использовать триггеры JK, вы можете сделать из них триггеры, передав свой вход на оба входа (J и K)
источник
Если бы кто-то хотел построить такую игру размером до 7х7 из дискретной логики, наиболее практичным вариантом было бы, вероятно, использовать регистр сдвига с обращением для хранения состояния доски и шестибитовый счетчик для отслеживания сдвига. положение данных в реестре. Сдвиг данных через сдвиг в группах по 8 бит для управления мультиплексным дисплеем и сканирования мультиплексной клавиатуры. Имейте семибитовый счетчик «перевернутого света», который будет работать всякий раз, когда младшие шесть битов отличны от нуля, или когда состояние старшего бита совпадает с состоянием текущей декодированной кнопки. Переворачивайте состояние текущего источника света всякий раз, когда применимо все следующее:
Обратите внимание, что, хотя для декодирования этих состояний счетчика потребуется значительное количество логики, это будет тривиально по сравнению с количеством микросхем, необходимых для реализации каждого источника света отдельно.
источник