Beschreibung

freiesMagazin berichtet monatlich über Wissenswertes und Neues aus den Welten Freier Software, Open Source und Linux. Was 2005 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.

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.

Inhalt abgleichen Inhalt abgleichen