AntMe!

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
AntMe!

Logo
Basisdaten

Entwickler AntMe! e. V.
Aktuelle Version 1.7.3[1]
(Mai 2015)
Aktuelle Vorabversion 2.0
Betriebssystem Windows
Programmiersprache C#
Kategorie Serious Game / Programmierspiel
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[2] und es ist eines der Projekte der von Microsoft ins Leben gerufenen Initiative „coding4fun“; Projektleiter und Initiator ist Uwe Baumann[3] von Microsoft.[4]

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.[2] Die Firma Microsoft ist weiterhin offizieller Partner des Projekts.

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. Die Vorarbeiten für die Version 2.0 (Codename „Chuck“ nach den Chuck Norris Facts) laufen bereits.

Voraussetzungen[Bearbeiten | Quelltext bearbeiten]

Für AntMe! wird neben der Software AntMe! das .NET Framework in der Version 2.0 und eine 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.

Die Registrierung ermöglicht die Integration von Drittanbieterkomponenten in die IDE.[5]

Download[Bearbeiten | Quelltext bearbeiten]

AntMe! kann man nach einer kostenlosen Registrierung auf der offiziellen Website herunterladen.[2] 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[Bearbeiten | Quelltext bearbeiten]

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#.[6] Sie erbt von der Klasse Basisameise.

Ereignis-Programmierung[Bearbeiten | Quelltext bearbeiten]

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#.[6]

Tutorials[Bearbeiten | Quelltext bearbeiten]

Für AntMe! gibt es verschiedene Tutorials. Auf der offiziellen Website gibt es sowohl geschriebene als auch Video-Tutorials.[7] Auch im Community-Forum finden sich einige hilfreiche Anleitungen.[8]

Plugins[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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:

/// <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);
    }
}


/// <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();
}


/// <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);
    }
}

Siehe auch[Bearbeiten | Quelltext bearbeiten]

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

Literatur[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. AntMe! Wiki. (Nicht mehr online verfügbar.) Archiviert vom Original am 11. August 2017; abgerufen am 10. August 2017. i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/wiki.antme.net
  2. a b c Offizielle AntMe!-Website. Abgerufen am 21. Oktober 2012.
  3. Uwe Baumann. Abgerufen am 21. Oktober 2012.
  4. Offizielle Coding4fun-Website. Abgerufen am 21. Oktober 2012.
  5. Walter Saumweber, Tom Wendel, Wolfgang Gallo, Sebastian Loers: AntMe! - Programmieren und Spielen mit den Ameisen und Visual C#, Microsoft Press Deutschland, 2007, S. 13–22
  6. a b Walter Saumweber, Tom Wendel, Wolfgang Gallo, Sebastian Loers: AntMe! - Programmieren und Spielen mit den Ameisen und Visual C#. Microsoft Press Deutschland, 2007, S. 4
  7. Tutorials auf der AntMe!-Website. Archiviert vom Original am 18. Juli 2012; abgerufen am 10. August 2017.
  8. Anleitung im Community-Forum. Abgerufen am 10. August 2017.