Prof. Dr. Franz Schweiggert -- Sektion Angewandte
Informationsverarbeitung -- 20. Januar 1999
Dr. Andreas Borchert Blatt 11
Ingo Melzer
[c]
Allgemeine Informatik I (WS 1998/99)
Abgabetermin 27. Januar 1999
Leider sind Sie in einem Irrgarten gefangen. Da Sie aber einen Computer und
eine Karte zur Verfügung haben, schreiben Sie sich ein Programm, das Ihnen
den Weg sucht. Ihr Labyrinth ist rechteckig und hat eine maximale
Seitenlänge von 128. Auf der rechten und auf der linken Seite befindet
sich jeweils genau ein Eingang. Ihr Programm sucht den Weg, der die
beiden Eingänge verbindet. Dieser Weg soll mit der rechten oder der linken
Hand-Methode gesucht werden. Hierbei legt man einfach eine Hand auf eine Wand
am Eingang und läßt die Wand erst wieder los, wenn man den anderen
Eingang gefunden hat. Eine Lösung könnte so aussehen:
XXXXXXX XXXXXXX XXXXXXX
X**XX*X X XX X X XX X
X*XX*** X XX*** X XX
**X**XX **X**XX X XX
X***XXX X***XXX X XXX
XXXXXXX XXXXXXX XXXXXXX
(a) (b) (c)
a ist die Lösung mit der ,,linken Hand-Methode``, b
mit der ,,rechten`` und c ist das leere Labyrinth.
Ihr Programm sollte bis zu drei Argumente verstehen: -s sollte
die Lösung schrittweise ausgeben und -q zusätzlich nach jedem
Schritt noch auf eine Eingabe warten. Als letztes sollte es noch möglich
sein, einen Dateinamen für den Irrgarten auf der Kommandozeile anzugeben.
Tips:
- Es reicht ein Programm für die rechte oder die linke Hand-Methode
zu schreiben.
- Sie finden einige Beispielirrgärten im
FTP-Verzeichnis der Vorlesung
.
- Lesen Sie als erstes den Irrgarten in ein Array ein.
- Prüfen Sie, ob das eingegebene Labyrinth auch brauchbar ist.
- Bei der Wegsuche hilft eine Variable, welche die aktuelle Laufrichtung
enthält.
- Viel Vergnügen.
Andreas Borchert
1/20/1999