Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
AntMe! – Wikipedia Zum Inhalt springen

AntMe!

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Antme)
AntMe!

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Logo
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler AntMe! e. V.
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Aktuelle Version 1.7.4<ref>Release AntMe! 1.7.4 · AntMeNet/AntMeClassic. Abgerufen am 29. Juni 2024 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
(28. April 2022)
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Betriebssystem Windows
Programmier­sprache C#
Kategorie Serious Game / Programmierspiel
Lizenz Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
deutschsprachig ja
www.antme.net

AntMe! ist eine in C# geschriebene Simulationssoftware für Windows, die Programmieranfängern das Thema künstliche Intelligenz näherbringen und einen leichten Einstieg in die Sprachen C# oder Visual Basic bieten soll. AntMe! gehört zur Gattung der Serious Games<ref name="homepage" /> und es ist eines der Projekte der von Microsoft ins Leben gerufenen Initiative „coding4fun“; Projektleiter und Initiator war Tom Wendel.

Zwischendurch wurde für das AntMe!-Projekt die AntMe Limited gegründet, die das Projekt unter diesem Namen weiterentwickelte und betrieb. Mitte 2011 ist aus der AntMe Limited dann der AntMe! e. V. geworden. Dadurch ist AntMe! jetzt vollständig gemeinnützig.<ref name="homepage" />

Bei der Simulation geht es darum, eine KI für ein Ameisenvolk zu programmieren. Man muss den Ameisen beibringen, Zucker oder Äpfel zu sammeln und Käfer zu bekämpfen. Es ist auch eine Spezialisierung möglich, wodurch manche Völker nur Käfer bekämpfen, andere dagegen nur Zucker sammeln. Den Einstieg in das Programm erleichtern mehrere Video-Tutorials.

Seit April 2007 gibt es eine voll funktionsfähige Version. Im September 2008 wurde die Version 1.6 veröffentlicht, in der unter anderem Teambildung implementiert wurde, so dass man nun auch im Modus XvsX spielen kann. Durch die Auslagerung der Spielkonfiguration sind auch Varianten wie „Capture The Apple“ möglich und bei den Entwicklern sehr beliebt.

Voraussetzungen

Für AntMe! wird neben der Software AntMe! das .NET Framework in der Version 2.0 und eine Integrierte Entwicklungsumgebung benötigt. Empfohlen wird das Microsoft Visual Studio, das es auch in einer kostenlosen Express-Variante gibt. Visual Studio 2010 ist für Windows XP ab Service Pack (SP) 3, Windows Server 2003 ab SP 2, Windows Vista ab SP 2 und Windows 7 verfügbar. Anstelle von Microsofts Visual Studio ist z. B. auch die Verwendung von SharpDevelop als Entwicklungsumgebung möglich. AntMe! empfiehlt sein Ameisenvolk in C# zu programmieren, es ist jedoch auch mit Hilfe aller anderen Sprachen des .NET Frameworks, wie z. B. Visual Basic oder C++/CLI, möglich.

Download

AntMe! kann man nach einer kostenlosen Registrierung auf der offiziellen Website herunterladen.<ref name="homepage" /> Dort gibt es neben AntMe! für C# und Visual Basic auch den Quelltext von AntMe!. Nach dem Download des ZIP-Files muss man die Dateien entpacken und in ein anderes Verzeichnis kopieren. Indem man die Datei „Spieler.sln“ öffnet, kann man mit dem Programmieren beginnen.

Eigene Klasse

Datei:AntMe!-Ameise.png
Eine Ameise in der 3D-Visualisierung von AntMe!

Die „Spielwiese“, in der man sich bewegt und programmiert, ist bereits eine eigens von AntMe! entwickelte, das Ameisenvolk repräsentierende, Klasse von C#.<ref name="Seite_4" /> Sie erbt von der Klasse Basisameise.

Ereignis-Programmierung

Die Programmierung von AntMe! basiert auf einer ereignisgesteuerten Programmierung. Das heißt, dass bestimmte Methoden vom Simulationsprogramm aufgerufen werden, wenn ein bestimmtes Ereignis eintritt. Konkret bei AntMe! sieht das zum Beispiel so aus: Wenn die Ameise ein Stück Zucker sieht, dann wird die Methode SiehtZucker aufgerufen. Die Anweisungen, die in dieser Methode stehen, werden dann ausgeführt. Das könnte bewirken, dass die Ameise das Stück Zucker nimmt und zu ihrem Bau trägt.

Die Möglichkeit, eine Klasse so einzurichten, dass ihre Objekte auf Ereignisse reagieren, ist ein Privileg moderner Programmiersprachen wie C#.<ref name="Seite_4" />

Tutorials

Für AntMe! gibt es verschiedene Tutorials. Auf der offiziellen Website gibt es sowohl geschriebene als auch Video-Tutorials.<ref name="tutorials" /> Auch im Community-Forum finden sich einige hilfreiche Anleitungen.<ref name="anleitung_forum" />

Plugins

Seit dem neuen Plug-in-Konzept der Version 1.6 können interessierte Nutzer auch selbst Plugins schreiben und dem Programm hinzufügen. Da der Quellcode von AntMe! öffentlich zugänglich ist, können auch dort eigene Veränderungen getätigt werden.

Für Plugins gibt es die Schnittstellen IPlugin, sowie IConsumerPlugin und IProducerPlugin. Sie finden sich im Namespace AntMe.SharedComponents.Plugin.

Code-Beispiele

Der AntMe!-Code ist lokalisiert. So gibt es in der deutschsprachigen Variante Methoden wie GeheZuBau oder Nimm(zucker).

Folgende Code-Schnipsel sollen beispielhaft die Programmierung von AntMe! zeigen:

<syntaxhighlight lang="csharp"> /// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise mindestens einen /// Zuckerhaufen sieht. /// </summary> /// <param name="zucker">Der nächstgelegene Zuckerhaufen.</param> public override void Sieht(Zucker zucker) {

   if (AktuelleLast == 0 && Ziel == null)
   {
       GeheZuZiel(zucker);
   }

} </syntaxhighlight>
<syntaxhighlight lang="csharp"> /// <summary> /// Wird einmal aufgerufen, wenn die Ameise einen Zuckerhaufen als Ziel /// hat und bei diesem ankommt. /// </summary> /// <param name="zucker">Der Zuckerhaufen.</param> public override void ZielErreicht(Zucker zucker) {

   Nimm(zucker);
   GeheZuBau();

} </syntaxhighlight>
<syntaxhighlight lang="csharp"> /// <summary> /// Wird wiederholt aufgerufen, wenn die Ameise von einer Wanze angegriffen /// wird. /// </summary> /// <param name="wanze">Die angreifende Wanze.</param> public override void WirdAngegriffen(Wanze wanze) {

   LasseNahrungFallen();
   if (Kaste == "Kämpfer")
   {
       if (AnzahlAmeisenDerSelbenKasteInSichtweite >= 3)
       {
           GreifeAn(wanze);
       }
   }
   else
   {
       GeheWegVon(wanze);
   }

} </syntaxhighlight>

Siehe auch

  • Robocode, ein Programmierspiel für Java und .NET
  • Core War, ein Programmierspiel in der assemblerartigen Sprache „Redcode“

Literatur

  • Walter Saumweber, Tom Wendel, Wolfgang Gallo, Sebastian Loers: AntMe! - Programmieren und Spielen mit den Ameisen und Visual C#. Microsoft Press Deutschland, 2007, ISBN 978-3-86645-205-3.
  • Hans-Georg Schumann: AntMe! - Spielend programmieren lernen mit Visual Basic und den Ameisen. Microsoft Press, 2008, ISBN 978-3-86645-523-8.
  • Dominik Bösl: Spielend programmieren lernen mit C# und AntMe! Galileo Press, 2011, ISBN 978-3-8362-1764-4 (Video-Training).

Weblinks

Einzelnachweise

<references> <ref name="homepage">Offizielle AntMe!-Website. Abgerufen am 10. April 2025.</ref> <ref name="Seite_4">Walter Saumweber, Tom Wendel, Wolfgang Gallo, Sebastian Loers: AntMe! - Programmieren und Spielen mit den Ameisen und Visual C#. Microsoft Press Deutschland, 2007, S. 4</ref> <ref name="tutorials">Tutorials auf der AntMe!-Website. Archiviert vom Vorlage:IconExternal am 18. Juli 2012; abgerufen am 10. August 2017. </ref> <ref name="anleitung_forum">Anleitung im Community-Forum. Abgerufen am 10. August 2017.</ref> </references>