Inhaltsverzeichnis:

Arduino Sorta Sudoku-Spiel - Gunook
Arduino Sorta Sudoku-Spiel - Gunook

Video: Arduino Sorta Sudoku-Spiel - Gunook

Video: Arduino Sorta Sudoku-Spiel - Gunook
Video: Electronic Sudoku Game - Arduino 2024, November
Anonim
Arduino Sorta Sudoku-Spiel
Arduino Sorta Sudoku-Spiel

Viele Leute spielen gerne Sudoku und die Enkelkinder mögen Ratespiele, also beschloss ich, ein tragbares „Sorta Sudoku“-Spiel zu entwickeln. In meiner Version ist das Spiel ein 4x4-Raster, aber es ist nur eine Zahl angegeben. Die Idee ist, die restlichen Zahlen in den wenigsten Versuchen zu erraten. Es ist ein einfaches Spiel, aber es kann süchtig machen, wenn man die perfekte Punktzahl von 15 anstrebt. Das Spiel erfordert sowohl ein Element Glück als auch Logik und die beste Punktzahl, die ich bisher gesehen habe, ist 16. Schaut es euch an, denn sogar Wenn Sie nicht daran interessiert sind, das Spiel zu entwickeln, gibt es möglicherweise einige Elemente der Software, die Sie in einem Ihrer eigenen Projekte verwenden können.

Schritt 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Die Hardware kann auf so ziemlich jeder Arduino-Version basieren. Ich habe das Prototyping mit einem Nano gemacht und dann den Code in einen ATMega328-Chip gebrannt. Dies ist der gleiche Chip, der im Nano verwendet wird, aber die Verwendung allein ermöglicht eine kompaktere Bauweise und einen geringeren Stromverbrauch. Wie Sie sehen können, habe ich die Schaltung auf einem kleinen Steckbrett gebaut, das auf dem LCD-Modul huckepack sitzt. Der andere Aspekt, der sich unterscheidet, ist, dass der Nano mit einem externen Quarz mit 16 MHz läuft, aber ich habe mich dafür entschieden, den eingebauten 8-MHz-Oszillator für den ATMega328-Chip zu verwenden. Das spart Teile und Strom.

Das LCD von 2004 ist mit dem Arduino genauso verbunden wie ein 1602 LCD. Ein interessanter Unterschied besteht in der Adressierung der Anzeigeorte. Offensichtlich gibt es einen Unterschied, weil es vier statt zwei Linien gibt, aber im Jahr 2004 ist die dritte Linie eine Erweiterung der ersten Linie und die vierte Linie eine Erweiterung der zweiten Linie. Mit anderen Worten, wenn Sie ein Testprogramm hätten, das gerade eine Zeichenfolge an das LCD aussendet, würde das 21. Zeichen am Anfang der dritten Zeile erscheinen und das 41. Zeichen springt zurück zum Anfang der ersten Zeile. Die Software behandelt diesen Unterschied mit einer LCD-Adressen-Nachschlagetabelle.

Die Eingabe für das Spiel ist eine selbstgebaute 4x4-Schaltmatrix. Jeder Schalter entspricht direkt der entsprechenden Stelle auf dem Display. Es gibt auch einen Netzschalter und einen Reset-Schalter. Der Reset-Schalter löscht das alte Spiel und erzeugt ein neues Spiel.

Ich beschloss, meine Version batteriebetrieben zu machen, also benutzte ich einen gewöhnlichen 18650 Li-Ion, 3,6-Volt-Akku. Dazu musste ich eine kleine Platine hinzufügen, um das Aufladen über USB zu ermöglichen, und eine weitere kleine Platine, um die Batteriespannung für das LCD und den ATMega-Chip auf 5 Volt zu erhöhen. Die Bilder zeigen die Module, die ich verwendet habe, aber es gibt auch All-in-One-Module, die beide Funktionen erfüllen.

Schritt 2: Software

Die Software ist für den Nano- und den ATMega328-Chip gleich. Der einzige Unterschied liegt in der Programmiermethode. Ich verwende meine eigene Barebone-Version von LCD-Software und Tastatur-Matrix-Decodierungssoftware. Dies sind separate „Include“-Dateien für das Projekt.

Die Befehle „random“und „randomSeed“werden verwendet, um das Spiel zu erstellen. Ich habe eine Speicherung des "Seeds" im EEPROM hinzugefügt, um sicherzustellen, dass bei jedem Einschalten eine andere Sequenz generiert wird. Die Zeilen für das Puzzle werden aus einem 24-Element-Lookup-Array abgeleitet. Die ersten drei Zeilen werden zufällig aus der Tabelle ausgewählt, wobei überprüft wird, ob eine ausgewählte Zeile nicht mit einer vorherigen Zeile in Konflikt steht. Die letzte Zeile wird manuell gefüllt, da an dieser Stelle nur ein mögliches Muster vorhanden ist. Danach müssen Sie nur noch die Tastaturmatrix scannen und die Tastendrücke in Zahlen umwandeln.

Um eine Zahl zu erraten, drücken Sie wiederholt den entsprechenden Schalter. Jedes Drücken erhöht die angezeigte Zahl. Wenn Sie die gewünschte Zahl überschreiten, drücken Sie einfach weiter. Wenn Sie den Schalter eine Sekunde lang loslassen, wird die zuletzt angezeigte Zahl gesperrt. Wenn die Nummer falsch ist, wird die Nummer gelöscht und Sie können es erneut versuchen. Jeder Tipp erhöht den angezeigten Zähler und sobald eine Zahl richtig erraten ist, wird dieser Matrixschalter effektiv deaktiviert.

Schritt 3: Anzeigen

Anzeigen
Anzeigen
Anzeigen
Anzeigen
Anzeigen
Anzeigen

Hier einige Bilder der verschiedenen Displays.

Empfohlen: