Erstens funktioniert das Spiel für diejenigen, die mit dem Spiel nicht vertraut sind, so:
Das Ziel des Spiels ist es, alle Lichter auszuschalten, daher "Licht aus" genannt, und jeder Druck auf den Knopf / das Licht kehrt seinen Zustand sowie seine Nachbarn in Nord / Süd / Ost / West um, und das war's auch schon .
Was ich mir jetzt vorstellen kann, ist die Verwendung von SR-Flip-Flops oder JK-Flip-Flops. Dies liegt an seiner Fähigkeit, als Speicherelement zu fungieren (Anfangszustand und nächster Zustand). Aber ich kann mir anscheinend keine Möglichkeiten vorstellen, sie tatsächlich umzusetzen.
Eine andere Idee ist, dass jeder Satz von Tasten und die angrenzenden (NSEW) Tasten / Lichter eine eigene Wahrheitstabelle haben, wie folgt:
Aber ist es möglich, dass die Eingabevariablen mit den Ausgabevariablen identisch sind? Gibt es andere Möglichkeiten, dies zu tun?
quelle
Ich würde sagen, dass T-Flip-Flops wahrscheinlich am einfachsten sind, da Sie ihren Ausgangszustand mit einem einzigen Eingang umschalten können. Sie können für jede LED ein einzelnes Flip-Flop verwenden, wobei der Eingang an Ihre Taste und der Ausgang an Ihre LED gebunden ist. Dann könnten Sie jede Taste an die Eingänge der 4 benachbarten Flip-Flops binden lassen, um auch ihren Zustand umzuschalten.
Wenn Sie JK-Flip-Flops verwenden möchten, können Sie T-Flip-Flops daraus machen, indem Sie Ihren Eingang an beide Eingänge (J und K) übergeben.
quelle
Wenn man ein solches Spiel bis zur Größe 7x7 aus diskreter Logik bauen wollte, wäre das praktischste Design wahrscheinlich, ein zirkulierendes Schieberegister zu verwenden, um den Zustand des Bretts zu halten, und einen Sechs-Bit-Zähler, um die Verschiebung zu verfolgen Position der Daten innerhalb des Registers. Verschieben Sie Daten in Gruppen von 8 Bit durch den Shifter, um eine Multiplex-Anzeige anzusteuern, und scannen Sie eine Multiplex-Tastatur. Haben Sie einen 7-Bit- "Flip-Light" -Zähler, der immer dann ausgeführt wird, wenn die unteren sechs Bits ungleich Null sind oder wenn der Status des oberen Bits mit dem Status der derzeit decodierten Taste übereinstimmt. Schalten Sie den Status des aktuellen Lichts um, wenn alle der folgenden Bedingungen zutreffen:
Es ist zu beachten, dass zwar eine erhebliche Menge an Logik erforderlich wäre, um diese Zählerzustände zu decodieren, dies jedoch im Vergleich zu der Anzahl von Chips, die erforderlich sind, um jedes Licht separat zu implementieren, trivial wäre.
quelle