14.12.2012 Aufrufe

2. Von objektorientierten Ameisen

2. Von objektorientierten Ameisen

2. Von objektorientierten Ameisen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

}<br />

}<br />

break;<br />

case "Arbeiter":<br />

{<br />

Arbeiter.Wartet(this);<br />

}<br />

break;<br />

}<br />

(Auch wenn dort kein Code für das Wartet()-Ereignis ausgeführt wäre, führt der obige<br />

Aufruf zu keiner Fehlermeldung.)<br />

Und so wartet die Spion-Klasse:<br />

public static void Wartet(Ameise ameise)<br />

{<br />

ameise.GeheGeradeaus(100);<br />

ameise.DreheUmWinkel(Zufall.Zahl(-20, 20));<br />

}<br />

Die konkreten Zahlen (100 und 20) sind ziemlich willkürlich und sollten unbedingt<br />

optimiert werden!<br />

Das Warten()-Ereignis der Arbeiter:<br />

public static void Wartet(Ameise ameise)<br />

{<br />

if (ameise.EntfernungZuBau > 400) //außerhalb gibt es keine Nahrung!<br />

{<br />

ameise.GeheZuBau();<br />

}<br />

}<br />

Aufgabe 8<br />

Schreiben Sie in die allgemeine Klasse Allgemein_GedächtnisWahl die Ereignisse<br />

mit Parameter Sieht(Zucker zucker) , Sieht(Obst obst) und Sieht(Käfer käfer).<br />

Gleichgültig welcher <strong>Ameisen</strong>typ etwas sieht, immer sollen die Koordinaten des<br />

gesehenen Objekts in der Liste gespeichert werden.<br />

Bei Sieht(Käfer, käfer) muss man bedenken, dass Chronos- und Spionameisen<br />

möglichst schnell fliehen sollten. Die Kämpferameisen hingegen greifen sofort an.<br />

(Eine mögliche Teil-Lösung am Ende des Kapitels)<br />

In der gleichen Klasse sollten noch zwei Ereignisse, die in der reinen Kämpferkolonie<br />

unnötig waren, festgelegt werden:<br />

public override void ZielErreicht(Zucker zucker)<br />

{<br />

50

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!