Lektion4

Aus AntMe! Wiki
Wechseln zu: Navigation, Suche

Nahrung

In dieser Lektion lernst du, wie du deinen Ameisen beibringst, sich zu bewegen und Nahrung zu sammeln.

Diese Vorgaben geben wir in der Entwicklungsumgebung ein – wir programmieren die Ameisen, das auszuführen, was wir ihnen vorgeben.

Unsere frisch erstellte Ameisenkolonie im Sandkasten ist in der Programmierung eine sogenannte Klasse. Darunter versteht man einen Plan, der festlegt, wie sich mehrere ähnliche Objekte verhalten sollen. Dieser Plan beschreibt Attribute (Eigenschaften) und Methoden (Verhaltensweisen) der Objekte.

Bei AntMe! sind Objekte die Ameisen. Indem wir ihre Klasse bearbeiten, legen wir ihre Verhaltensweisen fest. Zunächst wollen wir sie dazu bringen, sich zu bewegen. Suche dazu auf der rechten Seite im Solution Explorer die Zeile AlphaClass.cs und klicke sie.


Lektion4 1.png


Damit öffnest du im Code Editor in der Bildschirmmitte die programmierbare Klasse unserer Kolonie „Alpha“. Im unteren Teil siehst du die fünf Blöcke Kasten, Fortbewegung, Nahrung, Kommunikation und Kampf. Einen solchen Block nennt man „Methode“. Als Methoden bezeichnet man Unterprogramme, die das Verhalten von Objekten beschreiben. Indem man einem einzelnen Objekt vorgibt, wie er sich verhalten soll, können Objekte untereinander in Verbindung treten. Genau das sollen unsere Ameisen jetzt leisten, sie sollen ausschwärmen und nach Nahrung suchen.


Lektion4 2.png

Fortbewegung gibt den Ameisen vor, wie sie sich bewegen sollen. Klicke nun auf das kleine Pluszeichen links von Fortbewegung und schreibe den folgenden Programmbefehl bei „Wartet ( )“ in die Zeile zwischen die { }:


Lektion4 3.png


Das sieht dann im Editor insgesamt so aus:


Lektion4 4.png


Klicke nun auf die grüne „Play“-Taste in der Entwicklungsumgebung, um die AntMe!-3D-Ansicht zu starten. Jetzt wirkt sich dein Programmierbefehl „gehe gerade aus“ in der Spielwelt aus. Schon schwärmen die Ameisen aus dem Nest und verteilen sich im Sandkasten.


Lektion4 5.png


Im Moment rennen unsere Ameisen ziellos durch die Gegend. Dies änderst du, indem du sie auf Nahrungssuche schickst.

Suche zunächst die Methode „Sieht“ in dem Bereich Nahrung. Sie sieht so aus:


Lektion4 6.png


Ändere die Methode nun wie folgt ab:


Lektion4 7.png


Damit gibst du deinen Ameisen vor, dass sie sich zu einem Zuckerhaufen bewegen sollen, sobald sie ihn sehen. Dies tun sie aber nur unter der Bedingung, wenn („if“) ihre aktuelle Last = 0 ist, also wenn sie noch keine Last tragen.


Suche dir nun die Methode „Sieht“, die für das Obst zuständig ist. Ändere sie genau so ab wie auf dem letzten Bild beschrieben, außer dass du in die Klammern (obst) anstelle von (zucker) setzt. Der Unterschied besteht darin, dass die Ameisen jetzt zu einem Obststück laufen anstelle eines Zuckerhaufens. Auch das passiert unter der Voraussetzung, dass sie noch keine Last geladen haben.

Im Editor schaut es so aus:


Lektion4 8.png


Jetzt laufen deine Ameisen zu einem Zuckerhaufen oder einem Obststück, sobald sie es sehen. Sobald deine Ameisen an einer Nahrungsquelle angelangt sind, passiert aber noch nichts. Wir sollten jetzt den Ameisen mitteilen, was sie tun sollen, wenn sie an einer Nahrungsquelle angekommen sind.

Suche die Methode „ZielErreicht“, die für den Zucker zuständig ist. Füge ihr anschließend die folgenden Zeilen hinzu:


Lektion4 9.png


Suche anschließend die Methode „ZielErreicht“, die für das Obst zuständig ist. Ändere sie ebenfalls ab, indem du in die Klammern (obst) einsetzt anstatt (zucker).

Im Editor sieht es wie folgt aus:


Lektion4 10.png


Jetzt suchen deine Ameisen nach Nahrung ( Zucker und Obst) und laufen dorthin, sobald sie sie sehen. Wenn sie dort angekommen sind, nehmen sie Nahrung auf und tragen sie zurück in den Bau.


Lektion4 11.png


Dafür hast du acht Zeilen an Quelltext (auch Quellcode genannt) geschrieben.

Quelltext nennt man den in einer Programmiersprache geschriebenen Text eines Computerprogramms, das in Maschinensprache übersetzt werden kann. Diese Übersetzung gibt dem Computer vor, was er ausführen soll.

Einen solchen Übersetzer nennt man Compiler (lat. für compilare = anhäufen). Ein Compiler ist also eine Computeranwendung, die ein anderes Programm, das in einer bestimmten Programmiersprache geschrieben ist, so übersetzt, dass ein Computer sie ausführen kann.


Lektion4 12.png


Wenn du dem Spiel genau zusiehst, wirst du bemerken, dass immer neue Ameisen zu einem Obststück hinlaufen, auch wenn schon sehr viele Ameisen es tragen. Dieses Verhalten kannst du noch verbessern.

Suche die Methode „Sieht“ für Obst. Ändere die Zeile so ab, dass sie so aussieht:


Lektion4 13.png


Suche die Methode „ZielErreicht“ für Obst. Füge jetzt eine neue „if“-Bedingung hinzu:


Lektion4 14.png


In der „Sieht“ Methode haben wir überprüft, ob das Obststück noch Ameisen zum Tragen benötigt. In der „ZielErreicht“ Methode überprüfen wir das noch einmal mit „if-BrauchtNochTräger“. Der Grund für diese Doppelung: es kann sein, dass das Obststück noch einen Träger benötigt, wenn die Ameise es sieht. Wenn die Ameise am Obststück etwas später ankommt, kann aber schon eine andere Ameise an ihrer Stelle hinzugekommen sein und hilft beim Tragen.

Damit hast du deinen Ameisen beigebracht, wie sie sich Nahrung in Form von Obst und Zucker besorgen und in ihren Bau tragen können. Für jede zum Bau transportierte Zuckereinheit erhältst du übrigens 1 Punkt und für jeden Apfel als Obststück 250 Punkte.

In der nächsten, fünften Lektion kommen wir zu einem etwas spannenderen Ziel, dem Kampf mit Wanzen.