Hallo,
in der Schule wurde im Informatik-Unterricht der StringGrid durchgekaut und als Anwendung der Theorie das Spiel "Licht Aus!" programmiert. Dort muss man Figuren, die durch den Computer zufällig erzeugt werden, so bearbeiten, dass alle Lichter aus sind. Man klickt dabei auf ein Feld, dann ändert sich der Zustand des Feldes, aber nicht nur das, sondern die Felder, die über eine Kante mit dem geklickten Feld verbunden sind ändern sich auch. In meinen Fall ist dann kein Licht aus oder an, sondern das @ weg oder da.
Dabei war, so glaube ich, nur in meiner Programm-"Fassung" einer, dem Informatik-Lehrer und mir unerklärbarer, Fehler.
So sieht das Programm im Anfangszustand aus:
Natürlich ohne roten Kreis
Nach klicken des oben rot markierten Feldes, erscheint aber, wie im nächsten Bild zu sehen ist, auch ein "Licht" im oberen mittleren Feld, was nicht sein dürfte.
So ähnlich ist das auch, wenn man das untere mittlere Feld drückt. Dann wird fälschlicherweise das obere rechte "Licht" aktiviert. Die ist mir auf die schnelle aufgefallen, es kann jedoch noch sein, dass es noch andere "spukende Lampen" gibt.
Dem Phänomen konnte ich auch mit Variablen-Überwachung auf die schliche kommen, aber sowohl der Delphi-7-Personal-Compiler, als auch mein Delphi-7-Enterprise-Compiler, zeigen keine unterschiedlichen Ergebnisse. Deshalb vermute ich, dies liegt am Array: Ich glaube nämlich nicht, dass diesem egal ist, wenn man außerhalb des Arrays befüllen will. Den Schülern und Schülerinnen wurde zwar erzählt, dass diese falschen Eingaben Delphi abfängt, was ich aber nicht glaube. Natürlich gibt es das Programm inklusive Quellcode im Anhang zu laden.
Beste Grüße
klassiknerd
- H. v. Karajan