Beschreibung

freiesMagazin berichtet monatlich über Wissenswertes und Neues aus den Welten Freier Software, Open Source und Linux. Was 2006 als loser Newsletter begann, reifte mit der Zeit durch Akzeptanz und Teilnahme der Linux-Community zum regelmäßig erscheinenden Magazin. Getreu dem Motto „der Community etwas an Wissen, Spaß und Freude zurückzugeben“ laden wir auch weiterhin Autoren zum Wissensaustausch ein.

Bewertung des zweiten Programmierwettbewerbs

Da sich die Fragen häufen, wie denn der zweite Programmierwettbewerb von uns genau gewertet wird, folgt hier eine detaillierte Beschreibung. Dies soll auch dabei helfen, zu entscheiden, auf welche Punkte man bei der KI Wert legen sollte.

Formel

Die Formel, um die Punkte später zu berechnen, sieht wie folgt aus

     P = ( 2*M*S - (Z + 0.5*Y + K) ) / 10

Was heißt das nun in Deutsch? Zuerst eine Beschreibung der einzelnen Buchstaben:

  • P - Punktezahl insgesamt
  • M - Mittelwert der Anzahl aller Züge aller Spieler von gewonnenen Spielen
  • S - Anzahl der gewonnenen Spiele (Gewinn = Zielflagge erreicht)
  • Z - Anzahl der aus den gewählten Karten direkt entstandenen Züge bei gewonnenen Spielen
  • Y - Anzahl der vom Spielfeld entstandenen Züge bei gewonnenen Spielen
  • K - Anzahl der gewählten Karten bei gewonnenen Spielen

Details

Und nun noch einmal im Detail: Wichtig ist zuerst, dass überhaupt nur die gewonnenen Spiele, also die, in denen der Roboter das Ziel erreicht hat, gewertet werden. Für Spiele, bei denen der Roboter zerstört wurde oder die Karten ausgegangen sind, gibt es keine Punkte - weder positive, noch negative. Nach wie vor gilt aber die 75-Prozent-Hürde, dass also die KI bei mindestens 75% aller Spiele (auf allen Spielbrettern) ins Ziel gekommen sein muss, um überhaupt teilnehmen zu dürfen. Das heißt auch, dass es auf einzelnen ggf. "schweren" Spielbrettern auch mal weniger sein darf.

Für jedes gewonnene Spiel gibt es eine Grundpunktzahl, die sich aus dem Mittel der gebrauchten Züge aller Teilnehmer (in der jeweiligen Spielstufe natürlich nur) bei gewonnenen Spielen ergibt. Das heißt, wenn die Gesamtheit der Spieler recht lange unterwegs ist, ist M recht groß und damit auch der Grundwert. Ist das Teilnehmerfeld flott, sinkt die Grundpunktzahl.

Von dieser Grundpunktzahl werden Punkte subtrahiert. Zuerst natürlich die gebrauchten Züge (Bewegungen und Drehungen) bei den gewonnenen Spielen. Hierbei wird aber zwischen eigenen Zügen, die sich direkt aus der Kartenwahl ergeben und zwischen den Bewegungen (fremde Züge), die die Spielfelder erzwingen, unterschieden. Eigene Züge werden einfach nur subtrahiert, fremde Züge nur zur Hälfte subtrahiert. Das heißt, es wird weniger bestraft, wenn man die Spielfelder geschickt ausnutzt, um vorwärts zu kommen.

Die Züge werden dabei pro Feld erfasst, d.h. "MF 3" führt im Normalfall zu drei Zügen, "MF 2" zu zwei Zügen und alle anderen Karten zu je einem Zug. Läuft man gegen eine Wand und eine gespielte Karte "MF 3" verpufft, ist das auch kein Zug. Rutscht man dagegen über 10 Ölfelder, sind das 10 Fremdzüge.

Zu guter Letzt werden auch noch die gesamten gespielten Karten bei gewonnenen Spielen subtrahiert. Das soll dafür sorgen, dass "gegen die Wand fahren" etwas bestraft wird.

Die Punktezahl wird am Schluss noch durch 10 geteilt, was aber natürlich nichts an der Platzierung ändern sollte, sondern die Punktespanne nur etwas übersichtlicher hält.

Beispiel

Ein kleines Rechenbeispiel: Die KI wird wie angekündigt mit je 100 vorher erstellten Kartenstapeln auf (in diesem Beispiel) 3 Spielbrettern getestet. M sei als 50 berechnet worden. Die Ergebnisse sind:

Spielbrett Gewonnenene Spiele S (von max. 100) eigene Züge Z fremde Züge Y gespielte Karten K
brett1.dat 98 2465 1496 1953
brett2.dat 99 2782 1131 2162
brett3.dat 84 4455 1496 3724
gesamt 281 9702 4123 7839

Das Ergebnis für diesen Teilnehmer ist also

     P = ( 2*50*281 - (9702 + 0.5*4123 + 7839) ) / 10 = 849.75

Neue Spieledateien

Im Zuge dessen gibt es auch neue Spieledateien, die sich aber nicht vom Ablauf geändert haben. Es wird nun nur am Ende eines Spiels eine Statistik ausgegeben, die die obige Tabelle leicht über folgendes Skript check_results erstellt:

#!/bin/bash
echo "Datei | Gew. Spiele | Runden | Karten | eig. Zuege | fremde Zuege | Gesamtzuege | Zeit (fuer alle Spiele)"
for FILE in $1 ; do
        echo $FILE "|" \
             `egrep "reached" $FILE | wc -l` "|" \
             `egrep "reached" $FILE | nawk '{ sum += $(NF-10) } END{ print sum }'` "|" \
             `egrep "reached" $FILE | nawk '{ sum += $(NF-8) } END{ print sum }'` "|" \
             `egrep "reached" $FILE | nawk '{ sum += $(NF-5) } END{ print sum }'` "|" \
             `egrep "reached" $FILE | nawk '{ sum += $(NF-3) } END{ print sum }'` "|" \
             `egrep "reached" $FILE | nawk '{ sum += $(NF-1) } END{ print sum }'` "|" \
             `egrep "real" $FILE | nawk -Fm '{ print $2 }' | nawk -Fs '{ sum += $1 } END{ print sum }' | sed 's/\./,/1'`
done
exit 0

Hinweis: Da die obige Formel nur auf den Ergebnissen zweier KIs erstellt wurde, kann es sein, dass der Faktor 2 vor M*S noch angepasst wird.

Wir wünschen nach wie vor allem Teilnehmern viel Erfolg und freuen uns auf alle Einsendungen.

Ihre freiesMagazin-Redaktion

freiesMagazin 10/2009 erschienen

Heute ist die Oktoberausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,3 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 10/2009 sind

  • Grundbegriffe der Virtualisierung
  • Gefahren von Fremdquellen am Beispiel PPA
  • Der September im Kernel-Rückblick
  • Java, Teil 1 - Einführung in eine moderne Sprache
  • Ordnung ins Chaos mit Org-Mode
  • Kurztipp: Suchen und Finden mit Vim
  • grep - Eine kleine Einführung
  • Von der Schaltung zur fertigen Platine mit EAGLE
  • 41. DANTE-Mitgliedertagung in Esslingen
  • Veranstaltungskalender und Leserbriefe

Vor allem auf unseren zweiten Programmierwettbewerb, der am 27. September gestartet wurde und bis Mitte Dezember läuft, soll besonders hingewiesen werden.

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

Wichtiges Update zum zweiten Programmierwettbewerb

Update 19.10.2009: Eine vierte Version wurde hochgeladen.

Aufgrund mehrerer Fehler in der Engine und der GUI wird hiermit eine neue Version der Spieledateien zum zweiten Programmierwettbewerb veröffentlicht. Wenn Sie eine Version vor dem heutigen Tage heruntergeladen haben, laden Sie bitte die neue Version herunter und nutzen nur noch diese.

Quellcode vom 19.10.2009: per FTP oder per HTTP.

Wir bitten diese Umstände zu entschuldigen und hoffen, dass nun alles fehlerfrei funktioniert.

Ihre freiesMagazin-Redaktion


Änderungen in der Version vom 19.10.2009:

  • einige private Klassenzugriffe in protected geändert
  • neuer Konstruktor für Bot-Klasse
  • eigene Library für Game-Engine
  • Bug behoben beim Laden einer Stats-Datei

Änderungen in der Version vom 14.10.2009:

  • Engine um Statistikausgabe erweitert

Änderungen in der Version vom 07.10.2009:

  • Bug behoben, dass nachfolgenden Karten verworfen werden, wenn keine Bewegung stattfindet

Änderungen in der Version vom 04.10.2009:

  • Bug behoben bei Abfrage auf Wände am Rand des Spielbrettes
  • Bug behoben bei Abfrage, ob Roboter das Ziel erreicht hat
  • Bug behoben in GUI beim Auslesen der Spielbrettgröße
  • Spielbrett einlesen verbessert mit genauerer Fehlerausgabe bei Problemen
  • Trennzeichen "----" in Sequenzdatei eingefügt, die Karten trennt
  • Anzeige in GUI, welche Karte zur aktuellen Sequenz gespielt wird

FAQ zum zweiten Programmierwettbewerb

Obwohl der zweite Programmierwettbewerb noch nicht einmal vor einer Woche startete, gab es in der Zeit schon zahlreiche Fragen, weil die Anleitung an einigen Stellen nicht detailliert genug ist. Aus dem Grund gibt es hier jetzt eine Liste mit den Fragen und Antworten. Die Webseite mit den Details zum Wettbewerb wurde bereits entsprechend geändert.

Wichtiger Hinweis: Dieser Beitrag kann zwar nicht von anderen kommentiert werden, bei jeder Aktualisierung wird aber ein Kommentar von uns hinterlassen, den man über ein Klick auf das RSS-Icon in der Browser auch abonnieren kann. So sieht man im Feedreader sofort, wenn sich hier auf der Seite etwas geändert hat.

Fragen zu Spielfeldern

-> Wie wahrscheinlich treten die einzelnen Elemente auf? Werden diese zufällig erstellt?

<- Die Spielbretter sind alle handgemacht, daher gibt es keine Wahrscheinlichkeit, mit der ein bestimmtest Spielfeld auftaucht.

Schieber gegen Wand

-> Verhält sich ein Schieber, der in Richtung einer direkt am Schieberfeld angrenzenden Wand zeigt, wie eine Schrottpresse?

<- Nein, denn der Bot ist maximal ein halbes Feld breit. Ein Schieber geht genau bis zur Hälfte eines Feldes. Das heißt, wenn der Schieber komplett ausgefahren ist, dotzt der Bot leicht gegen die Wand, aber es passiert nicht Schlimmes. Wenn keine Wand da ist, reicht der Schwung aber aus, damit er auf das nächste Feld rutscht.

-> Kann man eine Schrottpresse oder einen Schieber von allen vier Seiten betreten?

<- Nein, eine Schrottpresse und auch die Schieber haben an der jeweiligen Seite, an der der Schieber steht, eine Wand und können von dort nicht befahren oder verlassen werden.

-> Wird man beim Rutsch durch ein Ölfeld auf das am letzten Ölfeld angrenzende Feld gesetzt oder bleibt man auf dem letzten Ölspurfeld stehen?

<- Man landet auf dem letzten Feld nach der Ölspur (soweit kein anderes Objekt einen vorher stoppt).

-> Falls zwei Förderbänder in der Richtung aufeinander zeigen und man wird von einem auf das andere Band geschoben, wird man dann um 180° gedreht?

<- Nein, wird man nicht. Das mit der Drehung auf den Förderbändern kommt daher, dass diese „untrennbar“ verbunden sind und eigentlich grafisch einen Bogen beschreiben sollte. Das war aber zu umständlich zu realisieren. Stellt man es sich in real vor, wird man auf einem Gepäckförderband auch gedreht, wenn es um die Kurve geht. Aber man wird sicherlich nicht gedreht, wenn man auf einem Förderband steht, was gegen ein anderes läuft. Da fällt man maximal um.

Förderband und Ölfeld

-> Per Förderband gelangt man auf ein Ölfeld, nach dessen Durchrutschen man auf ein weiteres, aber andere Richtung zeigendes Förderband gelangt: Wird man dann auch gedreht?

<- Ja, derzeit wird der Bot auch gedreht, wenn er von einem Fließband über eine Ölspur auf ein anderes Fließband geschoben wird. Das klingt etwas ungewöhlich, aber ist so umgesetzt

-> Wie groß werden die Spielfelder sein? Signifikant größer als die chop.dat?

<- Die Wettbewerbsspielfelder werden voraussichtlich alle eine Größe von 12x12 Felder haben.

-> Es gibt das Leerzeichen für ein leeres Feld und es gibt das Zeichen a für ein Feld ohne Wände. Stellen diese zwei Zeichen das gleiche dar oder gibt es irgend einen Unterschied zwischen diesen Feldern?

<- Nein, die Felder sind identisch. Der Grund ist einfach, dass die erste (linke) Wand nicht bei b anfangen sollte. Wenn also ein a gelesen wird, ist das wie ein leeres Feld.

-> Wenn der Roboter das erste Feld eines langen Förderbandes betritt, wird er dann bis ganz ans Ende geschoben?

<- Nein, der Roboter wird pro Phase (also nach dem Ausspielen einer einzelnen Karte) nur immer ein Feld auf dem Förderband geschoben und nicht bis ans Ende. Das hat vor allem den Grund, dass es auch Förderbänder geben kann, die im Kreis fahren. Der Roboter würde so nie mehr stillstehen blieben.

-> Wenn der Roboter auf eine Wand zufährt, verfallen dann überflüssige Bewegungen oder ist der Zug dann einfach nicht möglich?

<- Wenn der Roboter ein Feld vor einer Wand steht und über die Karte MF 3 drei Schritte vorwärts fahren soll, fährt er einen Schritt und die zwei anderen verfallen.

-> Wenn man direkt vor ein Ölspur steht und drei Felder mit MF 3 nach vorn geht, wo landet man?

<- Man macht einen Schritt, rutscht bis auf das erste Feld nach der Ölspur und geht dann noch zwei Schritte weiter.

-> Kann man von einem Schieber in eine Schrottpresse geschoben werden?

<- Nein. Da sich Presse und Schieber gleichzeitig bewegen, kann man nie direkt von einem Schieber in eine Presse geschoben werden.

Fragen zur Schnittstelle

-> Ist es erlaubt, dass der Bot während des Spiel Dateien schreibt, um sich bisschen was zu merken?

<- An Dateien darf man abspeichern, was man möchte, natürlich.

-> Wenn schon nur 6 Sekunden pro Spiel zur Verfügung stehen, gibt's dann eventuell ein wenig Vorlaufzeit für jedes neue Spielfeld?

<- Also 6 Sekunden sind schon sehr großzügig - natürlich auf dem späteren Testrechner. Wer seine KI auf einem 486er schreibt, wird wohl auch mit 20 Sekunden Ausführungszeit am Wettbewerb teilnehmen können.

-> In der Datei cards.txt scheinen nicht nur die 8 Karten zu stehen, aus denen man auswählen kann, sondern der ganze restliche Stapel. Darf die KI diese Information benutzen?

<- Genau genommen ist es sogar die Aufgabe der KI, die Datei cards.txt einzulesen. Aber: Wenn die KI dran ist, stehen in der Datei nicht mehr alle Karten des Stapels, sondern nur die 8, die zur Auswahl stehen. Es gibt daher für die KI keine Möglichkeit alle Karten komplett einzulesen - zumindest wenn die Engine keine Lücke hat.

-> Gibt es einen definierte Rückgabewert für die KI?

<- Nein, es gibt nur 0 oder nicht 0. Man sollte nur dann einen Wert ungleich 0 zurückliefern, wenn die KI Probleme hat, denn dies führt automatisch zu einem kompletten Spielabbruch.

Fragen zur 3-D-Oberfläche

-> Inwiefern soll das 3-D-Spielbrett wirklich 3-D sein? Ist damit nur isometrische Darstellung gedacht?

<- Es ist sowohl richtiges 3-D (also mit frei beweglicher Kamera), als auch 3-D in isometrischer Ansicht sowie 2-D mit isometrischer Ansicht gemeint.

-> Reicht eine isometrische Darstellung aus oder soll noch eine weitere (und wenn ja was für eine) Darstellung existieren?

<- Es wäre ggf. nicht falsch, wenn man alle vier Standardansichten der isometrischen Perspektive wählen kann oder gar frei rotieren und zoomen.

-> Soll die Kartengröße des 3-D-Spielbretts beliebig groß sein können?

<- Ja, es wäre gut, wenn zum Beispiel auch ein 100x100-Spielbrett dargestellt werden könnte.

-> Darf die 3-D-Darstellung voraussetzen, dass bestimmte Pakete installiert sind, wie z.B. die wxWidgets-Bibliothek oder verschiedene OpenGL-Bibliotheken?

<- Natürlich wird man für die grafische Darstellung auf vorhandene Bibliotheken zurückgreifen müssen. Die Mesa-Bibliotheken, wxWidgets 2.8 und andere unter neuen Linux-Distributionen vorhandenen Bibliotheken sind dabei kein Problem.

Allgemeine Fragen

-> Darf man außer Konkurrenz auch an den anderen Wettbewerbskategorien teilnehmen?

<- Da der Wettbewerb offen geführt und die spätere Wertung auch nicht geheim gehalten wird, kann jeder daheim bei sich selbst nachvollziehen, ob seine KI in einer anderen Kategorie besser oder schlechter abschneidet. Eine Einbeziehung aller KIs, die nur außer Konkurrenz teilnehmen, würde den Testaufwand auf unserer Seite wahrscheinlich zu sehr erhöhen.
Wer seine 3-D-Oberfläche außer Konkurrenz einreichen will, kann dies aber gerne tun. Wir stellen diese dann vor, sie kann aber nicht gewinnen, wenn der Teilnehmer bereits in einer anderen Kategorie vertreten ist.

-> Wie kann man auf die Bibliotheken (also z.B. die libcards.a) in C zugreifen?

<- In C gar nicht, nur in C++, da die Library Klassen enthält und keine Funktionen. Am besten schaut man sich für eine Verwendung das Makefile der Referenz-KI im Ordner KIs/robots-ki_dir an. Theoretisch muss man nur die Header-Dateien per #include "NAME.hh" in die jeweilige C++-Datei einbinden und dann beim Kompilieren die jeweilige Library mit angeben über

$ g++ -I./libbase -I./libcards -c main.cpp
$ g++ -o ki.bin main.o -L./libbase -L./libcards -lcards -lbase 

-> Ist der Wettbewerb nur für natürliche Personen oder kann man auch als Verein daran teilnehmen?

<- Es ist durchaus möglich, auch als Verein teilzunehmen, jedoch muss man sich den Preis dann natürlich untereinander aufteilen.

-> Muss das Ziel nur „überrollt“ werden oder muss die Bewegung direkt auf dem Ziel enden?

<- „Überrollen“ reicht. Sobald das Zielfeld einmal befahren wurde, endet das Spiel.

-> Beim Starten der GUI bekomme ich einen Fehler der Art "invalid multibyte char". Was soll ich tun?

<- Die GUI setzt Ruby in der Version 1.8.x voraus, mindestens jedoch 1.8.6. - Mit Ruby 1.9 funktioniert die Anwendung nicht.

-> Beim Starten der GUI (nicht des GUI-Helders) bekomme ich einen Fehler der Art "X Error of failed request: BadMatch (invalid parameter attributes)". Hab ich was kaputt gemacht?

<- Vermutlich unterstützt der aktuelle Grafikkartentreiber eine genutzte OpenGL-Funktion nicht und kann daher die GUI nicht öffnen. Hier bleibt einem keine Wahl außer den Grafiktreiber auf eine Version zu aktualisieren, mit der 3-D resp. OpenGL korrekt unterstützt wird.

-> Wieso darf man nur in einer Kategorie teilnehmen?

<- Der Gewinner aus der Kategorie "schwer" würde ansonsten mit hoher Wahrscheinlichkeit auch gleich die Preise für "mittel" und "leicht" einheimsen, was wir vermeiden wollen.

-> Was passiert, wenn zu wenige Programmierer in einer Kategorie teilnehmen?

<- Sollte das passieren, wird der Preis an den Zweitplatzierten aus der nächsthöheren Kategorie vergeben (mit Ausnahme der Kategorie "GUI").

Zweiter freiesMagazin-Programmierwettbewerb gestartet

Aufgrund der guten Resonanz auf den ersten Programmierwettbewerb im April 2009 starten wir heute, am 27. September 2009, den zweiten freiesMagazin-Programmierwettbewerb.

Der Wettbewerb richtet sich wieder an (Hobby-)Programmierer, die sich diesmal mit einer Künstlichen Intelligenz zur Wegfindung beschäftigen dürfen. Die Teilnehmer können sich für eine der drei Schwierigkeitsstufen (leicht, mittel und schwer) entscheiden und in dieser ein Programm in einer beliebigen Programmiersprache einreichen, welches einen Robotor sicher durch eine Fabrikhalle mit sich bewegenden Elementen zum Ziel leitet. In einer vierten Kategorie sind vor allem Grafiker gefordert, die eine 3-D- oder Isometrie-Ansicht für die Fabrikhalle programmieren sollen, in der sich der Roboter dann bewegen kann. Anzumerken ist, dass jeder Teilnehmer nur an einer der vier Kategorien teilnehmen kann.

Als Preise werden Buchgutscheine für die jeweiligen Gewinner in den vier Kategorien in Höhe von 10 Euro (leicht), 20 Euro (mittel), 30 Euro (schwer) und 50 Euro (3-D-Ansicht) vergeben.

Alle wichtigen Informationen zum Wettbewerb findet man auf der eigens dafür eingerichteten Seite, auf der man auch die notwendigen Dateien zur Teilnahme herunterladen kann.

Wir freuen uns auf zahlreiche Einsendungen und wünschen allen Teilnehmern viel Erfolg.

Und natürlich ist dies auch die Auflösung unseres kleinen Ratespiels.

Ihre freiesMagazin-Redaktion

freiesMagazin 09/2009 erschienen

Heute ist die Septemberausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 750 KB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 09/2009 sind

  • Einfach Easy Peasy
  • Der August im Kernel-Rückblick
  • Linux auf der Nintendo Wii
  • Der Raytracer POV-Raytracer
  • Duden Korrektor im frischen Wind
  • Slingshot - Steinschleuder im Weltraum
  • Xpdf
  • Debian GNU/Linux - Das umfassende Handbuch
  • Veranstaltungskalender und Leserbriefe

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

Ratespiel

Ein kleines Ratespiel:

Kleiner, blecherner Schrotthaufen sucht in Großbaustelle Fahne fürs Leben. Was bin ich?

Wir freuen uns auf Ihre kreativen Antworten, die Sie uns entweder über das Kontaktformular, per E-Mail an redaktion ETT freiesmagazin PUNKT de oder als Kommentar am Ende dieses Beitrags zukommen lassen können.

Die richtige Antwort wird Anfang des nächsten Monats (also Oktober) verraten.

freiesMagazin 08/2009 erschienen

Heute ist die Augustausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 2,3 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 08/2009 sind

  • Kurze Vorstellung der elften Fedora-Ausgabe
  • ZevenOS meets Debian Lenny
  • Der Juli im Kernel-Rückblick
  • Audio und Video in Firefox 3.5 „Shiretoko“
  • Über magische Tasten aus der Klemme - SysRQs
  • Magazinerstellung mit LaTeX - Das Layout
  • PDF-Betrachter im Test
  • Auf Klick folgt Schnitt: PDF Chain
  • VNUML - Ein Netzwerksimulator mit User-Mode-Linux
  • Panoramabilder erstellen mit hugin
  • NaturalDocs - Quelltexte natürlich dokumentieren
  • Linuxtag - Erlebte Community
  • freiesMagazin sucht Unterstützung!
  • Veranstaltungskalender

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

freiesMagazin sucht Unterstützung!

Von Monat zu Monat wird freiesMagazin größer, was die Artikel angeht, das Team dagegen ist seit einem halben Jahr nicht mehr richtig gewachsen. Aus diesem Grund suchen wir Ihre Mithilfe!

Lernbereitschaft und langzeitiges Engagement sind vor allem bei der Mithilfe als Setzer und Korrektor sehr wichtig, da wir so besser planen und Aufgaben verteilen können. Als Gegenleistung für die ehrenamtliche Tätigkeit winkt leider nicht das große Geld, dafür gibt es aber Ruhm und Ehr' und die eigene Freude daran, an einem großen Community-Projekt mitzuwirken und der Gemeinschaft etwas zurückgeben zu können.

Autoren

Autoren sind natürlich das Salz in der Suppe eines Magazins, denn ohne diese wäre die Setzer und Korrektoren arbeitslos. Da freiesMagazin keine feste Autorenmannschaft hat, sind wir auf Zusendungen aus der Community angewiesen. Dabei gilt: (Fast) jeder kann einen Artikel über das schreiben, was ihn interessiert.

Eigentlich müssen Sie dafür nur Spaß am Schreiben haben und sich verständlich ausdrücken können, sodass jeder Leser Ihren Artikel oder Ihre Anleitungen nachvollziehen kann. Gerne gesehen sind vor allem Softwarevorstellungen und Spiele, aber auch HowTos oder Tutorials wünschen sich unsere Leser sehr. Eine übersichtliche Liste von gewünschten Themen finden Sie in unserer Artikelwunschliste. Sicherlich kennen Sie sich in einem dieser Gebiete aus. Und wenn nicht, sind wir auch immer offen für ganz neue Vorschläge aus den Bereichen GNU/Linux, Freie Software und/oder Open Source.

Setzer

Sie wollen freiesMagazin kreativ mitgestalten und den Artikeln das richtige Layout verpassen? Dann können Sie sich bei uns austoben.

Für den Satz kommt das Textsatzsystem LaTeX zum Einsatz, sodass etwas Wissen auf diesem Gebiet nicht schaden kann. Das Magazin ist aber so gehalten, dass sehr viel mit Makros gearbeitet wird und nicht zwingend LaTeX-Profis gefordert sind, um das Magazin zu setzen. Wenn jemand Interesse hat, sich auf diesem Gebiet einzuarbeiten, helfen wir gerne weiter.

Daneben wäre Wissen im Umgang mit dem Versionskontrollsystem Subversion (SVN) gut, ist aber nicht zwingend erforderlich. Die wenigen SVN-Befehle, die dazu benötigt werden, sind schnell erlernt -- auch Dank einer hervorragenden Dokumentation. Zusätzlich stehen in den meisten Linux-Distributionen und Desktopumgebungen auch grafische Oberflächen für die Verwaltung bereit, sodass man nicht zwingend die Konsole bedienen muss -- auch wenn es darüber manchmal schneller geht. ;)

Korrektoren

Sie sind fit in der deutschen Rechtschreibung und Grammatik? Und manchmal werden Sie als Erbsenzähler verschrien? Dann willkommen bei den Korrektoren!

Als Korrektor sollten Sie die deutsche Rechtschreibung sehr gut beherrschen. Groß-/Kleinschreibung, Zeichensetzung und dergleichen werden des Öfteren bei der Korrektur von freiesMagazin gefordert. Zusätzlich schadet es nicht, wenn Sie sprachlich gewandt sind, sodass Sie Sätze in Artikeln auch umstellen können, wenn es notwendig ist.

Wie bei den Setzern wird auch hier das Versionskontrollsystem Subversion eingesetzt.

Kontakt

Wenn Sie nun Lust bekommen haben, freiesMagazin mitzugestalten und zu verbessern, oder einen Artikel schreiben wollen, schreiben Sie an info@freiesmagazin.de oder nehmen Sie über das Formular mit uns Kontakt auf.

Update 05.08.2009: Da wir sehr viele Bewerbungen von interessierten Korrektoren und Setzern erhalten haben, benötigen wir für diese Bereiche vorerst keine weiteren Helfer. Nach wie vor sind aber Autoren gesucht, die mit Ihren Artikeln das Magazin bereichern können.

freiesMagazin 07/2009 erschienen

Heute ist die Juliausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,5 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 07/2009 sind

  • ZevenOS - Linux goes BeOS
  • easyVDR - The easy VDR Distribution
  • Der Juni im Kernel-Rückblick
  • Gentoo Linux mit Festplattenverschlüsselung
  • Partitionen verschlüsseln mit dm-crypt und LUKS
  • Kurztipp: Markierungen mit Vim
  • Was bieten freie CRM-Lösungen? - Im Vergleich: SugarCRM und vtiger CRM
  • C.U.O.N. und mobile Dienste
  • PDF-Zerteilung nach Maß
  • Internetrecht - als Donationware!
  • Veranstaltungskalender und Leserbriefe

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

freiesMagazin - Hinweis: Link zum Kommentarfeld

Bedauerlicherweise ist uns in der aktuellen Ausgabe von freiesMagazin ein Fehler unterlaufen: Der Link in der Kommentarfunktion war bis gestern Abend in allen drei Versionen des Magazins fehlerhaft. Leser, die im Laufe des Sonntags einen Kommentar abgesetzt haben, finden ihren Kommentar vorerst unter Programmierwettbewerb verlängert wieder.

Wir bitten um Entschuldigung!

freiesMagazin 06/2009 erschienen

Heute ist die Juniausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,4 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 06/2009 sind

  • Mobiles Linux mit Moblin
  • Debian 5.0-Installation mit einer Braillezeile
  • Die Vorgeschichte von Linux
  • Der Mai im Kernel-Rückblick
  • Toribash - Kampf mit (der) Physik
  • Erfahrungsbericht: OpenOffice.org 3.0
  • Keine Angst vor awk - ein Schnelleinstieg
  • AVR-Mikrocontroller unter Linux
  • ECDL/ICDL wagt sich an OpenOffice.org
  • Rezension: Just for Fun - The Story of an Accidental Revolutionary
  • Das Ende des Programmierwettbewerbs
  • Veranstaltungskalender und Leserbriefe

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

Gewinner des Programmierwettbewerbs steht fest

Vor gut zwei Wochen wurde der Programmierwettbewerb beendet und der Kampf der KIs konnte beginnen. Diese Woche lagen die Ergebnisse dann vor und konnten ausgewertet werden.

Ohne Umschweife präsentieren wir die Spielergebnisse und damit auch den Gewinner des freiesMagazin-Programmierwettbewerbs:

Spielergebnisse
S U N Punkte
1. Kroschinsky 904 242 54 2954
2. Schulz 858 263 79 2837
3. Breitner 837 281 82 2792
4. Jackermeier 754 306 140 2568
5. Roth 574 338 288 2060
6. Eitel 567 355 278 2056
7. Reichel 342 328 530 1354
8. Zimmermann 303 400 497 1309
9. Apensiv 190 353 657 923
10. Maraun 150 300 750 750
11. Golemo 131 319 750 712
12. Ziegelwanger 120 337 743 697
13. Fuest 32 254 914 350

Wir gratulieren damit Herrn Marcus Kroschinsky für seine clevere KI und werden ihm in den nächsten Tagen einen 25-Euro-Gutschein für Bookzilla.de zukommen lassen.

Als Zweites sollte die Ausführungszeit ja auch noch irgendwo mit einfließen. Hierfür haben wir eine extra Tabelle mit dem Punkte/Zeit-Verhältnis (d.h. wie viele Punkte erreicht eine KI pro Sekunde Berechnungszeit im Durchschnitt) erstellt:

Punkte/Zeit-Verhältnis
Punkte Zeit Verhältnis
1. Roth 2060 449 4,59
2. Jackermeier 2568 565 4,55
3. Eitel 2056 850 2,42
4. Kroschinsky 2915 1220 2,39
5. Schulz 2837 1208 2,35
6. Reichel 1354 691 1,96
7. Apensiv 923 543 1,70
8. Breitner 2792 1698 1,64
9. Ziegelwanger 697 488 1,43
10. Maraun 750 532 1,41
11. Zimmermann 1309 948 1,38
12. Golemo 712 810 0,88
13. Fuest 350 812 0,43

Da wir diese großartige Leistung (sehr hohe Punktzahl bei geringer Ausführungszeit) nicht ignorieren wollen, machen wir es uns ganz einfach:

Wir gratulieren Herrn Frank Roth und Herrn Robert Jackermeier zum Sonderpreis für die KIs mit den besten Punkte/Zeit-Verhältnis. Damit es nicht nur bei einer Gratulation bleibt, erhalten beide Teilnehmer ebenfalls einen Buchgutschein für Bookzilla in Höhe von 15 Euro.

(Da das Punkte/Zeit-Verhältnis der beiden Teilnehmer extrem dicht beisammen liegt und auf die Zufälligkeit der nachfallenden Steine im Spiel sowie die verschiedene CPU-Auslastung beim Test zurückgeführt werden kann, haben wir uns für eine Prämie beider Teilnehmer entschieden.)

Alle KIs stehen unter einer freien Lizenz und können über den FTP-Server heruntergeladen werden. Dort findet man auch die ausführlichen Ergebnisse als OpenDocument.

Abschließend bedanken wir uns bei allen Teilnehmern, die am Wettbewerb teilgenommen haben und diesen dadurch erst ermöglichten.

In der kommenden Ausgabe von freiesMagazin, die am Sonntag, den 7. Juni 2009, veröffentlicht wird, können Sie weitere ausführliche Details zum Wettbewerb und dessen Auswertung nachlesen.

Programmierwettbewerb beendet

Wie vor zwei Wochen angekündigt wurde der Programmierwettbewerb am Sonntag, den 24. Mai 2009, beendet. Bis 23.59 Uhr konnten Teilnehmer Ihre KIs einsenden. Zusätzlich gaben wir einigen Teilnehmern noch weitere 24 Stunden Zeit fehlerhafte KIs auszubessern.

Das bedeutet, dass der Wettbewerb nun offiziell beendet ist und die Auswertung starten kann. Insgesamt gab es 13 Programmierer, die sich der Aufgabe angenommen haben und uns eine KI zusendeten. Vielen Dank an dieser Stelle für die rege Teilnahme.

Die kommenden zwei Wochen werden die KIs gegeneinander antreten und es wird entschieden, wer die stärkste geschrieben hat. Die Ergebnisse werden in der Juni-Ausgabe von freiesMagazin vorgestellt, in der auch der Gewinner bekannt gegeben wird.

Programmierwettbewerb verlängert

Wie bereits kurz in der letzten Ausgabe von freiesMagazin erwähnt, haben wir den Abgabetermin der Programme für den Programmierwettbewerb etwas verschoben. Eigentlich wäre heute der letzte Abgabetag gewesen, der neue Termin ist am 24. Mai 2009.

Wer also noch eine KI schreiben will, um am Wettbewerb teilzunehmen, hat noch weitere zwei Wochen Zeit seine Kreativität auszuleben.

Teilnehmer sollten sich auch die häufig gestellten Fragen durchlesen und den Hinweis zur Laufzeit-Wertung beachten.

Wir freuen uns auf weitere Einsendungen
Ihre freiesMagazin-Redaktion

freiesMagazin 05/2009 erschienen

Heute ist die Maiausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,9 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 05/2009 sind u.a.

  • Debian GNU/Linux 5.0 „Lenny“ - Der Zustand der Distribution
  • Ausgeflasht: Ein Versuch mit Gnash und Swfdec
  • RSS-Feeds: Technik und Nutzen kurz vorgestellt
  • Der April im Kernel-Rückblick
  • GPL-Lizenzenzschwierigkeiten
  • Virtualisierung im Allgemeinen und KVM unter Proxmox VE im Speziellen
  • Geh spielen! - GoPlay zur Suche nach Software einsetzen
  • Kennwortgedächtnis auslagern mit KeePassX
  • Kurztest: Bespin
  • Kurztipp: Splitscreens mit Vim
  • Das Netbook-Touchpad: Ein ergonomisches Desaster
  • Veranstaltungskalender und Leserbriefe

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

Wichtige Ankündigung zum Programmierwettwerb

Wie ein krosmarc in diesen Kommentar bemerkt hat, werden die Spiele zweier KIs, die eine ähnliche Taktik haben, meistens unentschieden ausgehen. Oft ist es dann nur davon abhängig, welche Steine von oben nachrutschen, die dann über Sieg oder Niederlage einer KI entscheiden.

Das bedeutet, dass es neben der bisherigen Wertung eine zusätzliche Wertung geben muss. Die aktuelle Wertung wird folgendermaßen berechnet:

  1. Jede KI muss gegen jede andere KI auf 100 Wettbewerbsfeldern antreten. Dabei fängt einmal KI 1, danach KI 2 auf dem gleichen Feld an.
  2. Gewinnt eine KI beide Spiele, zählt dies als Sieg, verliert sie beide, zählt es als Niederlage und gewinnt einmal KI 1, danach KI 2 (oder umgekehrt), ist das Spiel unentschieden.
  3. Für jeden Sieg einer KI gibt es 3 Punkte, für jedes Unentschieden einen Punkt.
  4. Spiele gegen sich selbst (die ja normalerweise in 100 Unentschieden enden), werden nicht gewertet.

Wenn zwei KIs gleich stark sind, ist oft die Ausführungszeit (vor allem für mich als Wettbewerbsleiter) wichtig. Aus diesem Grund soll diese auch mit eine Rolle spielen. Schnelle Programme werden also belohnt, langsame Berechnungen etwas bestraft. Da natürlich die verwendete Programmiersprache auch wichtig ist, soll die Wertung so moderat vorgenommen werden, dass keinem Programmierer in einer bestimmten Sprache ein Nachteil entsteht.

Aus diesem Grund soll folgendes Verfahren angewendet werden (n = Anzahl der KIs):

  1. Für jede KI wird aus der Zeit, die sie gegen die anderen KIs gespielt hat, der Mittelwert M_i berechnet, i=1,...,n.
  2. Von den Mittelwerten M_1 bis M_n wird die Standardabweichung wieder der Mittelwert S berechnet.
  3. Daraus wird ein Wert R = ROUND((S-M_i)/10) berechnet. Die Teilung durch 10 soll dabei für eine annähernde Gleichberechtigung verschiedenen Sprachen sorgen.
  4. Dieser Wert R wird zur erreichten Punktzahl addiert.

Auf diese Weise werden schnelle KIs etwas bevorzugt und langsame KIs etwas benachteiligt. Aber nur in so einem Maße, dass es das eigentliche Ergebnis (KI spielt gut oder schlecht, siehe oben, denn dies ist vorrangig von Bedeutung) nicht zu sehr verfälscht.

Wenn jemand eine bessere Idee für eine faire Wertung der Laufzeit hat, soll er sich bitte melden. Irgendeine Abstufung sollte es aber geben, um die Programmierer, die einen Algorithmus besser umgesetzt haben als andere, zu belohnen.

Fragen und Antworten zum Programmierwettbewerb

Update 18.04.2009: Kleine Änderungen an der Spielmechanik, was die Bewertung betrifft, wenn eine KI illegale Züge zurück gibt oder gar nicht mehr reagiert.

Update 17.04.2009: Neue FAQ-Einträge 22 - 25.

Update 12.04.2009: Neue FAQ-Einträge und neue Version mit DEBUG-Schalter.

Update 11.04.2009 (Teil 2): Es gab in der Spielmechanik noch einen recht großen Bug, der in der neuen Version ausgebessert wurde.

Update 11.04.2009: Es gibt eine neue Version mit kleinen Ausgabeverbesserungen.

Seit dem Start des Programmierwettbewerbs sind ein paar Fragen bei uns eingegangen, die wir hiermit auch für alle anderen Leser beantworten wollen.

  1. Wenn ein Spieler drei oder mehr Steine entfernt und es rutschen neue Steine nach, die zufällig
    zusammenpassen, werden diese dann ebenfalls dem Spieler angerechnet?

    Ja, nachrutschende passende Steine werden ebenfalls dem Spieler angerechnet, der für diese Kaskade zuständig war.
    Dies erklärt auch, wieso Spieler 1 bei der Referenz-KI beim ersten Zug von Spieler 2 plötzlich nur noch 4 Schildpunkte hat.
  2. Wohin muss ich meine Implementierung schicken?
    Bitte schicken Sie diese per E-Mail an die Redaktion.
  3. Wird die Gültigkeit einer Implementierung vor dem eigentlichen Wettbewerb geprüft?
    Der Wettbewerb selbst ist fortlaufend und startet nicht erst nach Abgabeschluss. In der Zeit wird natürlich geprüft, ob die Implementierung korrekt funktioniert und gegebenenfalls Rückmeldung an den Autor gegeben. Es werden aber keine Hinweise gegeben, ob eine andere KI besser oder schlechter ist.
  4. Gibt es eine Webseite für den Wettbewerb, wo man die Regeln nochmal nachlesen kann? Oder vielleicht ein Forum oder ein Wiki zum Diskutieren?
    Die Webseite findet man unter diesem Link. Ein Forum oder Wiki wird hierfür aber nicht eringerichtet, da der Aufwand zu hoch ist.
  5. Ich glaube, ich habe einen kleinen Fehler in Eurer Schnittstellenspezifikation aufgetan.
    In der Tat ist beim Herausschreiben der Spielerinformationen player.dat ein Dreher aufgetreten, sodass die Zeilen für gelbe und grüne Steine vertauscht wurden.
  6. Steht während des Spiels die spiefeld.dat mit den 10000 Zeilen zur Verfügung bzw. darf die KI sie lesen?
    Nein, es stehen nur die kleinen 10x10-Spielfelder zur Verfügung.
  7. Kann es passieren, dass man ein Spielfeld (10x10) vorgesetzt bekommt, bei dem es keine gültige Tauschmöglichkeit gibt?
    Theoretisch ja. Es wird inzwischen aber nach jedem Zug überprüft, ob es noch tauschbare Steine gibt. Falls nicht, werden die untersten Zeilen so lange entfernt, bis wieder ein spielbares Feld entsteht.
  8. Kann es passieren, dass zwei KIs solange spielen, dass die nachrückenden 9900 Zeilen des vorberechneten Spielfeldes nicht ausreichen?
    Ja, das kann passieren. In dem Fall bricht das Spiel ab und der Sieger wird danach gekürt, wer noch die meisten Lebenspunkte übrig hat.
  9. Die Gamelogik ruft ja fm-ai1.bin und fm-ai2.bin auf. Können das auch Shell-Skripte sein, die dann die eigentliche KI in Sprache XYZ aufrufen?
    Selbstverständlich. Ein Skript für die Referenz-KI kann zum Beispiel so aussehen:

    #!/bin/bash
    fm-ai/fm-ai.bin
    exit $?

    und wird als fm-ai1.bin abgespeichert. Die Ausführrechte (mit chmod +x fm-ai1.bin) natürlich nicht vergessen!
  10. Darf eine KI die gegnerische KI austauschen oder das Spielfeld verändern?
    Nein, dies wäre kein faires Vorgehen und wird von uns durch Schreibsperren zusätzlich unterbunden.
  11. Gibt es eine Möglichkeit, manuell gegen eine KI zu spielen, um diese zu testen?
    Ja, hier hilft wieder ein kleines Bash-Skript:

    #!/bin/bash
    echo "Geben Sie die zu tauschenden Felder ein (der Art \"0 2 0 3\"):"
    read EINGABE
    echo $EINGABE > result.dat
    exit $?

    Dieses speichert man dan dann z.B. direkt als zweite KI fm-ai2.bin ab und macht die Datei ausführbar.
    Daneben hat ein Leser eine GUI in Java programmiert, die man natürlich nutzen kann.
  12. Was passiert, wenn die KI eine ungültige Tauschkombination abgibt?
    In dem Fall verliert derjenige Spieler fünf Lebens- bzw. Schildpunkte und ist nicht erneut an der Reihe.
  13. Können pro Teilnehmer mehrere KIs in den Wettbewerb gehen?
    Nein, aber das eingereichte Programm kann mehrfach verbessert werden.
  14. Wann ist Abgabeschluss?
    Am 10. Mai 2009. Sollte genügend Interesse bestehen, wird der Stichtag um zwei Wochen nach hinten verschoben.
  15. Werden die KIs veröffentlicht?
    Ja, es werden alle KIs auf den Server hochgeladen und je nachdem wie viele es sind, auch alle vom jeweiligen Autor im Magazin kurz beschrieben.
  16. Eine Fünfergruppe an Steinen gibt nicht automatisch einen weiteren Zug pro Runde wie bei Puzzle-Quest, oder?
    Nein, wir wollten das Spiel nicht zu komplex gestalten.
  17. Wie gestaltet sich der Wettkampf? Erprobt Ihr die Skripte und Programme im KO-Verfahren?
    Nein, jede KI muss mit mehreren Beispielfeldern gegen alle anderen KIs antreten. Daraus wird ermittelt, wer die meisten Spiele gewonnen hat. Ein KO-Verfahren wäre zu selektiv.
  18. Darf eine KI die jeweils andere ausführen?
    Nein, denn wenn beide KIs das machen, gibt es eine schöne Endlosschleife. Es ist aber natürlich erlaubt, aus dem vorherigen Zug des Gegners (Veränderung des Spielfeldes) dessen Taktik abzuleiten.
  19. Ist "1. Runde gewonnen, 2. verloren" immer ein Unentschieden?
    Es ist noch nicht entschieden, ob ein Sieg/Niederlage-Spiel zu einem Unentschieden führt. Falls ja, ist auch noch nicht bestimmt, wie die Wertung dann aussehen wird.
  20. Wenn man 16 rote Steine ergattert hat, wird Schaden verursacht und der Wert fällt auf 0 oder auf 1?
    Auf 1. Erhaltene Steine gehen nicht verloren.
  21. Wie wird der eigentliche Wettbewerb gestartet?
    Hier helfen ein paar Bash-Befehle:

    # Felder erstellen
    for (( I=1; $I <= 100; I++ )); do ./fm-game.bin wettbewerbsfeld$I.dat create; sleep 2; done
  22. # Felder abarbeiten
    ( date && ( for (( I=1; $I <= 100; I++ )); do ./fm-game.bin wettbewerbsfeld$I.dat; done ) && date ) > results

    Das Datum wird eingepflegt, um später auch die Dauer eines kompletten Laufs über

    egrep CEST results

    auszugeben. (Subtrahieren der Zeiten muss man selbst.)
    Um die results-Datei zu analysieren, hilft ein weiteres Bash-Skript:

    #!/bin/bash
    let LINECOUNTER=0
    let S=0
    let U=0
    let N=0
    for LINE in `egrep "dead" $1` ; do
        if [ $LINE == "1" -o $LINE == "2" ] ; then
            let LINECOUNTER=$LINECOUNTER+1
            let RESULT=$LINECOUNTER%2
            if [ $RESULT -eq 1 ] ; then
                let LOOSER=$LINE
            else
                if [ $LOOSER == $LINE -a $LOOSER == "1" ] ; then
                    let N=$N+1
                elif [ $LOOSER == $LINE -a $LOOSER == "2" ] ; then
                    let S=$S+1
                else
                    let U=$U+1
                fi
            fi
        fi
    done
    echo $S " : " $U " : " $N

    Dieses ruft man z.B. per ./check results auf.

  23. Wenn ein Stein sowohl horizontal als auch vertikal in eine Dreierreihe bzw. -spalte passt, wird die Reihe oder die Spalte bevorzugt?
    Weder noch. Sowohl die Reihe als auch die Spalte werden gleichzeitig entfernt und gewertet. Das bedeutet, dass der Stein zweifach gewertet wird.
  24. Darf eine KI eine Logdatei führen, um zu "erkennen", wie die gegnerische KI arbeitet?
    Gerne sogar. Solche selbstlernenden KIs sind im Wettbewerb sicher selten und sorgen für Abwechslung.
  25. Wenn zwei KIs gegenseitig etwa gleich stark sind und nur Unentschieden spielen, werden dann andere Kämpfe zum Ermitteln der besseren KI genommen?
    Jede KI muss gegen jede andere KI antreten. Daraus werden Punkte für jedes gewonnene und unentschieden ausgegangene Spiel errechnet, die dann zu einer Abschlussplatzierung führen (siehe oben).
  26. Gibt es nach dem Einsenden einer KI Hinweise, wie man gegen die anderen KIs abschneidet?
    Nein. Es wird nur das Spielergebnis auf den 100 Wettbewerbsfeldern gegen die Referenz-KI an den Autor weitergegeben. Natürlich wird aber auf Programmierfehler (falsche Züge etc.) hingewiesen.
  27. Darf ein Zug der KI wirklich eine Minute brauchen?
    Nein, bitte nicht. Ein realistischer Maximalwert sind 20 Sekunden für ein ganzes Spiel. Das bedeutet, dass ein Wettbewerbslauf gegen eine andere KI circa eine Stunde dauert, was mehr als genug ist, schließlich soll auch noch gegen andere KIs gespielt werden.

Die oben gelisteten Fehler wurden in einer neuen Version der Spielmechanik behoben bzw. wurde durch neue Ausgaben während des Spiels für mehr Transparenz gesorgt. Die Dateien liegen wie bisher im FTP-Verzeichnis: Download per FTP oder per HTTP.

Bitte zögern Sie nicht, weitere Fragen zu stellen oder auf Fehler hinzuweisen, damit wir diese umgehend ausbessern können.

PS: Diese Nachricht wird ggf. im Laufe des Monats um weitere Einträge erweitert.

freiesMagazin 04/2009 erschienen

Heute ist die Aprilausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,4 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 04/2009 sind u.a.

  • Openmoko - Free your phone
  • gNewSense - Das freie Ubuntu
  • Das Dateisystem ext4
  • Ein Tuz für den Kernel
  • Programmieren in KBasic - Eine kurze Einführung
  • Datensammlung mit Tellico
  • Kurztest: Etherpad
  • Linux-Herstellerunterstützung: DVD-Brenner-Update
  • Rezension: Coding for Fun - IT-Geschichte zum Nachprogrammieren
  • Veranstaltungskalender, Leserbriefe und vieles mehr

Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Besonderes auf den Programmierwettbewerb wollen wir diesen Monat aufmerksam machen, bei dem es auch einen 25-Euro-Buchgutschein zu gewinnen gibt.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

Programmierwettbewerb gestartet

Die Auswertung der freiesMagazin-Umfrage letzten Monat hat gezeigt, dass sich sehr viele Leser Programmierthemen wünschen. Man kann (mit etwas gutem Willen) aus diesem Wunsch auch ablesen, dass es da draußen sehr viele (Hobby-)Programmierer gibt. Und gegebenenfalls gibt es sogar welche, die nach etwas Programmierarbeit lechzen. All diese wollen wir diesen Monat ansprechen -- und damit auch gleich alle Leser befriedigen. Als Ansporn gibt es auch eine Kleinigkeit zu gewinnen.

Die Programmieraufgabe ist prinzipiell sehr einfach gestrickt. Es geht darum, für ein sehr simples Zwei-Personen-Spiel die künstliche Intelligenz (KI), d.h. den computergesteuerten Spieler, zu erstellen. Diese soll nach Übergabe einiger Daten die (in den Augen des Programmierers) beste Zugmöglichkeit herausfinden. Auf diese Art spielen zwei künstliche Intelligenzen gegeneinander. Der Programmierer mit der besten, d.h. dominierensten KI (siehe unten für genaue Kriterien), gewinnt den Wettbewerb. Die Programmiersprache ist dabei dem Programmierer überlassen, nur unter einer freien Lizenz muss das Programm stehen.

Alle Details zur Aufgabe findet man auf einer eigenen Webseite.

Der Stichtag für das Wettbewerbsende ist der 10. Mai 2009. Bis dahin müssen alle Programme bei der Redaktion eingegangen sein. Sollte die Resonanz bis dahin extrem positiv ausfallen und wir mit Programmen überschüttet werden, gibt es vielleicht auch eine Verlängerung bis zum 24. Mai 2009. Der Sieger wird dann in der Juniausgabe von freiesMagazin mitgeteilt.

Wichtig: Jeder Teilnehmer darf nur ein Programm einreichen. Natürlich darf er aber seine KI bis zum Stichtag gerne mehrfach nachbessern.

Wie oben erwähnt gibt es als Ansporn auch eine Kleinigkeit zu gewinnen: einen Gutschein im Wert von 25 Euro für den Online-Handel Bookzilla.de. Es wurde sich für diesen Händler entschieden, da durch den Verkauf der Bücher 5% des Erlöses an die Free Software Foundation Europe gespendet werden. Diese Unterstützung Freier Software wollen wir natürlich auch unterstützen.

Wir wünschen allen Teilnehmern viel Erfolg und freuen uns über zahlreiche Programme, die dann zum Duell gegeneinander antreten.

Ihre freiesMagazin-Redaktion

Nachtrag: Auch wenn heute der 1. April ist, handelt es sich nicht um einen Aprilscherz.

Inhalt abgleichen Inhalt abgleichen