Auch dieses Jahr fand im Landhaus Dünsen das Crosstable-Dinner ‚Martinsgans‘ des Harpstedter Freiberufler-Stammtisches statt. Das Event war ein voller Erfolg und das Essen wieder hervorragend. Organisatorin Katrin Feldner hat den Verlauf des Abends hier zusammengefasst.
Während des Crosstable-Dinners im letzten Jahr erwähnte Katrin, dass eine gute Platzverteilung nicht so einfach zu gewährleisten sei:
- die Teilnehmer einer Essenrunde sollen nicht schon in einer vorherigen Runde miteinander gegessen haben
- ein Teilnehmer möchte nicht an einem Tisch sitzen, an dem er bereits zuvor gesessen hat
Für das diesjährige Crosstable-Dinner habe ich einen Crosstable-Generator als Web-Anwendung entwickelt, der unter http://crosstabledinner.de für eigene Crosstable-Dinners genutzt werden kann.
Während der Entwicklung ist mir aufgefallen, dass mein erster naiver Lösungsansatz für ca. 28 Teilnemer, 7 Tische und 3 Runden keine Lösung findet. Folgende Lösungsmöglichkeiten gibt es beispielsweise:
- erzeuge so lange zufallsmäßig Crosstables, bis die erzeugten Crosstables perfekt sind (also keine Fehler aufweisen)
- Vorteil: einfach umzusetzen
- Nachteil: kein Abbruch, wenn Crosstables ohne Fehler nicht gefunden werden
- Verwendung eines Backtracking-Algorithmus, um eine Lösung zu finden
- Vorteil: falls es eine perfekte Lösung gibt, wird sie gefunden
- Nachteil: die Umsetzung ist etwas anspruchsvoller und die Laufzeit ist nicht absehbar
- erzeuge und bewerte eine feste Anzahl zufälliger Crosstables und verwende die Besten
- Vorteil: es wird eine gute Lösung in absehbarer Zeit gefunden
- Nachteil: eine vorhandene perfekte Lösung wird eventuell nicht gefunden
Ich habe mich abschließend für die letzte Lösungsidee entschieden und dabei folgende Techniken eingesetzt:
- Umsetzung als SPA (Single Page Webanwendung) mit HTML5 und Angular JS
- Werkzeuge: Node.js, Yeoman, Grunt, Bower, Karma, Jasmine
- Design: Bootstrap, Bootstrap-Template Casual Business, Hintergrundbild von pixabay.com
- Housting: Uberspace.de
Jetzt plant mal schnell ein Crosstable-Dinner, ein Dating-Event oder ein Kartenspiel-Turnier und nutzt den Crosstable-Generator. Falls noch jemand Verbesserungsvorschläge hat (es gibt schon welche), dann bitte bei mir melden 😉