Zum Hauptinhalt springen

Kampf

In diesem Tutorial geht es erstmals um eine Konfrontation der Ameisen mit Feinden, den Wanzen. Eine Wanze in einem AntMe!-Spiel ist viel stärker als eine einzelne Ameise. Mit der Zeit kann sie außerdem noch ihre Lebenspunkte regenerieren. Bei einem Kampf solltest du möglichst geschickt vorgehen. Es sollten nicht zu viele deiner Ameisen sterben, die Wanze muss aber am Ende dennoch besiegt werden.

Suche bei „Kampf“ die Methode „SiehtFeind (wanze)“.

Füge ihr folgenden Quelltext hinzu:

public override void SiehtFeind(Wanze wanze)
{
LassNahrungFallen();
if(AnzahlAmeisenInSichtweite >= 2)
{
GreifeAn(wanze);
}
else
{
GeheWegVon(wanze);
}
}

Suche nun die „WirdAngegriffen“ (wanze) Methode. Füge ihr folgenden Quelltext hinzu:

public override void WirdAngegriffen(Wanze wanze)
{
if(AktuelleEnergie < MaximaleEnergie / 2)
{
GeheZuBau();
}
}

Was bewirken diese Quelltextzeilen? Wenn eine Ameise eine Wanze sieht, dann schaut sie erstmal, ob sie mindestens zwei Freunde in ihrer Nähe hat, damit alle drei zusammen die Wanze angreifen können. Stellt die Ameise fest, dass ausreichend Freunde in der Nähe sind, dann greift sie die Wanze an und hofft, dass die anderen Ameisen es ihr gleich tun. Sind nicht genug Freunde in der Nähe, läuft die Ameise weg. In beiden Fällen lässt sie ihre Nahrung fallen, damit sie schneller laufen kann.

Während des Kampfes überprüft die Ameise ständig ihren (Lebens-) Energiewert. Hat sie nur noch wenig Energie, läuft sie zurück zum Ameisenbau, um sich zu erholen.

Für jede getötete Wanze bekommst du 100 Punkte.

Es gibt noch eine Möglichkeit, das Verhalten deiner Ameisen zu verbessern. Versuch dir vorzustellen, was passiert, wenn sich eine Ameise zwischen einem Zuckerhaufen und einer Wanze befindet und beide in Sichtweite sind. Es kann sein, dass die Ameise sich in einem Moment dazu entscheidet, zu dem Zuckerhaufen zu gehen, im nächsten Moment zu der Wanze und dann wieder zu dem Zuckerhaufen, und so weiter. Da die Ameise nicht weiß, wem sie den Vorzug geben soll, wollen wir sie nun gegen die Wanze ins Gefecht schicken.

Suche die zwei von dir zuvor bearbeiteten „Sieht“-Methoden für Zucker und Obst. Füge um den bestehenden Quelltext in beiden Methoden folgende Bedingung hinzu.

Achtung

Es ist wichtig, dass diese Bedingung den dort bereits vorhandenen Quelltext umschließt

if(!(Ziel is Wanze))
{
...
}

Mit diesem Quelltext-Befehl werden deine Ameisen nur dann auf die Nahrung in ihrer Nähe reagieren, wenn sie nicht schon einer Wanze nachlaufen oder mit ihr kämpfen.

So sollte es dann im Editor aussehen, nachdem du die Bedingung eingefügt hast:

Wenn du das Spiel nun mit dem grünen „Play“-Ikon startest, wirst du feststellen, dass die Ameisen selten den Kampf mit einer Wanze gewinnen. Das passiert meistens, wenn zufällig viele Ameisen auf einmal in der Nähe einer Wanze sind. Meistens laufen sie aber weg. Woran liegt das? Die Quelltext-Befehle für den Kampf (Nahrung liegenlassen, gemeinsam angreifen) hören sich doch sehr sinnvoll an! Das hat folgenden Grund: im Moment ist die Wahrscheinlichkeit sehr gering, dass sich genügend Ameisen nahe beieinander aufhalten, wenn eine Wanze in Sichtweite ist. In dem nächsten Tutorial werden wir eine Möglichkeit kennenlernen mehr Ameisen zusammenzurufen. Außerdem wirst du lernen, wie du deine Ameisen stärker machst, um eine Wanze schneller besiegen zu können.