Ein Marienkäfer als Turingmaschine
Kara und ihre/seine Welt
Die Ideen von Turing können auch mit dem Marienkäfer Kara umgesetzt werden.
Kara lebt in einer Welt aus quadratischen Feldern. Hier kann Kara einige einfache Operationen ausführen: einen Schritt vorwärts gehen, sich um 90° nach rechts bzw. links drehen, ein Kleeblatt hinlegen bzw. aufnehmen.
Aufgabe 1
Probiere das selbst einmal aus. Kara kannst du mit der Maus in ein beliebiges Feld der Welt "ziehen". Kara führt Operationen aus, wenn du die blauen Schaltflächen anklickst.
Steuerung von Kara
Wir betrachten die folgende Ausgangssituation: Kara steht auf dem ersten Kleeblatt einer Reihe von Kleeblättern.
Kara soll ein Kleeblatt am Ende der Reihe hinzufügen und zurück zur Ausgangsposition laufen. Wir entwickeln hierzu ein Steuerprogramm.
Mit der Schaltfläche [Programmieren] gelangt man in das Programmierfenster.
Die Idee zur Steuerung von Kara soll zunächst anhand der folgenden Tabelle erläutert werden.
aktueller Zustand | Bedingung | Aktionen | neuer Zustand |
---|---|---|---|
endeSuchen | auf Kleeblatt: wahr | Schritt vorwärts | endeSuchen |
endeSuchen | auf Kleeblatt: falsch | Kleeblatt hinlegen; links drehen; links drehen, Schritt vorwärts | anfangSuchen |
anfangSuchen | auf Kleeblatt: wahr | Schritt vorwärts | anfangSuchen |
anfangSuchen | auf Kleeblatt: falsch | links drehen; links drehen; Schritt vorwärts | stop |
Kara befindet sich stets in einem bestimmten Zustand. Zu Beginn ist das der Zustand "endeSuchen". Kara hat Sensoren, mit denen sie/er z.B. wahrnehmen kann, ob sie/er auf einem Kleeblatt steht. Je nach Zustand und wahrgenommener Umgebung kann Kara dann Aktionen ausführen und gegebenenfalls in einen neuen Zustand wechseln. Wenn sich Kara z.B. im Zustand "endeSuchen" befindet und auf einem Kleeblatt steht, dann soll Kara einen Schritt vorwärts gehen. Zudem soll Kara im Zustand "endeSuchen" verbleiben.
Eine solche Steuertabelle lässt sich im Programmierfenster aufbauen.
Zunächst führt man die Zustände ein. Beachte, dass die jeweils benötigten Sensoren bereitgestellt werden müssen. Beachte auch, dass ein Zustand als Startzustand ausgezeichnet wird.
Anschließend werden die Zustandsübergänge (wie in der Tabelle beschrieben) festgelegt.
Wenn das Steuerprogramm fertiggestellt ist, kann Kara das Programm (im Weltfenster) ausführen.
Aufgabe 2
Probiere das selbst einmal aus. Gib im Programmfenster ein geeignetes Steuerprogramm ein und teste dieses Steuerprogramm im Weltfenster.
Kara lernt rechnen
Kara soll Kleeblätter benutzen, um einfache Rechenoperationen auszuführen. Zahlen sollen dabei mit Kleeblättern dargestellt werden. So soll z.B. die Zahl 4 mit einer Kleeblattreihe bestehend aus 4 Kleeblättern codiert werden. Im Beispiel oben kann dann das Hinzufügen eines Kleeblatts als Rechenoperation "+1" gedeutet werden.
Im Folgenden betrachten wir die Rechenoperation "*2". Zur Ausführung dieser Rechenoperation muss also die Länge einer Kleeblattreihe verdoppelt werden. Schaffst du das?
Aufgabe 3
Entwickle ein Kara-Steuerprogramm zur Verdopplung von Kleeblattreihen.
Aufgabe 4
Wir schränken die Kara-Welt ein. Im Bereich [Größe] im Weltfenster kann man die Breite und Höhe des Weltfensters festlegen.
Entwickle ein Kara-Steuerprogramm zur Verdopplung von Kleeblattreihen.
Aufgabe 5
Kara soll Nachrichten verschlüsseln. Jeder Buchstabe wird durch eine Kleeblattreihe (bzw. Zahl) codiert, der Buchstabe A durch eine Kleeblattreihe der Länge 1, der Buchstabe B durch eine Kleeblattreihe der Länge 2 usw.. Beim Verschlüsseln sollen 3 Schritte im Alphabet weitergegangen werden.
Entwickle ein Kara-Steuerprogramm zur Ausführung der Verschlüsselung.
Überlege dir selbst, was am Ende des Alphabets geschehen soll und ob bzw. wie das mit Kara realisierbar ist.