Programmierwettbewerb bei Linux-Magazin

Der letzte Programmierwettbewerb von freiesMagazin ist schon eine Weile her und der dritte wird voraussichtlich noch ein paar Monate Planung in Anspruch nehmen. Wer die (Programmier)Finger bis dahin nicht stillhalten kann, kann sich den aktuellen Programmierwettbewerb beim Linux-Magazin anschauen.

Aufgabe ist es, eine einfache KI zu schreiben, die Würfelwürfe sammelt. Dabei addiert sich jeder Wurf, außer man würfelt eine 6. Dann verliert man alle bisher gesammelten Punkte. Zur Abwechslung kann man aber auch Aussetzen, wodurch die bisher erzielte Punktzahl gesichert wird und nicht mehr verloren werden kann. Damit das Ganze spannender wird und ein echter Wettbewerb entsteht, spielt man gegen die Bots der anderen Teilnehmer. Der, der zuerst 50 Punkte erreicht, gewinnt das Spiel.

Wer mitmachen möchte, hat noch bis zum 12. September 2010 Zeit, einen eigenen Bot zu schreiben. Dem Gewinner winkt ein Linux-Micro-Netbook Ben Nanonote. Weitere Informationen findet man auf der Wikiseite zum Wettbewerb.

Wir wünschen allen Teilnehmern viel Erfolg – versprechen aber, dass unser nächste Wettbewerb etwas ausgefallener wird als ein simples Würfelspiel. ;)

Bewertung des Programmierwettbewerbs

Zunächst einmal ein riesiges Dankeschön für diesen Tipp!

Ich möchte im Folgenden ein paar Anmerkungen zu diesem Wettbewerb geben und klarstellen, dass ich wirklich jedem, der irgendeine Programmiersprache – egal welche! – nur halbwegs kann, durchaus Spaß an der Teilnahme haben wird.

Die Vorteile auf einen Blick:

  1. Die Aufgabe erscheint sehr simpel und tatsächlich lassen sich komplette Lösungen mit nur wenigen Zeilen darstellen. Zum Beispiel als Bash-Skript. Ich persönlich finde die awk-Implementierung am interessantesten, aber selbst C++- und andere -Bots sind auf dem Wiki des Wettbewerbs bereits veröffentlicht. Es kann also wirklich jeder teilnehmen.
  2. Gleichzeitig ermöglicht die Aufgabe unglaublich viele grundlegende Ansätze für Strategien und taktische Möglichkeiten. Immer fünf Mal zu würfeln ist beispielsweise wohl nicht die optimale Taktik, man wird damit aber schon sehr weit kommen. Man könnte aber auch immer bis zu einer gewissen Augenzahl würfeln, auf die Strategie des Gegner Rücksicht nehmen oder es noch beliebig weiter verkomplizieren. Ich vermute, dass der Gewinner des Wettbewerbs letztlich einen sehr komplizierten Programmablauf verwenden wird, der aber auf einer schlüssigen und nicht allzu komplexen Grundidee basiert. Also nix mit Probieren und Bauchgefühl … aber wer weiß. Vor allem die Obergrenze 50 ist sehr gut gewählt: Wäre sie wesentlich höher, so würden taktische Möglichkeiten verloren gehen; bei weniger als 50 wäre es möglicherweise zu einfach. Das Ganze stellt man interessanterweise erst fest, wenn man sich einige Zeit damit beschäftigt hat.
  3. Schließlich ist die Idee mit dem Netzwerk sehr gut. Die Kommunikation zwischen Bots ist so sehr bequem und vor allem portabel – sie ist sowohl übers Netzwerk als auch auf dem lokalen Rechner möglich. Darüber hinaus wird der Wettbewerb so anspruchsvoller, denn man merkt schnell, dass man nicht der Beste ist und optimiert sein Programm dann doch noch weiter.

Die Netzwerkgeschichte könnte man eventuell als Nachteil auslegen, da so zu viel über die Mitspieler verraten wird. Auch auf dem Wiki wird m. E. zu viel verraten. Und ich würde noch behaupten, dass bei dieser Aufgabe Mathematiker im Vorteil gegenüber den Informatikern sind. Ob das wirklich stimmt, wird sich ja vielleicht am Ende zeigen.

[…] dass unser nächste Wettbewerb etwas ausgefallener wird als ein simples Würfelspiel. ;)

Das habt ihr sicherlich nicht böse gemeint, aber wie ihr nun wisst, ist dieses Würfelspiel sehr simpel und enorm komplex zugleich. Bei euren beiden Wettbewerben hat mich auch gerade gestört, dass von Anfang an alles so kompliziert erscheint. Wenn ihr etwas vergleichbar Geniales wie das Linuxmagazin vorschlagen könntet, wäre das optimal. Ist aber wirklich nicht leicht!

Viel Spaß allen weiteren Teilnehmern!

Re: Bewertung des Programmierwettbewerbs

Es wäre kein Problem für uns, ein so vereinfachten Programmierwettbewerb zu starten, unsere Aufgaben sind aber mit Absicht etwas anspruchsvoller. Zum einen wollen wir selbst Spaß an der Umsetzung haben. Das Würfelspiel des Linux-Magazins ist für mich persönlich viel zu glückslastig. Es erfordert hier zig zahlreiche Spiele (im Tausender-Bereich), ehe man ansatzweise sagen kann, welche KI besser ist. Da macht die Erstellung des Spiele-Engine keinen Spaß.

Daneben haben wir gar nicht die Ressourcen, um über hundert Teilnehmer zu verwalten und deren KIs zu testen. freiesMagazin ist ein kleines Projekt im Vergleich zum Linux-Magazin, welches aus freiwilligen Mitarbeitern besteht. Die Zeit und auch die Hardware-Power für einen solchen Ansturm an Teilnehmern besteht daher nicht.

Das sind die beiden wichtigsten Gründe, wieso auch der nächste Wettbewerb, der bereits in Vorbereitung ist, komplexer wird. Der Zufall wird auf ein Minimum reduziert, die eigentliche Aufgabe ist in der Grundidee einfach, gibt den Teilnehmern aber viel mehr taktische Möglichkeiten als ein Würfelspiel.

Wir würden uns natürlich freuen, wenn Du später dennoch teilnimmst, auch wenn die möglichen Entscheidungsoptionen über ein "würfel / würfel nicht" hinausgehen.

Dominik Wagenführ
freiesMagazin-Redaktion

Re: Bewertung des Programmierwettbewerbs

Es erfordert hier zig zahlreiche Spiele (im Tausender-Bereich), ehe man ansatzweise sagen kann, welche KI besser ist. Da macht die Erstellung des Spiele-Engine keinen Spaß.
Ersteres stimmt, letzteres nicht unbedingt. Ich hoffe einfach mal, dass das Linuxmagazin clever genug ist, so viele Spiele durchlaufen zu lassen, dass der Sieger nicht durch den Zufall bestimmt wird, sondern das sog. Gesetz der großen Zahlen greift. Wie dem auch sei: Dass ihr es komplizierter macht, damit nicht so viele Leute teilnehmen, kann ich verstehen.

Als Anregung ist mir nun eingefallen, dass mehr oder weniger bekannte Brettspiele teilweise ideale Kandidaten für Programmierwettbewerbe darstellen. Man schaue in der Wikipedia nur nach „Spiel des Jahres“ oder dergleichen. (Spontan würde ich Scotland Yard vorschlagen, das habe ich als Kind auch mal gespielt.) Aber dieser Vorschlag ist euch möglicherweise ja schon bekannt …

Die Idee mit der Netzwerkverbindung könntet ihr vielleicht trotzdem aufgreifen.

Frank

Re: Bewertung des Programmierwettbewerbs

Ich hoffe einfach mal, dass das Linuxmagazin clever genug ist, so viele Spiele durchlaufen zu lassen, dass der Sieger nicht durch den Zufall bestimmt wird, sondern das sog. Gesetz der großen Zahlen greift.
Das meinte ich natürlich mit meiner Aussage. Daher müssen ja viele Spiele laufen, damit man eine Tendenz erkennt, wer besser ist. So etwas gab es und wird es bei den freiesMagazin-Wettbewerben auch geben - aber eben im kleineren Rahmen.

Dass ihr es komplizierter macht, damit nicht so viele Leute teilnehmen, kann ich verstehen.
Naja, mit Absicht kompliziert ist vielleicht übertrieben, aber es ist sicherlich ein Nebeneffekt, wenn wir eine gute Idee haben.

Spontan würde ich Scotland Yard vorschlagen, das habe ich als Kind auch mal gespielt.
Hm, dann stehen die Chancen ganz gut, dass Dir der nächste Wettbewerb gefallen wird. ;)

Die Idee mit der Netzwerkverbindung könntet ihr vielleicht trotzdem aufgreifen.
Bereits geschehen - zumal das auch ein Kritikpunkt beim letzten Wettbewerb war. Zusätzlich ist die Netzwerkumsetzung aber auch essentiell, wenn die Bots über mehrere Runden hinweg agieren sollen.

Dominik Wagenführ
freiesMagazin-Redaktion

Pingback

[...] ja einige Leute. die bereits teilnehmen. Mich hätte es zwar auch interessiert, aber ich bin ja mit einem eigenen Programmierwettbewerb für freiesMagazin beschäftigt. Und auch, wenn ich mir mehr Teilnehmer als beim letzten Wettbewerb [...]