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?