AntMe! - Auf der Nahrungssuche
Lernpfad
|
Ziele des Lernpfads
- neue unbekannte Methoden von AntMe! entdecken und anwenden
- Logikfehler in der Programmierung erkennen und verbessern
- Äpfel und Zucker in den Bau tragen
- Routinen programmieren, welche die Ameisen vor Wanzen schützen
Unsere Ameisen wollen das auch können.
|
- public override void Sieht(Zucker zucker)
- {
- (zucker);
- }
- public override void ZielErreicht(Zucker zucker)
- {
- (zucker);
- ();
- }
GeheZuBauNimmGeheZuZiel
Implementiere die richtige Lösung in deiner Simulation! |
Etwas Unerwartetes tritt auf
Wie der Zucker in den Bau kommt
|
Die Ameisen bringen den Zucker in ihren Bau. Vergleiche deine Lösung mit dem Video.[Anzeigen]
In der Methode (ishte)(Zucker zucker) wenden wir einen Trick an. Das Problem ist: die Ameisen bleiben mit ihrem (krceuz) am Berg stehen. Sie machen das, weil sie den Zucker aufnehmen und beim Weggehen erneut die (htmdeeo) Sieht(Zucker zucker) aufgerufen wird. Mit einer if- (nenbidugg) überprüfen wir, ob die Ameise bereits eine (atsl) trägt.
Den alten Code:
public override void Sieht(Zucker zucker) { GeheZuZiel(zucker); }
ändern wir wie folgt ab:
public override void Sieht(Zucker zucker) { if (AktuelleLast == 0) { GeheZuZiel(zucker); } }
AktuelleLast ist ein (tuibatrt) der Klasse (aeimes), welches das getragene Gewicht der Ameise speichert.
|
Kommentare interpretieren
|
/// <summary> /// Wird einmal aufgerufen, wenn die Ameise ein Obststück als Ziel hat und /// bei diesem ankommt. /// </summary> /// <param name="obst">Das Obstück.</param> |
(Obst obst) |
/// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise mindestens eine Wanze /// sieht. /// </summary> /// <param name="wanze">Die nächstgelegene Wanze.</param> |
(Wanze wanze) |
/// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise von einer Wanze angegriffen /// wird. /// </summary> /// <param name="wanze">Die angreifende Wanze.</param> |
(Wanze wanze) |
/// <summary> /// Liefert die aktuelle Last /// </summary> |
() |
/// <summary> /// Lässt die Ameise in entgegengesetzte Richtung davon laufen /// </summary> /// <param name="ziel">Objekt, vor dem weggerannt werden soll</param> /// <param name="entfernung">Entfernung, die zurückgelegt werden soll</param> |
(Spielobjekt ziel, int entfernung) |
public override void WirdAngegriffenpublic void GeheWegVonpublic int AktuelleLastpublic override void ZielErreichtpublic override void SiehtFeind
Die Flucht vor den Wanzen
Die Ameisen bringen den Apfel in eine falsche Richtung, wenn ihnen eine Wanze über den Weg läuft. Sie laufen mit einer wesentlich langsamer, weshalb sie den Zucker oder den Apfel abwerfen sollen.
Dafür gibt es folgende Methode:
LasseNahrungFallen()
Die Ameise lässt die gerade getragene Nahrung fallen. Zucker geht dabei verloren, Äpfel bleiben liegen und können wieder aufgenommen werden. Der Befehl muss nicht ausgeführt werden um Nahrung in den Bau zu schaffen. Das passiert automatisch.
Veränder das Verhalten der Ameise! |
Das kannst du jetzt
- den Ameisen eine eigene künstliche Intelligenz zur Nahrungssuche entwickeln
- die Ameisen vor Feinden schützen
- neue Methoden von AntMe! kennengelernt, die später für die individuelle Stärke des Volkes nützlich sein könnten
Unsere Ameisen schützen sich jetzt vor den Käfern. Arbeite den nächsten Lernpfad durch, indem sich die Ameisen durch eine geschickte Kommunikationen vor Feinden warnen und die Nahrung gemeinsam in den Bau bringen. Zum nächsten Lernpfad: AntMe! - Eine Ameisenstraße
Quellen
- ↑ Quelle: http://antme.net