AntMe! - Das große Krabbeln beginnt: Unterschied zwischen den Versionen
K |
K (Evaluationshinweise eingepflegt) |
||
Zeile 20: | Zeile 20: | ||
{{Kasten blau|Notwendige Installationen für AntMe!<br /> | {{Kasten blau|Notwendige Installationen für AntMe!<br /> | ||
− | (Die Programme können nur von einem Benutzer installierten werden, der auch alle nötigen Rechte auf dem PC hat.)<br /> | + | (Die Programme können nur von einem Benutzer installierten werden, der auch alle nötigen Rechte, Schreiben und Ausführen, auf dem PC hat.)<br /> |
* [http://www.microsoft.com/germany/express/download/webdownload.aspx Microsoft Visual C# Express] | * [http://www.microsoft.com/germany/express/download/webdownload.aspx Microsoft Visual C# Express] | ||
* [http://antme.net/files/ AntMe!] | * [http://antme.net/files/ AntMe!] | ||
Zeile 29: | Zeile 29: | ||
<!--[[Bild:SS_MSVC.jpg|Screenshot Microsoft Visual C# Express|300px|right]]--> | <!--[[Bild:SS_MSVC.jpg|Screenshot Microsoft Visual C# Express|300px|right]]--> | ||
Sieh dir das folgende Video an und reproduziere es an deinem PC nach.<br /> | Sieh dir das folgende Video an und reproduziere es an deinem PC nach.<br /> | ||
− | '''Hinweis:''' Für eine bessere Qualität gibt es YouTubeHD. Wechsel dafür im Menü auf 720p.<br /><br /> | + | '''Hinweis:''' Für eine bessere Qualität gibt es YouTubeHD. Wechsel dafür im Menü auf 720p oder klicke einmal auf das Video. Dadurch öffnet sich ein neues Fenster wo der Vollbildmodus aktiviert ist.<br /><br /> |
:{{#ev:youtube|0PFCQUzaAxs|650|center}} | :{{#ev:youtube|0PFCQUzaAxs|650|center}} | ||
}} | }} | ||
Zeile 44: | Zeile 44: | ||
{{Lösung versteckt| Die Ameisen bleiben vor ihrem Bau stehen.}} | {{Lösung versteckt| Die Ameisen bleiben vor ihrem Bau stehen.}} | ||
+ | Damit du den Quellcode editieren kannst, beendest du die Simlution durch das Schließen beider Simulationsfenster (<u>nicht</u> Visual Studio 2008 Express). | ||
Wir wollen uns jetzt näher mit der Klasse ''MeineAmeise'' beschäftigen. Sie enthält wichtige (noch leere) Methoden, mit denen wir das Verhalten der Ameisen wesentlich verändern wollen, um somit auf Futtersuche zu gehen und unsere Ameisen vor Feinden zu schützen. | Wir wollen uns jetzt näher mit der Klasse ''MeineAmeise'' beschäftigen. Sie enthält wichtige (noch leere) Methoden, mit denen wir das Verhalten der Ameisen wesentlich verändern wollen, um somit auf Futtersuche zu gehen und unsere Ameisen vor Feinden zu schützen. | ||
Zeile 63: | Zeile 64: | ||
</div> | </div> | ||
− | + | Ein Beispiel wie die Implementierung funktioniert: | |
− | + | {{#ev:youtube|CUwf5E-eDBc|650}} | |
+ | |||
+ | {{Aufgabe-Mathe| | ||
+ | |||
+ | Löse das Schüttelrätsel! Hinter den leeren Feldern stehen die Buchstaben mit denen die Wörter gebildet werden. | ||
+ | |||
}} | }} | ||
<div class="schuettel-quiz"> | <div class="schuettel-quiz"> | ||
− | Die öffentliche '''Methode''' <tt>Wartet()</tt> wird aufgerufen | + | Die öffentliche '''Methode''' <tt>Wartet()</tt> wird zuerst aufgerufen alsdie Ameise zum Leben erweckt und vor ihrem Bau steht. Danach wird <tt>Wartet()</tt> aufgerufen, wenn die Ameise keinen Arbeitsauftrag mehr hat. Durch den Methodenmodifikator '''public''' wird erkennbar, dass die Methode '''öffentlich''' und für jeden aufrufbar ist. <tt>override</tt> ist ein weiterer '''Modifikator''', der eine bereits durch '''Vererbung''' vorhandene Methode überschreibt. Im Fall der Methode <tt>Wartet()</tt> soll nach der Bearbeitung aller Anweisungen kein '''Rückgabewert''' zurückkommen. Dies geschieht durch die Angabe '''void'''.<br /> |
In den geschweiften Klammern folgt der '''Rumpf''' der Methode. Er enthält alle '''Anweisungen''', welche beim Aufruf ausgeführt werden. Jede Anweisung wird mit einem '''Semikolon''' abgeschlossen. | In den geschweiften Klammern folgt der '''Rumpf''' der Methode. Er enthält alle '''Anweisungen''', welche beim Aufruf ausgeführt werden. Jede Anweisung wird mit einem '''Semikolon''' abgeschlossen. | ||
</div> | </div> | ||
Zeile 79: | Zeile 85: | ||
<div class="zuordnungs-quiz"> | <div class="zuordnungs-quiz"> | ||
{| | {| | ||
− | | <div align="left"><tt>public override void Wartet()<br />{<br />GeheGeradeaus();<br />}</tt></div> || Die Ameise geht endlos geradeaus. || {{#ev:youtube|QCNkHEqNXf4|200}} | + | | <div align="left"><tt>public override void Wartet()<br />{<br /><span style="color:#eeeeee">__</span>GeheGeradeaus();<br />}</tt></div> || Die Ameise geht endlos geradeaus. || {{#ev:youtube|QCNkHEqNXf4|200}} |
|- | |- | ||
− | | <div align="left"><tt>public override void Wartet()<br />{<br />if (EntfernungZuBau < 100)<br />{<br />GeheGeradeaus(10);<br />}<br />else<br />{<br />BleibStehen();<br />}<br />}</tt></div> || Alle Ameisen stellen sich im Kreis um den Bau auf. || {{#ev:youtube|a29KYH-5Rzs|200}} | + | | <div align="left"><tt>public override void Wartet()<br />{<br /><span style="color:#eeeeee">__</span>if (EntfernungZuBau < 100)<br /><span style="color:#eeeeee">__</span>{<br /><span style="color:#eeeeee">____</span>GeheGeradeaus(10);<br /><span style="color:#eeeeee">__</span>}<br /><span style="color:#eeeeee">__</span>else<br /><span style="color:#eeeeee">__</span>{<br /><span style="color:#eeeeee">____</span>BleibStehen();<br /><span style="color:#eeeeee">__</span>}<br />}</tt></div> || Alle Ameisen stellen sich im Kreis um den Bau auf. || {{#ev:youtube|a29KYH-5Rzs|200}} |
|- | |- | ||
− | | <div align="left"><tt>public override void Wartet()<br />{<br />GeheGeradeaus(150);<br />DreheUmWinkel(180);<br />GeheGeradeaus(150);<br />}</tt></div> || Die Ameise entfernt sich von ihrem Bau, genau 150 Schritte, und läuft wieder zurück. || {{#ev:youtube|b4-Ltk61Cjo|200}} | + | | <div align="left"><tt>public override void Wartet()<br />{<br /><span style="color:#eeeeee">__</span>GeheGeradeaus(150);<br /><span style="color:#eeeeee">__</span>DreheUmWinkel(180);<br /><span style="color:#eeeeee">__</span>GeheGeradeaus(150);<br />}</tt></div> || Die Ameise entfernt sich von ihrem Bau, genau 150 Schritte, und läuft wieder zurück. || {{#ev:youtube|b4-Ltk61Cjo|200}} |
|- | |- | ||
− | | <div align="left"><tt>public override void Wartet()<br />{<br />GeheGeradeaus(200);<br />DreheUmWinkel(120);<br />}</tt></div> || Die Ameise läuft im Dreieck zum Bau zurück. || {{#ev:youtube|U79ZIZOv1yA|200}} | + | | <div align="left"><tt>public override void Wartet()<br />{<br /><span style="color:#eeeeee">__</span>GeheGeradeaus(200);<br /><span style="color:#eeeeee">__</span>DreheUmWinkel(120);<br />}</tt></div> || Die Ameise läuft im Dreieck zum Bau zurück. || {{#ev:youtube|U79ZIZOv1yA|200}} |
|} | |} | ||
</div> | </div> |
Version vom 25. Februar 2010, 11:28 Uhr
<language>Java</language>
Lernpfad
|
Ziele des Lernpfads
- das Programm Visual Studio 2008 Express kennenlernen
- das Programm AntMe! kennenlernen
- die eigenen Ameisen zum Krabbeln bringen
- kurze Einführung in turtle, die eigene Wiki-Programmierung
Notwendige Installationen für AntMe!
(Die Programme können nur von einem Benutzer installierten werden, der auch alle nötigen Rechte, Schreiben und Ausführen, auf dem PC hat.)
Sieh dir das folgende Video an und reproduziere es an deinem PC nach. |
Alles ist installiert. Das Spiel kann beginnen!
Übernehme die Einstellungen aus dem Video und passe sie mit deinem persönlichen Namen an, damit die Ameisen später im Multiplayer-Modus gegeneinander antreten können. |
Damit du den Quellcode editieren kannst, beendest du die Simlution durch das Schließen beider Simulationsfenster (nicht Visual Studio 2008 Express).
Wir wollen uns jetzt näher mit der Klasse MeineAmeise beschäftigen. Sie enthält wichtige (noch leere) Methoden, mit denen wir das Verhalten der Ameisen wesentlich verändern wollen, um somit auf Futtersuche zu gehen und unsere Ameisen vor Feinden zu schützen. Ameisen stehen von Beginn an vor ihrem Bau und warten auf eine Anweisung, diesen Teil müssen wir bereits selbst programmieren. Es gibt vorgefertigte Methoden, die wir für unsere Ameisen nutzen können. Eine davon heißt "GeheGeradeaus()". Wir wollen sie hier für uns benutzen.
Programmiere die Ameisen mit dem vorgegeben Quellcode so um, dass wenn sie vor dem Bau stehen zunächst immer gerade aus gehen.
Ameisen warten vor ihrem Bau, wenn sie zum Leben erweckt sind. In der Befehlsliste von AntMe! ist die Methode GeheGeradeaus() erklärt, die du hier aufrufen kannst, damit sich die Ameisen bewegen.
|
public override void Wartet() { GeheGeradeaus(); }
Ein Beispiel wie die Implementierung funktioniert:
|
Die öffentliche Methode Wartet() wird zuerst aufgerufen alsdie Ameise zum Leben erweckt und vor ihrem Bau steht. Danach wird Wartet() aufgerufen, wenn die Ameise keinen Arbeitsauftrag mehr hat. Durch den Methodenmodifikator public wird erkennbar, dass die Methode öffentlich und für jeden aufrufbar ist. override ist ein weiterer Modifikator, der eine bereits durch Vererbung vorhandene Methode überschreibt. Im Fall der Methode Wartet() soll nach der Bearbeitung aller Anweisungen kein Rückgabewert zurückkommen. Dies geschieht durch die Angabe void.
In den geschweiften Klammern folgt der Rumpf der Methode. Er enthält alle Anweisungen, welche beim Aufruf ausgeführt werden. Jede Anweisung wird mit einem Semikolon abgeschlossen.
Bis jetzt laufen unsere Ameisen ziellos auf dem Gelände herum und haben noch keine Aufgabe. |
public override void Wartet() { __GeheGeradeaus(); } |
Die Ameise geht endlos geradeaus. | |
public override void Wartet() { __if (EntfernungZuBau < 100) __{ ____GeheGeradeaus(10); __} __else __{ ____BleibStehen(); __} } |
Alle Ameisen stellen sich im Kreis um den Bau auf. | |
public override void Wartet() { __GeheGeradeaus(150); __DreheUmWinkel(180); __GeheGeradeaus(150); } |
Die Ameise entfernt sich von ihrem Bau, genau 150 Schritte, und läuft wieder zurück. | |
public override void Wartet() { __GeheGeradeaus(200); __DreheUmWinkel(120); } |
Die Ameise läuft im Dreieck zum Bau zurück. |
|
public String forward (int n) // läuft n Schritte vorwärts public String backward (int n) // läuft n Schritte rüchwärts public String right(int a) // dreht sich a Grad nach rechts public String left (int a) // dreht sich a Grad nach links public String penUp () // hebt den Stift hoch (kein Zeichnen mehr bei forward/backward) public String penDown () // setzt Stift wieder auf public void home() // legt die Turtle auf den Startpunkt
canvas.clear(); // Zeichenfläche löschen
Turtle turtle = new Turtle(1);
turtle.home();
<eval id="4b756ff051311">
</eval>
<canvas></canvas>
Programmiere die Methode WirdMüde! |
public override void WirdMüde() { GeheZuBau(); }
Was hast du in diesem Lernpfad gelernt? |
VisualStudio | Programmierumgebung von Microsoft |
Apfel | gesunde Nahrung der Ameisen |
public | Kennzeichnung einer öffentlichen Methode |
Wanze | Feind der Ameisen |
GeheGeradeaus | eine Methode die Ameisen laufen lässt |
Methodenrumpf | Inhalt der geschweiften Klammern einer Methode |
Bau | Startpunkt der Ameisen |
Zucker | süße Nahrung der Ameisen |
Ameise | Insekt deines Volkes |
Microsoft | großer Softwarehersteller und Partner von AntMe! |
Klasse | Zusammenfassung von gleichartigen Objekten |
WirdMüde | Methode wird aufgerufen, wenn Ameisen erschöpft sind |
Programmiersprache | C, C# und Java ist eine ... |
Punkte werden mit gesammelter Nahrung oder dem Sieg im Kampf über einen Gegner, das kann eine gegnerische Ameise oder eine Wanze sein, erzielt. Wir möchten zunächst die Nahrung finden und zurück in unseren Bau schaffen.
Was kannst du jetzt
- Grundlagen im Umgang mit Visual Studio Express
- eigenständig AntMe! herunterladen und installieren
- Ameisen auf dem Gelände laufen lassen
- mit turtle objektorientiert Programmieren und Bilder malen
Das Krabbeln geht weiter! Zum nächsten Lernpfad: AntMe! - Auf der Nahrungssuche