• Keine Ergebnisse gefunden

9. ¨ Ubungsblatt zur Vorlesung Allgemeine Informatik III

N/A
N/A
Protected

Academic year: 2021

Aktie "9. ¨ Ubungsblatt zur Vorlesung Allgemeine Informatik III"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨at Ulm - Abteilung Angewandte Informationsverarbeitung Dr. Johannes Mayer und Hans Braxmeier, Wintersemester 2003

9. ¨ Ubungsblatt zur Vorlesung Allgemeine Informatik III

Abgabetermin: Dienstag, 13.01.2004 (4 w¨ochig!)

Geschenkeschieben

(20 Punkte)

Auch der Weihnachtsmann hat es im Dezember nicht einfach. Selbst wenn alle Geschenke verpackt und lieferfertig sind, steht Ihm noch eine Menge Arbeit bevor: Die Geschenke m¨ussen verschickt werden.

So wie jedes Jahr, sind auch dieses Mal die Geschenke (#) kreuz und quer im Hause des Weih- nachtsmannes verteilt, wie das folgende Bild zeigt:

Die Aufgabe des Weihnachtsmannes (schwarzes K¨astchen) ist es nun, alle Geschenke in diesem

”Labyrith“ auf die braun markierten Positionen zu schieben.

Der Weihnachtsmann ist ¨ubergl¨ucklich, daß Ihm stets seine Rentiere bei dieser schwierigen Aufgabe mit Rat und Tat zur Seite stehen, denn ein falscher Zug und ein Geschenk kann nicht mehr ausgeliefert werden.

Damit Ihm dieses Malheur nicht passiert, sollen sie Ihn bei seiner Aufgabe unterst¨utzen: Schrei- ben Sie ein Programm, mit dem der Weihnachtsmann sein Geschenkeverschieben ¨uben kann. Ihr Programm soll dabei das Spielfeld aus einer Datei einlesen. Stehen alle Kisten an der richtigen Stelle, ist das Spiel zu Ende.

Das Spielfeld ist dabei einem×n-Matrix, wobei die Gr¨oße der Matrix nicht fest fixiert, sondern beliebig f¨ur jede Spielfeldgr¨oße dynamisch angelegt werden soll (calloc). F¨ur jeden Matrixeintrag gibt es mehrere m¨ogliche Belegungen: leer, Wand, Kiste, Zielposition, Kiste auf Zielposition, Weihnachtsmann auf leerem Feld und Weihnachtsmann auf Zielposition. Der Weihnachtsmann kann sich bei jedem Schritt in eine von vier Richtungen um einen Schritt weiter bewegen, wenn

1

(2)

• die neue Position leer ist oder

• mit einer Kiste belegt ist und diese Kiste in der Bewegungsrichtung auf ein (in der Be- wegungsrichtung angrenzendes) leeres Feld geschoben werden kann.

Modularisieren Sie Ihr Programm, indem Sie zumindest ein Hauptmodul, ein Modul f¨ur den ab- strakten Datentyp

”Labyrinth“ und ein Ausgabemodul mit Escape-Sequenzen implementieren, sowie ein entsprechendes Makefile schreiben.

Hinweise

Obiges Spielfeld k¨onnte in ihrer Datei beispielsweise so aussehen:

19 11

#####

# #

#* #

### *##

# * * #

### # ## # ######

# # ## ##### __#

# * * __#

##### ### #.## __#

# #########

#######

Dabei steht 19 f¨ur die Breite und 11 f¨ur die H¨ohe des Spielfeldes, # f¨ur die Wand, * f¨ur eine Kiste, f¨ur eine Zielposition und . f¨ur die Startposition des Weihnachtsmanns. Leere Positionen sind durch Leerzeichen dargestellt.

Zur Abfrage einer Tasteneingabe erhalten Sie ein Beispielprogramm.

Infos zu Escape-Sequenzen finden Sie bei ¨Ubungsblatt 2 oder unter folgender Web-Adresse:

http://www.catalyst.com/support/help/cstools3/visual/terminal/escapeseq.html Viel Erfolg!

2

Referenzen

ÄHNLICHE DOKUMENTE

falsch angegbenen Optionsparametern (z.B. String statt Zahl oder umgekehrt) soll eine Usage-Meldung sowie eine Fehlermeldung ausgegeben werden. Die Suche soll rekursiv im

• Mit der Option -d soll ein Trennzeichen definiert werden k¨onnen (Fehlt diese Option, wird der Tabulator als Trennzeichen verwendet).. • Die Option -f zeigt an, welche

Denn wenn es so richtig kalt draußen ist, dann ist es etwas wunder- bares, sich an einem frischen Feuer zu wärmen und dabei noch eine schöne Rast mit herrlich heißen Würstle oder

»Viele Eltern wissen gar nicht, dass es schon erste Spiele für Kinder ab eineinhalb bis zwei Jahren gibt, die mächtig Spaß machen, und bei denen auch die kleinsten schon eine Men-

Wie auch schon im vergangenen Jahr wird es auch dieses Jahr wieder eine kostenlose Kinderbe- treuung geben, so dass die Eltern in aller Ru- he durch die festlich geschmückten

Für solche Fälle weiß das Geschenke-Spezial-Team der Apotheke Rat: Gesundheitsför- dernde Tees oder Säfte aus der Apo- theke erfüllen diese Anforderungen genauso wie ein

Denn durch Mose wurde uns das Gesetz gegeben, aber durch Jesus Christus sind die Gnade und die Wahrheit zu uns gekommen.. Niemand hat Gott

Nichts gegen Bern, Basel, Genf oder Lausanne und nichts gegen die überaus menschliche Schaden- freude darüber, dass das mächtige Zürich für einmal übertölpelt wurde und den