Dritter Programmierwettbewerb

English version available, too!

Wer kennt das nicht? Man sitzt Montag abends noch etwas länger im Büro, hört etwas Musik nebenbei, als plötzlich eine Sirene laut durch die Räume schallt, die Türen automatisch schließen und nicht mehr zu öffnen sind. Ein grüner Dunst zieht durch die Hallen und auf dem Flur schlurfen düstere Gestalten entlang, die seltsam stöhnende Laute von sich geben. Montage können so grauenvoll sein …

Dies wirft uns auch schon gleich hinein in das Geschehen: Bereits zum dritten Mal steht der Programmierwettbewerb von freiesMagazin an. Ging es im ersten Wettbewerb noch um das einfache Tauschen von bunten Steinchen, war die Robotersteuerung im zweiten schon etwas anspruchsvoller. Diesmal wird es vom Prinzip etwas einfacher, denn die Aufgabe heißt: Rennen Sie um Ihr Leben, denn die Zombies greifen an. (Wer keine Zombies mag, kann sich auch vorstellen, es wären Aliens, giftige Riesenspinnen oder etwas anderes).

Hier eine Zusammenfassung der Anforderungen an die Teilnehmer (Details findet man hinter den Links rechts im Inhaltsverzeichnis):

  • KI erstellen, die sich auf einem Spielfeld bewegt
  • im blauen Team weglaufen und verstecken, im roten Team fangen
  • Kommunikation mit einem Server und dessen Befehle verstehen
  • Programmiersprache frei wählbar
  • Open-Source-Lizenz
  • Einsendeschluss: 19. Dezember 2010, 23:59 Uhr
  • Buchgutscheine im Wert von 50, 30 und 20 Euro zu gewinnen

Download der Engine samt Beispiel-KI und GUI: per FTP oder per HTTP

Bei Fragen, Anregungen und natürlich Einsendungen können Sie sich an redaktion ETT freiesmagazin PUNKT de wenden.

Um immer auf den aktuellen Stand zu sein, was den Wettbewerb angeht, können Sie die Kommentare zu dieser Seite per RSS abonnieren. Kommentare können hier aber nur vom freiesMagazin-Team verfasst werden!

Wir wünschen allen Teilnehmern viel Erfolg und freuen uns auf eine rege Beteiligung.

Hinweis: Die Anleitung gibt es auch in englischer Sprache.

nächste Seite

Update 19.10.2010 – Fehlerbehebung

Ich habe das Verhalten des Startskripts start.sh so geändert, dass auch relative Pfade gefunden werden. (Nur absolute Pfade gehen nun nicht mehr. ;))

Update 23.10.2010 – Fehlerbehebung

Kleinen Fehler in der Karte "board1.map" behoben. Dort fehlten an einer Stelle die Schlüssel für die Türen E, F und H. Danke an Marco für den Hinweis.

Update 25.10.2010 – Anleitung

Es gab kleine Ergänzungen in der Anleitung:

  • Die .toxic-Datei kann/darf nicht benutzt werden.
  • Die Giftigskeitswerte sollten ebenso wie die Schlüsselpositionen nicht für ein späteres Spiel gespeichert werden.
  • Man kann auch im Team eine KI programmieren und einreichen.
  • Der Wettbewerb läuft auf einem Intel Core2 Duo E8400 @ 3.00GHz und 4 GB Speicher mit einem 64-Bit-Xubuntu 10.04.

Update 26.10.2010 – Fehlerbehebung

Großer Fehler behoben bei der Sichtbarkeit von Schlüsseln, wenn das zugehörige Feld nur an einer Seite offen und sonst von Wänden umgeben ist.

Update 26.10.2010 – Fehlerbehebung 2

Ein Fehler am Morgen herausgemacht und dafür einen neuen eingebracht. Dieser wurde eben behoben.

Update 29.10.2010 – Anleitung

Es gibt keine Türen und Schlüssel mehr, da sie das Spiel nur unnötig verkomplizieren.

Update 04.11.2010 – Fehlerbehebung

Ich habe einen größeren Fehler in der Player-Klasse behoben, wenn die Bewegung NONE war. In dem Fall wurde immer (0,0) als neue Position zurückgeliefert und nicht die aktuelle Position.

Eine kleine Fehlerbehebung gab es in GameMap. Hier wurde eine falsche Fehlermeldung ausgegeben, wenn der Zugriff außerhalb der Array-Grenzen im []-Operator war.

Und zum Schluss habe ich in der GUI Zeilen- und Spaltennummern eingefügt, damit man nicht immer von links oben zählen muss.

Update 16.12.2010 – Erweiterung AiEngine

  • Methode AiEngine::calcNextMove ist nicht mehr const
  • leere Methode processCommandStoreToxicValue und processCommandStoreLife zu AiEngine zum Überladen hinzugefügt
  • Methoden in AiEngine, die zum Überschreiben gedacht sind, virtuell gemacht
  • Copyright-Hinweis in alle Dateien hinzugefügt

Update 17.12.2010 – Bugfix

Es wurde ein Fehler behoben, der auftrat, wenn ein Client seine ID zu schnell akzeptierte. Es passierte dann, dass der Server den Client einfach ignorierte und nicht mit Daten fütterte.