Einstieg - Blindekuh
Das Problem
Der gelbe Fisch yello
spielt gerne Blindekuh. Irgendwo im Aquarium ist ein
schwebender Ball versteckt. yello
will diesen Ball finden.
Programm: blindekuh0.sb2
Ziel ist es, das Blindekuh-Problem in der folgenden verallgemeinerten Form zu lösen.
Zu Beginn sollen sich der gelbe Fisch und der Ball irgendwo im Aquarium befinden. Der gelbe Fisch soll dann den Ball systematisch suchen.
Beispiel 1 - gelber Fisch mit Ball vorher/nachher
Beispiel 2 - gelber Fisch mit Ball vorher/nachher
Lösestrategien
Wie kann der gelbe Fisch systematisch vorgehen, um den Ball zu finden? Die folgenden Aufgaben weisen dir einen Weg zur Lösung des Blindekuh-Problems. Du kannst natürlich auch versuchen, das Problem selbstständig zu lösen.
Aufgabe 1: Eine Suchstrategie
(a) In der folgenden Abbildung hat yello
bei seiner Suche eine Spur hinterlassen.
Kannst du anhand der Spur die von yello
benutzte Strategie rekonstruieren.
Beschreibe sie in Worten.
(b) Denke dir selbst eine Strategie aus. Verdeutliche diese Strategie anhand einer Skizze.
Formulierung eines Löseverfahrens
Wie betrachten hier die folgende Lösestrategie:
Zunächst schwimmt der Fisch nach unten, anschließend in die linke untere Ecke des Aquariums. Dann beginnt er, systematisch von unten zwischen dem linken und rechten Rand des Aquariums hin und her zu schwimmen, wobei er sich bei jeder Bewegungsumkehr ein Stück nach oben bewegt. Wenn er auf diesem Weg den Ball trifft, schwimmt er nicht mehr weiter.
Diese Lösestrategie soll jetzt weiter präzisiert werden.
wiederhole bis der Rand oder der Ball berührt wird: schwimme ein Stück nach unten wenn der Rand berührt wird: drehe dich nach links schwimme ein Stück nach oben wiederhole bis der Rand oder der Ball berührt wird: schwimme ein Stück nach vorne wenn der Rand berührt wird: ...
Aufgabe 2: Ein Löseverfahren
Ergänze die begonnene Präzisierung der Lösestrategie.
Übersetzung in ein Scratch-Programm
Wenn du beim Formulieren des Löseverfahrens alles bedacht hast, dann sollte der letzte Schritt - die Übersetzung in ein Scratch-Programm - keine großen Schwierigkeiten mehr bereiten. Du musst jetzt z.B. nur noch festlegen, was unter "einem Stück" zu verstehen ist.
Aufgabe 3: Ein Programm zur Lösung des Problems
Entwickle ein zum Löseverfahren passendes Programm und teste es mit unterschiedlichen Ausgangssituationen.