Senior Software-Entwickler, netzkern Technology Evangelist

Coding4Fun


Vergangenen Dienstag war es mal wieder so weit. Eine Runde Coding4Fun ging zu Ende. Coding4Fun ist, wie der Name sagt, ein kleines Nebenprojekt, bei dem die passionierten Entwickler die Chance haben, eine Problemstellung zu lösen und dafür Ruhm und Ehre erhalten.


Dieses Mal ging es um die Steuerung und Koordination dreier Aufzüge. Wie wir darauf kamen? (Potentielle Bewerber jetzt bitte weghören :-D) Das ist eine der möglichen Fragen, die Entwicklern in Bewerbungsgesprächen noch ein paar Pluspunkte bringen sollen, indem die Bewerber zeigen können, wie sie an Problemlösungen herangehen. Und da dachte wir uns: Warum es denn nicht mal mit der eigenen Belegschaft ausprobieren. So haben wir ein paar Rahmenbedingungen aufgestellt, um die Aufgabe nicht zu einfach zu machen - z.B. durfte jeder Aufzug nur Personen mit einem Gesamtgewicht von 250 kg transportieren... ok - das mit der Familienzugehörigkeit haben wir etwas vernachlässig, Kinder wurden schon mal von ihren Eltern getrennt (wie es ein Kollege formulierte: "*Aufzug hält* reichen sie mir mal das Kind - das passt hier noch rein :-D") und die Waagen im Boden vor jeder Aufzugtür musste man sich dazu denken. Aber es ging hier ja nur um’s Prinzip.
 
Zum Testen des Codes gab es einen Demoablauf, der zufällig Personen über die Etagen verteilte - und eine definierte Challenge, von der die Teilnehmer wussten, dass deren Zeiten später (neben einer zweiten Challenge) gewertet werden würden. Das Optimieren auf diese Challenge war natürlich verboten - Aufzüge zu den Etagen zu schicken, auf denen die Fahrgäste auftauchten wäre schließlich fuschen gewesen - hätte aber spätestens bei der zweiten Challenge nicht mehr funktioniert. Eben jene zweite Reihenfolge ist dann aber dem ein oder anderen zum Verhängnis geworden - und das kam so:
Nachdem wir endlich einen Termin für die Auswertung gefunden hatten, fanden sich die Teilnehmer nebst einem der Chefs im "Wohnzimmer" ein, um sich den visualisierten Ablauf zu Gemüte zu führen. Kurz vorher ließ ich mir aber vom ersten aufgetauchten Teilnehmer, sowie dem Chef, zufällig Zahlen zurufen und trug sie in eine Vorlage ein. Diese Zahlen ergaben dann später die zweite Demo. Leider hatte einer der beiden, ich sag aber nicht wer (*hust*Thomas*hust*), dann die Idee: Fügen wir doch mal einen Passagier ein der etwas verwirrt ist. Er möchte gerne von Etage 0 zu Etage 0 fahren ... jepp - kein Tippfehler :-D. Und so gab es dann die Aufzüge, die halt zu Etage 0 fuhren, deren Ziel sich aber nicht änderte und somit auch keine Fahrt vorgenommen wurde. Das führte im Endeffekt dazu, dass die Aufzüge nicht wussten, dass sie wieder bereit waren und die Demos quasi ins Unendliche liefen. Ich gebe zu - auch mein Aufzug verzweifelte an dieser Aufgabe, wollte er doch so gerne den Passagier an sein Ziel bringen.

Nunja - wir hatten ja auch die erste Demo. Diese haben alle erfolgreich bestanden und mit einer überragenden Zeit von ca. 4 min (Wartezeiten + Transportzeiten) für 20 Personen setzte sich dann P.P. durch. Herzlichen Glückwunsch!

Der Sieger P.P., wofür ihm als Anerkennung von Thomas Golatta ein Amazon-Gutschein überreicht wurde.
 

Das Basteln an dieser Aufgabe war sehr lustig und es ist äußerst schade, dass es das nun mit diesem Projekt war. Aber das Fieber hat schon die Ersten, die zugehört haben, als es um die neue Aufgabe ging, gepackt. R.A. brachte diesen Vorschlag ein: Wir werden mit Robocode (http://robocode.sourceforge.net/) kleine Panzer gegeneinander antreten lassen. Wegberechnung für das eigene und fremde Gefährt werden dann genauso dazu gehören wie die Entscheidung, ob man dem anderen lieber eine volle Salve verpasst oder lieber nach dem Motto handelt: Quantität statt Qualität- irgendwie treffe ich schon.

Wir dürfen gespannt sein, wer diesen Wettkampf für sich entscheidet.


Kommentare
Es wurden noch keine Kommentare zu diesem Eintrag geschrieben.
Kommentar hinzufügen
Vor und Zuname
E-Mail
E-Mail bei weiteren Kommentaren
Mein Kommentar