Primeiro, para aqueles que não estão familiarizados com o jogo, é assim que o jogo funciona,
O objetivo do jogo é desligar todas as luzes, chamadas de "Luzes apagadas", e cada vez que pressionar o botão / luz inverte seu estado, bem como seus vizinhos adjacentes norte / sul / leste / oeste, e é praticamente isso .
Agora, o que eu conseguia pensar é usar chinelos SR ou chinelos JK. Isso se deve à sua capacidade de atuar como elemento de armazenamento (o estado inicial e o próximo estado). Mas não consigo pensar em maneiras de implementá-las.
Outra idéia é que cada conjunto de botão e seus botões / luzes adjacentes (NSEW) terão sua própria tabela de verdade, assim:
mas, é possível que as variáveis de entrada sejam iguais às variáveis de saída? Existem outras maneiras de fazer isso?
fonte
Eu diria que os chinelos T provavelmente seriam os mais fáceis, pois você pode alternar o estado de saída com uma única entrada. Você pode usar um único flip-flop para cada LED e com a entrada ligada ao seu botão e a saída ligada ao seu LED. Então você pode ter cada botão vinculado às entradas dos 4 chinelos adjacentes para alternar seu estado também.
Se você quiser usar flip-flops JK, poderá fazer T flip-flops com eles passando sua entrada para as duas entradas (J e K)
fonte
Se alguém quisesse construir um jogo desse tamanho até 7x7 a partir de uma lógica discreta, o design mais prático provavelmente seria usar um registrador de turno circulante para manter o estado do quadro e um contador de seis bits para acompanhar o turno posição dos dados no registro. Desloque os dados pelo shifter em grupos de 8 bits para direcionar uma exibição multiplexada e digitalizar um teclado multiplexado. Tenha um contador de sete bits "flip light" que funcionará sempre que os seis bits inferiores não forem zero ou quando o estado do bit superior corresponder ao estado do botão atualmente decodificado. Inverta o estado da luz atual sempre que todos os itens a seguir se aplicarem:
Observe que, embora uma quantidade significativa de lógica seja necessária para decodificar esses estados de contador, seria trivial em comparação com o número de chips necessários para implementar cada luz separadamente.
fonte