top of page
e-normous

Wichtel-Spiel – Zuteilung leicht gemacht (Python)

Es weihnachtet bereits wieder sehr. Wenn ihr im Büro oder der Familie nicht jede und jeden beschenken, sondern lieber wichteln möchtet, haben wir euch hiermit den idealen Randomizer in Python gebaut.


Wer kennt es nicht? Jedes Jahr muss man sich mühsam überlegen, was man den Liebsten oder den Arbeitskolleginnen und -kollegen schenken soll. Wirklich gute Ideen kommen dabei leider nicht immer zustande. Mittlerweile haben daher viele auf das Wichteln umgestellt. So zieht man per Los eine Person zufällig, die man dann beschenken kann. Gleichzeitig wird man selbst gezogen und kommt dann ebenfalls in den Genuss eines (mehr oder minder) tollen und aufmerksamen Geschenks. Woher das Brauchtum übrigens kommt, erfahrt ihr hier.


Da die Wichtel-Auslosung je nach Gruppengrösse zu einer Herausforderung werden kann, haben wir uns ein kleines Python-Programm erstellt. Nachfolgend sind nochmals die wichtigsten Regeln beim Wichteln dargelegt:

- In der Gruppe wird jeweils ein Schenker einem Beschenkten zugeteilt

- Eine Person nimmt dabei beide Rollen jeweils ein

- Es ist nicht möglich, dass sich jemand selbst beschenken muss


So viel also zu den grundlegenden Regeln beim Wichteln. Nachdem wir diese Requirements abgesteckt haben, kommen wir zum eigentlichen Programm. Dazu ist nötig, zu erwähnen, dass wir in unserem Programm mit Listen arbeiten. Alternativen zu Listen wären jedoch ebenfalls gut denkbar.


Unser kurz erstellter Code präsentiert sich wie folgt:



Wir importieren zuerst die benötigten Module in unser Programm, welche wir verwenden werden. Anschliessend definieren wir die beiden (identischen) Listen für die Geschenk-Empfänger sowie die -Geber. Dazu kopieren wir die erste Liste einfach. Anschliessend definieren wir eine Funktion, welche die grundsätzliche Wichtel-Ordnung herstellt.


Dazu iterieren wir für jeden Eintrag in unserer Geschenk-Geber-Liste, um einen entsprechenden Empfänger oder eine Empfängerin per Zufall auszulosen. Dabei möchten wir mit unserer while-Schleife verhindern, dass die Person, welche als Geschenk-Geber/-in ausgelost wird, identisch mit der Geschenk-Empfänger/-in ist. Schliesslich decken wir noch die Situation gegen Ende unserer Iteration ab, dass wir Gefahr laufen, einen Fehler zu erhalten, wenn in der letzten Zuordnung per Zufall wirklich Empfänger/-in und Geber/-in sich überschneiden würden. Am Ende unserer Funktion und somit auch am Ende jeder einzelnen Auslosung löschen wir den gerade ausgelosten Eintrag aus der Empfänger-Liste.


Unser Programm ist ready und wir können die zufällige Zuordnung starten, welche sich wie folgt präsentiert:



Habt ihr Ideen, das Programm noch besser zu machen oder benötigt ihr es selbst ebenfalls? Kontaktiert uns, wir freuen uns darauf!

468 Ansichten0 Kommentare

Comments


Commenting has been turned off.
bottom of page