Jetzt macht auch Google noch ein Programmierwettbewerb

Ich habe mich schon gefreut: Der Würfler zum Linux-Magazin-Wettbewerb ist fertiggestellt und eigentlich bereit zum Einsenden. Etwas enttäuscht habe ich festgestellt, dass das Problem akademisch gelöst und der optimale Spieler bekannt ist. Nun, der Thrill der noch bleibt ist, dass bei nur 100 Spielen auf 50 Punkte der Zufall eine seeeehr grosse Rolle spielt.

Doch zu früh gefreut, jetzt kommt das: Die Google AI-Challenge. Man kann nicht mal was gewinnen, aber das Spiel ist unglaublich genial: Es geht darum, Planeten zu erobern:

Es gibt jetzt schon Starter-Packages für verschiedene Sprachen und das System ist ziemlich offen (für unsere Shell-Krieger 🙂 ). Ab dem 10.09.2010 kann man sich dann offiziell eintragen und losranken.

Ein Programmierwettbewerb vom Linux Magazin

Dieser Beitrag ist Teil 1 von 3 in der Serie Linux-Magazin Wettbewerb

    Nachtrag vom 19.08.2010: Ich wurde Opfer von „mod_security“, damit konnte ich keine Artikel mehr editieren, weil ich immer ein „404 Not Found“ präsentiert bekommen habe. DAS ist doch ein Heuler…

    Nun, ich habe eine neue Version des Clients unten hingehäng: Stabiler, so dass er auch eine ganze Nacht über viele Stunden und Verbindungsprobleme hinweg weiterspielt.

    WuerfelOh nein. Frisch erkältet wollte ich mich auf die Arbeiten stürzen, die eigentlich schon letztes Jahr hätten erledigt sein müssen, und nun das: Das Linux-Magazin veranstaltet einen Wettbewerb für Programmierer! Die Details sind in der Ausgabe 09/10 (auch online) beschrieben und es gibt eine Wettbewerbs-Seite dazu.

    Grundsätzlich geht es darum, dass zwei Programme gegeneinander würfeln. Wer zuerst 50 Punkte oder mehr erreicht, hat gewonnen. Ist man am Zuge, so kann man entweder Würfeln oder „Save“n. Bei einem Wurf werden die Augen zu der eigenen Punktzahl hinzugezählt, ausser man würfelt eine 6, dann werden alle Punkte seit dem letzten Save wieder abgezogen. Bei einem Save werden die Punkte gespeichert und der Gegner ist am Zuge.
    Weiterlesen

    Jailbreak für die Nintendo DS

    nintuxVor langer Zeit habe ich mir mal eine Nintendo DS angeschafft. Der ursprüngliche Anschaffungsgrund ist sogar für dieses Blog zu skurril, aber die Spielkonsole vereinfacht lange Zugsfahrten mit Kindern. Irgendwie hatte ich das Gefühl, da muss mehr drin sein als der Mario und der Luigi (obwohl die wirklich was hermachen, game- und zeitverschwendungstechnisch). Durch eine Aktion von Nintendo gegen Hacker bin ich dann auf die Möglichkeiten aufmerksam gemacht worden. Flugs eine Acekard 2i gekauft (bei Modfreak: Super Service! Am nächsten Tag war sie da!) eine 8GB sdHC Karte von einem glücklich ausgegangenen Fehlkauf (dazu später vielleicht mehr) ausgegraben und es konnte losgehen.

    Die Vorbereitungen

    Ich wollte mich nicht mit irgendwelchen Hacks und Passme’s und Wasweissichs beschäftigen, sondern einfach eine „offene“ DS haben. Der Acekard lag keine Bedienungsanleitung bei, was ich schon eher speziell gefunden habe, naja, so klappts auch mit der Konsole:

    1. Von Acekard das Betriebssystem herunterladen.
    2. Auf die sdHC-Karte entpacken, so dass das __ak2 Verzeichnis im Root liegt.
    3. Wenn man schon mal dabei ist, von der selben Seite aus Moonshell (ein Mediaplayer) herunterladen und ebenfalls auf die Karte kopieren
    4. sdHC in die Acekard, Acekard in die Nintendo und losgehts
    5. Auf der Nintendo unter Start, System Properties den Menüpunkt Show file(s) of type auf ALL stellen.
    6. Auf der Nintendo unter Start, Patches den Menüpunkt Patches auf enabled stellen.
    Alles was es braucht

    Alles was es braucht

    Und nun kanns losgehen.
    Weiterlesen

    Lokale Turniere für CodeRuler

    coderulerCodeRuler ist ein geniales Programmierspiel von IBM. Es eignet sich sehr für eine spielerische Beschäftigung mit der Programmiersprache Java.

    Für Turniere hat das Spiel eine eingebaute Serverfunktion. Rulers werden ganz bequem von Eclipse aus eingereicht und stehen dann auf dem Server zur Verfügung. Wenn man allerdings eigene Rulers gegeneinander antreten lassen möchte, oder wenn das Netz securitymässig so abgeriegelt ist dass Peer to Peer Verbindungen nicht möglich sind, muss man etwas tricksen. Hier die einfachste Möglichkeit unter Linux (eventuell portierbar), die ich gefunden habe. Kompliziertere Möglichkeiten gibt es natürlich auch.

    1. Die MyRuler.java Dateien müssen irgendwie auf den Servercomputer kommen. Ev. mit E-Mail, USB-Stick oder Flaschenpost.
    2. Den Server in Eclipse starten mittels: Window → Preferences → Games → Start. Eventuell sollte vor dem Start der Port angepasst werden (9999 ist gut).
    3. Für jeden Ruler muss ein eigenes „Game“ Projekt in Eclipse erstellt werden. Die MyRuler.java dorthin kopieren.
    4. Für jeden Ruler Folgendes erledigen:
      1. Projekt öffnen und Games.xml anklicken.
      2. Mit dem Pfeil den Bereich Game Server erweitern und die korrekten Daten ausfüllen.
      3. Identification ausfüllen.
      4. Ruler submitten.
      5. Im Workspace Verzeichnis (Ersichtlich unter File → Switch Workspace) in .metadata/.plugins/com.ibm.games/players wechseln
      6. Das Verzeichnis localhost in irgendetwas Anderes umbenennen

    Turniere können nun an Zwei Orten durchgeführt werden:

    • Entweder Direkt von einem games.xml aus.
    • Im Turniermodus: Window → Preferences → Games → Tournaments.

    Der Turniermodus ist ein Sensibelschen. Turniere scheinen nur mit neu submitteten Rulern möglich zu sein. Ausserdem: Im Hintergrund wird sofort mit dem Turnier begonnen! Das GUI zeigt keine direkte Reaktion, nicht mal ein Eintrag des neuen Turniers ist ersichtlich, aber im Hintergrund kämpfen die armen Gesellen. Das Spiel kann dann mit dem Button Play angesehen werden. Hier hat erst ein Klick auf den schwarzen Bereich das Spielfeld zum Vorschein gebracht.

    Avaloqix: Unterhaltsamer Java-Programmierwettbewerb

    Flow im HirnIch liebe Wettbewerbe und ich liebe das Spielen. Meine inneres, urmännliches Ich springt voll auf das kompetitive Element solcher Veranstaltungen an. Zum Erlegen von Höhlenbären oder für Sportwettkämpfe eigne ich mich definitiv nicht, darum bin ich froh, wenn ab und zu ein Kräftemessen auf meinem – eher wetwarelastigen – Gebiet stattfindet.

    Leider hat es jetzt seit längerer Zeit kein Codeduel (ein spassiger, von Microsoft Schweiz gesponserter/organisierter Event in welchem SOAP-Services gegeneinander angetreten sind, für den es aber leider keine offizielle Website mehr gibt) mehr gegeben und für die kommerzielle Version solcher Wettbewerbe habe ich im Moment wirklich keine Zeit.

    Über die Seite des Schweizerischen Jahres der Informatik bin ich auf Avaloqix gestossen und war sofort begeistert. Am Tag der Informatik am 29. August 2008 in Zürich wird es ein Event speziell zu diesem Wettbewerb geben.

    Das Spiel

    Es geht darum, einen Spieler für eine abgewandelte Version des Shannon Switching Games zu programmieren. Kurz erklärt: Es gibt eine Quelle und ein Senke, die über ganz viele Röhren und Sammelpunkte miteinander verbunden sind. Im ersten Durchgang versucht der eine Spieler einen möglichst grossen Durchfluss zu erzielen indem er Röhren freischaltet, während der andere Spieler ebendies durch das Ausbauen von Röhren zu verhindern versucht. In einer zweiten Runde werden die Rollen der Spieler in demselben Röhrengeflecht getauscht. Gewonnen hat, wer als Durchflussmaximierer den grösseren Durchfluss erzielen konnte.
    Weiterlesen

    AntMe, Spass mit programmierbaren Ameisen

    AntMe!Nachdem ich die Ameisen in meiner Wohnung mit ganz perfidem tragts-es-zu-euch-nach-Hause-und-vergiftet-eure-Nachkommen-Gift losgeworden bin, habe ich sehr viel sympathischere Zeitgenossen dieser Spezies getroffen: AntMe ist ein Programmierspiel, dass aus Microsofts Coding4Fun Initiative (nicht zu verwechseln mit dem Galileo Coding for Fun Buch. Das ist auch spassig, behandelt auch AntMe, aber zusätzlich noch viele Andere Dinge) hervorgegangen ist. Es hat einen eigenen Wikipedia Artikel und vorallem eine geniale Homepage.

    Grundsätzlich geht es darum Ameisen zu implementieren die überleben, Äpfel und Zucker sammeln und unter Umständen auf Käfer und fremde Ameisen losgehen. Ein Markierungsmechanismus sorgt dafür, dass die Ameisen untereinander kommunizieren können. Fortgeschrittene Ameisenpapis und -mamis können spezialisierte Ameisen erstellen und RPG mässig Eigenschaften verbessern, wenn sie dafür andere verschlechtern.

    Die Ameisen in Aktion

    Die Ameisen können in C# oder in Visual Basic .net mit der notwendigen Intelligenz versehen werden. Bestimmte Methoden werden zu bestimmten Ereignissen aufgerufen; beispielsweise WirdMüde() (ja, mit „ü“ und deutsch) oder SiehtFeind(ByVal käfer As Käfer). Zur Steuerung steht fast der ganze .net Sprachumfang zur Verfügung, sowie Ameisenspezifische Hilfsmethoden wie etwa GeheZuBau() oder GreifeAn(käfer).

    Quickstart

    Auf der AntMe Homepage findet man verschiedene Versionen. Wir spielen hier mit der 1.5 Beta 2 (VB.net oder C#, je nach Gusto). Die Profiversion beinhaltet den gesamten Quellcode der Spielengine (!). Das ist so genial, dass es nochmals erwähnt werden darf: Die Profiversion beinhaltet den gesamten Quellcode der Spielengine. Will man sich nur mit den Ameisen beschäftigen, reicht die Einsteigerversion. Im Download enthalten ist ein gut dokumentiertes Ameisenskelett, bei dem sofort losgottgespielt werden kann.
    Eine gute Doku über die Klassen und deren Methoden sowie ein Tutorial wird mitgeliefert. Zum Teil beziehen sich die Unterlagen noch auf Version 1.1, aber der Transfer zu 1.5 ist eigentlich kein Problem. Für Leute, die lieber kuckn statt lesen, gibt es gut gemachte Screencasts, die ebenfalls in die Thematik einführen.

    Für eher haptisch veranlagte Menschen gibt es auch ein Buch: AntMe! – Programmieren und Spielen mit den Ameisen und Visual C#. Das kenne und besitze ich allerdings (noch) nicht.

    Verfügt man noch über keine Programmierumgebung, so könn bei Microsoft gratis die Express Versionen verschiedener Sprachen downgeloaded werden. Für die 3D Visualisierung braucht man
    noch DirectX. Mit der neusten Version (nicht mit der im Forum angegebenen) hat es wunderbar gefunzt.

    Turniere

    Ein Bisschen lebt das Ganze auch vom kompetitiven Element (um ehrlich zu sein, vielleicht ist ein Bisschen etwas untertrieben: ICH FRESS EUCH ALLE AUF!). In der Version 1.5 funktioniert das Importieren von anderen Ameisen leider nicht und es wird eine unbehandelte Ausnahme ausgespuckt:
    Der Typ für Member AntMe.SpielKonfiguration.AntMe.Simulation, Version=1.5.0.0, Culture=neutral, PublicKeyToken=37d8e32ef3294969 wurde nicht aufgelöst.

    Workaround für die VB-Version (C# ungetestet):
    Weiterlesen

    Soviel Phun!!!

    PhunDas macht mal wieder echt Spass! Phun ist eine Art Spiel, aber vielmehr eine interaktive Physikengine. In einer virtuellen 2D Welt können einfache Dinge wie Rechtecke, Kreise, Ketten, Freie Formen, Wasser, Motoren, … plaziert und miteinander verbunden werden. Beim Starten interagieren diese Elemente miteinander, physikalisch fast korrekt.

    Dinge wie Dichte, Reibungskoeffizient, etc können ebenfalls für die einzelnen Elemente angepasst werden.

    Es macht einen Riesenspass Katapulte zusammenzustellen und virtuelle Mauern einzuhauen. Wie ein kleines Kind Türme zu bauen, nur um sie dann wieder einzureissen ist einfach nur eine Freude zum Quitschen.

    Für anspruchsvollere Naturen gibt es natürlich auch anspruchsvollere Aufgaben: Zeppeline, Fallschirme, Schiffe die Schwimmen, Panzer die fahren und schiessen. All das kann man runterladen und als blöder Bully wie ich einer bin mit grossen Steinen zusammenhauen. Immer und immer wieder *lach*. Naja, ich hab mal eine Mitsteinzusammenhaumaschine gemacht, aber die braucht noch ein Bisschen…

    Das Programm funktioniert unter Linux und Windows, sofern eine 3D-Beschleunigung vorhanden ist.

    Für Videos gibt es einen YouTube Channel:

    eLearning etwas anders…

    Unter Elearning wird oftmals noch das dröge Lernen von verbugten, sturen CD’s seiner selbst willen verstanden. Einen Schritt weiter geht das Blended Learning und die Learning Management Systems (lms) wie zum Beispiel Moodle.

    Es geht aber auch ganz einfach und ganz spassig: AK Kappenberg hat mit WinChemie eine Programmsammlung mit einigen Perlen gratis zum Download ins Web gestellt, und das nicht nur für Chemie!

    Der grosse Preis

    Bei Der grosse Preis wird die Klasse in mehrere Gruppen eingeteilt, die live und abwechslungsweise gegeneinander Fragen beantworten, die mit dem Beamer projiziert werden. Dabei können die Gruppen Punkte einsetzen, sich beraten, ärgern oder freuen. Der Lerneffekt ist riesig, weil es einfach Spass macht. Die Fragen können mit einem Editor geändert und für jedes Fachgebiet angepasst werden.

    Achtung: Damit das Teil läuft müssen die EconNSoft Core Components von AK Kappenberg vorgängig installiert werden, ansonsten gibt es eine nichtssagende Fehlermeldung!

    Als nächstes werde ich AK Riddle austesten. Das scheint über das Netzwerk zu funktionieren. Ein Erfahrungsbericht dürfte folgen…