Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
160 KAPITEL 12. PROGRAMMENTWURF<br />
unteren Ecke des Hamster-Territoriums mit Blickrichtung Ost be ndet, soll alle Korner aufsammeln<br />
und dann stehenbleiben.<br />
Die prazisierte Problemstellung lautet:<br />
bzgl. der Ausgangssituation:<br />
{ Der Hamster steht in der unteren linken Ecke des Territoriums.<br />
{ Der Hamster schaut nach Osten.<br />
{ Die Anzahl an Kornern im Maul des Hamster ist nicht festgelegt.<br />
{ Auf beliebigen Feldern in Territorium liegen beliebig viele Korner.<br />
{ Das Territorium ist von einer rechteckigen geschlossenen Wand von Mauern umgeben;<br />
ansonsten be nden sich keine Mauern im Territorium; es existiert mindestens ein Feld<br />
im Territorium, auf dem keine Mauer steht.<br />
bzgl. der Endsituation:<br />
{ Die Position des Hamsters ist nicht festgelegt.<br />
{ Die Blickrichtung des Hamsters ist nicht festgelegt.<br />
{ Die Anzahl an Kornern im Maul des Hamsters ist nicht festgelegt.<br />
{ Auf keinem Feld im Territorium sollen mehr Korner liegen (d.h. der Hamster soll alle<br />
Korner, die anfangs im Territorium liegen, einsammeln)<br />
bzgl. des Weges des Hamsters:<br />
{ Es gibt keine Constraints bzgl. des Weges des Hamsters.<br />
12.7.6.2 Losungsidee<br />
Der Hamster soll die Reihe " abgrasen\, in der er sich gerade be ndet. Anschlie end soll er<br />
testen, ob sich nordlich von ihm noch eine weitere Reihe be ndet. Wenn ja, soll er sich in diese<br />
Reihe begeben und diese Reihe abgrasen. Dieser Vorgang soll solange wiederholt werden, bis der<br />
Hamster die nordliche Begrenzungswand erreicht.<br />
12.7.6.3 Programmcode<br />
// der Hamster soll einzelne Koernerreihen abgrasen,<br />
// solange wie noch weitere Reihen existieren; er unterscheidet<br />
// dabei, ob er die Reihen von Osten oder von Westen aus abgrast<br />
void main()<br />
{<br />
ernte_eine_reihe_nach_osten();<br />
while (weitere_reihe_links_vom_hamster_existiert())<br />
{<br />
begib_dich_links_um_in_naechste_reihe();<br />
ernte_eine_reihe_nach_westen();