Spiele

Hier ein paar selbst programmierte Spiele. Alle Programme hier sind Opensource-Freeware oder GPL und dürfen somit beliebig weitergegeben werden.


Sudoku

Bild eines 9*9-Sudokus

sudoku.tar.gz
Dies sind ein paar kleine Programme um Sudokus zu erstellen, zu drucken und automatisch zu lösen.

Aufruf-Beispiele:

> machsudoku -z123 >neu.txt
> printsudoku neu.txt neu.ps
> lpr neu.ps      ;den Ausdruck nehmen und von Hand lösen.
> sudoku neu.txt  ;Überprüfen der Lösung

Lichter aus

Bild von 5*5-Lampenfeld

Dies ist ein Spiel ähnlich lights-off oder lights-out.
Das Ziel dieses Spiels ist es in einem Feld von 5*5 Lampen alle Lichter zu löschen. Die Schwierigkeit dabei ist, dass wenn man ein Licht ein- oder aus-schaltet, die benachbarten Lichter auch ihren Zustand wechseln.

lichteraus.tar.gz
Das Programm funktioniert unter Linux und MacOSX und vielleicht auch andern Unix-Varianten.


Nimm

Nimm-Spiel auf LED-Matrix

Dieses Nimm-Spiel ist die Variante Mariabad in der Misereversion. Das heisst wer den letzten nimmt hat verloren.
Das ist das erste Beispielprogramm für die RGB-LED-Matrix, die mit Mikrocontrollern angesteuert wird. Das Programm läuft also auf einem dieser Mikrocontroller.

ledmatrix.tar.gz


Memory und Nimm mit Python

Memory-Spiel mit Aminosaeuren

Hier zwei kleine Spiele, mit der Programmiersprache Python. Um sie zu spielen sollte Python-2.7.6 oder neuer installiert sein.

Das Nimm-Spiel funktioniert gleich wie obige Variante mit der LED-Matrix, aber nur im Textmodus.

Das Memory-Spiel ist noch mit Optionen im Programm anpassbar.
In den Voreinstellungen werden Aminosäuren und die entsprechenden 1-Buchstaben und 3-Buchstaben-Abkürzungen verwendet. Es müssen also jeweils 3 Felder richtig ausgewählt werden um aufzudecken.
Man kann mit den Optionen aber auch einstellen, dass nur 2 aufgedeckt werden müssen.

pythonspiele.tar.gz


Rubiks Cube

Wuerfel und Abwicklung

Dies ist ein erster Versuch den Zauberwürfel auf dem Computer zu simulieren.
Mit Linker Maustaste in der Abwicklung geklickt dreht nach links, mit der Rechten Maustaste nach rechts, und mit mittlerer Maustaste wird gleich um 180 Grad gedreht.

rubik.tar.gz
Das Programm ist bisher nur unter Linux getestet. Könnte aber auch auf andern Systemen funktionieren.


Schach-Roboter

Schachcomputer

Dies ist mein erster Versuch zum Bau eines Schachroboters.
Der Roboterarm gibt noch einige mechanische Probleme, aber immerhin funktioniert schon mal das Sensorfeld und ein einfaches Schachprogramm auf dem Mikrocontroller.

Also ohne Roboterarm ist es halt bisher nur ein Schach-Computer. Das heisst man muss die Züge, die der Roboter machen sollte noch von Hand machen.
Das Schachbrett ist auf der Unterseite mit 64 Hall-Sensoren versehen. Diese können die Figuren von einem Magnetschach erkennen. Die Sensoren vom Typ SS495A sind so montiert dass Magnetnordpole die Spannung erniedrigen.
(Bei Figuren mit Südpolen nach unten müsste das Programm noch angepasst werden).
Der verwendete Microcontroller ist der Atmega1284P. Das ist der AVR-Controller mit am meisten RAM (16KB).
SchemaControllerSchemaSensormatrix

Das bisherige Programm funktioniert mit einer 4-Zeilen-LCD-Anzeige und 5 Tasten als Eingabe um Einstellungen wie z.B. Spielstärke zu machen. Wenn dann mal der Roboterarm funktioniert gibt es noch eine Serielle Schnittstelle (UART) die dann mit dem Mikrocontroller im Roboterarm kommuniziert.

Wem das eingebaute Schachprogramm zu schwach ist, kann auch über USB mit einem Computer verbinden der dann mit z.B. Stockfisch die Schachzüge berechnet. Dazu muss aber das Programm noch angepasst werden.

Downloadbare Programme:
schachavr.tar.gz   Programm für den Mikrocontroller
schach.tar.gz       Programm das unter Linux läuft

Das Schachprogramm, also der Teil der die Züge berechnet ist das gleiche auf dem Mikrocontroller und unter Linux. So kann man das Programm auch direkt auf einem Linux-Computer austesten.
Ein paar Kleinigkeiten funktionieren noch nicht:

Man kann auch eine beliebige Startstellung eingeben. Dazu wird der entsprechende Punkt im Startmenu ausgewählt, und dann wenn man eine Figur auf das Brett stellt merkt es das Sensorbrett und gibt ein Auswahlmenu zur Rückfrage um was für eine Figur es sich handelt.
Wenn man in einem Spiel versehentlich Figuren umwirft stellt sich noch das Problem sie wieder korrekt hinzustellen. Da könnte ein weiteres Unterprogramm das auf Tastendruck die aktuelle Stellung anzeigt hilfreich sein.

fleissiger Biber

BiberBild

Es sind die folgenden fleissigen Biber bekannt:
(Bei den Zuständen (Z) ist Halt nicht mitgezählt.)

  Z  Anzahl Einsen, benutzte Bandlänge, Anzahl Schritte
  1  1              2                   1
  2  4              4                   6
  
  3  5              5                   21  (wenn maximale Schrittzahl gesucht)
  3  6              6                   14  (wenn maximale Anzahl Einsen)
  3  5              7                   16  (wenn maximale Bandlänge)
  
  4  13             15                  107 (maximale Schritte und Anzahl Einsen)
  4  9              16                  61  (maximale Bandlänge)
  
  5  4098           12290               47176870  (nicht sicher ob das wirklich ein Fleissiger Biber ist)
  6  ??             ??                  ??        (im Spektrum angegebene Minimalwerte nicht überprüfbar)
  
Hier meine bisherigen Programme um fleissige Biber zu suchen:
fleissigerbiber.tar.gz Programme um beste Biber zu suchen (such*biber.cc)
ledmatrix.tar.gz Mikrocontroller-Programm fuer LED-Matrix (biber.cc)
Damit ist auch obige Tabelle überprüfbar.

Definitionen:


Links auf einige ältere Spiele

Ich hatte auch noch ein paar Spiele auf dem Amiga programmiert. Falls jemand interressiert ist, könnte ich die auch wieder mal ausgraben.
Letzte Änderung: 20.Sep.2017 / Rolf                                                                                 Validator