Und wieder ein Gastbeitrag von Sebastian Wagner, der sich fleißig darum bemüht, verschiedene Informatik-Wettbewerbe etwas bekannter zu machen – meinen Dank dafür.
Vierter Programmierwettbewerb des freien Magazins
Das freie Magazin, von dem jeden Monat eine Ausgabe veröffentlicht wird, richtet sich hauptsächlich an Interessierte aus der OpenSource- und Linux-Welt. Themen sind beispielsweise Programmvorstellungen oder kleine Einführungen in Programmiersprachen und -stile. Unerfahrene Entwickler auf Nicht-Unix-Systemen werden es bei diesem Wettbewerb zugegebenermaßen schwieriger haben als Entwickler auf Unix-Plattformen.
Das Spielprinzip des vierten Programmierwettbewerbs wird auf der Homepage so illustriert:
Ein Multimillionär verdient täglich so viel Geld, dass er gar nicht mehr weiß, wohin damit. Anstatt einen neuen Geldspeicher zu bauen, will er das Geld lieber in einem Experiment unter die Leute bringen. Dazu lädt er zwei Testsubjekte ein und begrüßt sie mit den Worten:
“Ich habe hier 1000 Euro. Das Geld gebe ich Testsubjekt A. Dieses muss dann einen selbst festgelegten Betrag X zwischen 0 und 1000 dem Testsubjekt B anbieten. Das kann also auch alles oder nichts sein! Testsubjekt B hat nun zwei Möglichkeiten: Entweder es akzeptiert den Betrag X. Dann erhält Testsubjekt B den Betrag X und Testsubjekt A natürlich den Restbetrag 1000-X. Testsubjekt B kann das Angebot aber ablehnen. Dann bekommt keiner die 1000 Euro und ich behalte das Geld. Damit es ausgeglichen ist, gebe ich danach Testsubjekt B ebenfalls 1000 Euro, welches auf die gleicher Art und Weise handeln muss.”
Beide Testsubjekte schauen erstaunt und wollen sich schon miteinander abstimmen, um einen größtmöglichen Gewinn zu erhalten, aber da springt der Millionär dazwischen: “Na na, Reden ist verboten. Ihr werdet beide in verschiedene Räume gesetzt und könnt nur über eine reine Zahlentastatur miteinander kommunizieren und die Beträge anbieten, annehmen oder ablehnen.” Die beiden Testsubjekte sind enttäuscht, aber machen dennoch mit, schließlich gibt es viel Geld zu gewinnen.
“Ach, noch was.” sagt der Millionär. “Das Spielchen wiederholen wir insgesamt 2500 Mal, weil es so viel Spaß macht. Ich bin gespannt, wer von Euch beiden mit mehr Geld nach Hause geht.”
Die Aufgabe ist nun einen möglichst intelligenten Bot zu entwerfen, dessen Ziel sein soll, die Taktik des Gegners (der auch immer ein Computer ist) zu erkennen und diesen dann auszutricksen. Infolgedessen ist es nötig, Muster in der Taktik des Gegners zu erkennen und mit verschiedenen Muster darauf zu reagieren: Nur eine implementierte Taktik allein wird also kaum zum Sieg führen! Es wird auch explizit auf Ähnlichkeiten zum Ultimatumspiel sowie zum Gefangenendilemma (beides stammt übrigens aus der Spieltheorie) hingewiesen, die Lektüre der entsprechenden Wikipedia-Artikel sollte also hilfreich sein.
Dadurch, dass nur die Standardein- bzw. -ausgabe verwendet wird, kann jede beliebige Programmiersprache verwendet werden. Für die Spielengine (in C++) ist allerdings ein C++-Compiler erforderlich. Der Wettbewerb läuft vom 1. Oktober 2011 bis zum 30. November 2011. Die ersten drei Plätze erhalten einen Amazon-Gutschein, dessen Höhe von der Anzahl der erreichten Punkte abhängt.
Happy Coding!
CCC ’11 Vienna
Seit 2007 veranstaltet die Linzer Firma Catalysts mindestens 1-mal jährlich einen Programmierwettbewerb, den Catalysts Coding Contest. Heuer fanden bereits die Spring Callenge (online) und der CCC ’11 in Linz statt. Der CCC ’11 Linz war der bisher größte mit 180 Teilnehmern, die 4 Stunden lang im Linzer Schloss um die Wette programmiert haben. Nun wurde auch ein CCC in Wien für den 21. Oktober angekündigt.
Die Wettbewerbe funktionieren folgendermaßen: Der Programmierer bekommt nicht eine Problemstellung, für die er die gegebene Zeit (in Wien dann 2 Stunden) aufwenden kann, sondern muss sich in Levels hochkämpfen, d.h. die Probleme werden immer größer und auch komplexer. Ziel ist es also, einen möglichst ausbaufähigen Code zu erstellen, um sich nicht selbst zu verwirren. Es gewinnt, wer am meisten Levels schafft und diese am schnellsten absolviert. Da jeder sein eigenes Notebook mitnimmt, darf jeder in seiner/ihrer Lieblingsprogrammiersprache programmieren sowie Dokumentationen verwenden.
Kommentare (24)