Herbstwettbewerb: Spyfall

  Core-Team   Lesezeit: 4 Minuten  🗪 10 Kommentare Auf Mastodon ansehen

Ein lustiges Partyspiel programmieren und ein Smartphone gewinnen. Wir freuen uns auf eure Umsetzung dieser einfachen Aufgabe.

herbstwettbewerb: spyfall

Wir lieben Wettbewerbe, hatten jedoch schon lange keine Programmieraufgabe für euch. Neulich bin ich beim Hören des Podcasts Methodisch inkorrekt auf ein Partyspiel namens Spyfall aufmerksam geworden. Das Spiel ist ein schönes Thema für einen Programmierwettbewerb, weil es ziemlich einfach umzusetzen ist. Sogleich habe ich mit der Programmierung einer Referenz-Implementierung begonnen und war nach einer Stunde und knapp 100 Zeilen Python-Code damit fertig.

Dieses Mal gibt es ein brandneues Volla-Phone 22 zu gewinnen, das wir freundlicherweise von der Firma Volla Systeme GmbH aus Remscheid zu Testzwecken und zur Verlosung in der Community erhalten haben. Im September hat Ephraim einen Testbericht über die neueste Version des VollaOS geschrieben.

Die Anforderungen für diesen Wettbewerb

  • Schreibt ein Programm, welches die Spielregeln von Spyfall abbildet.
  • Es sind alle gängigen Programmiersprachen und Shell-Skripte erlaubt.
  • Die Verwendung von KI-Assistenten ist nicht erlaubt (hier vertrauen wir euch).
  • Die Verwendung von fertigen Implementierungen ist nicht erlaubt (hier vertrauen wir euch).
  • Programmeingaben:
    • Anzahl der Spieler
    • Dauer einer Spielrunde (default: 8 Minuten)
  • Programmausgaben:
    • Zuweisung des Ortes und des Spions an die Mitspieler
    • Countdown der Spielzeit
    • Akustisches Signal nach Ablauf der Spielzeit
  • Ausserdem soll das Programm eine Anzahl von Orten mitbringen.

Die Regeln für den Programmierwettbewerb

  • Der Wettbewerb beginnt mit dem Erscheinen dieses Artikels und endet am 31. Dezember 2024 um Mitternacht.
  • Das CORE-Team ist von der Teilnahme ausgeschlossen.
  • Lösungsvorschläge müssen über kontakt@gnulinux.ch eingereicht werden.
  • Bitte schickt keine Git-Links oder Ähnliches. Der Quellcode muss im E-Mail als Dateianhang vorhanden sein.
  • Der Code sollte ohne grosse Hexerei lauffähig sein und die oben genannten Anforderungen erfüllen.
  • Die Verlosung der Gewinnpreise erfolgt unter allen akzeptierten Einsendungen. Falls wir merken, dass Code von KI generiert oder aus dem Internet kopiert wurde, führt dies zum Ausscheiden der Einsendung.
  • Die Qualität, der Funktionsumfang und die Länge des Codes spielen für die Verlosung keine Rolle. Besonders schönen Lösungen widmen wir gerne einen Artikel.
  • Die Gewinner werden im Januar 2025 ausgewürfelt.

Bitte verzichtet auf KI oder aus dem Internet kopierten Code. Damit verderbt ihr euch selbst den Spass an der Freude. Die Aufgabenstellung ist sehr einfach und lässt sich auch von Programmierneulingen umsetzen.

Ach ja, neben dem Hauptgewinn (Volla-Phone 22) gibt es einen zweiten und dritten Preis. Der zweite Preis ist ein Raspberry Pi 4 Starter Kit (Serviervorschlag) im Wert von 100 Euro und beim dritten Preis handelt es sich um ein Blink, das ist ein frei programmierbares LED-Statuslicht mit USB-Anschluss im Wert von 36 Euro.

Falls ihr Fragen zum Wettbewerb habt, schreibt sie bitte in die Kommentare oder sendet sie an kontakt@gnulinux.ch

Und jetzt ran an die Tasten!

Tags

Programmierwettbewerb, Wettbewerb, Spyfall, Volla

Actionschnitzel
Geschrieben von Actionschnitzel am 18. Oktober 2024 um 19:36

Was heißt denn "ohne große Hexerei"? Muss der Code "Out-Of-The-Box" laufen? Und, soll das Programm so konzipiert sei, dass es nur auf einem Gerät läuft? Nach dem Motto: Spieler 1 wird zugewiesen, alle anderen machen jetzt die Augen zu?

onli
Geschrieben von onli am 18. Oktober 2024 um 19:44

Gerade bei dem Zuweisen der Rollen frage ich mich das mit dem einen Gerät auch. Wenn das z.B. im Terminal ausgegeben wird würden die anderen das ja sehen?

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 18. Oktober 2024 um 20:52

Siehe meine Antwort an Actionschnitzel. Gucken, Rolle sehen, klicken, weggehen, der Nächste bitte. So habe ich das implementiert; vielleicht fällt euch etwas Schlaueres ein.

onli
Geschrieben von onli am 19. Oktober 2024 um 15:14

Alles klar, Danke!

Alex
Geschrieben von Alex am 19. Oktober 2024 um 10:23

Für dich mit deinem momentanen Faible für Bond-Geschichten müsste dieser Wettbewerb doch eine großartige Fingerübung sein ;)

onli
Geschrieben von onli am 19. Oktober 2024 um 21:07

Ha, auf die Verbindung kam ich noch gar nicht :) Ich mochte aber auch einfach die Werwolf-Spiele früher. Und das erinnerte mich an eine andere Spielerei, die ich ausprobieren wollte (erkläre ich dann etwas später).

Die Aufgabe hat mich also auf mehreren Ebenen erwischt. Tatsächlich habe ich eine Implementierung schon eingereicht.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 18. Oktober 2024 um 20:50

Ich möchte keinen Kubernetes-Cluster installieren müssen, damit euer Programm läuft. Das Programm soll in einer üblichen Linux-Distro laufen. Beispiel: python actionschnitzel.py In meiner Beispiel-Implementierung treten die Mitspieler ans Notebook, drücken eine Taste, wissen, was sie sind, drücken eine Taste, dann kommt der Nächste dran.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 18. Oktober 2024 um 20:55

Um die Orte zu generieren, könnt ihr gerne KI verwenden; habe ich auch gemacht.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 18. Oktober 2024 um 20:58

Ein GUI ist nicht notwendig. Falls ihr Lust darauf habt, könnt ihr es gerne machen. Muss aber nicht; Terminal reicht. Das hat keinen Einfluss auf die akzeptierten Einreichungen. Alles, was läuft, wird von uns angenommen und landet in der Verlosung.

Alex
Geschrieben von Alex am 19. Oktober 2024 um 10:27

Ich finde es auch sehr gut, dass als Frist der 31. Dezember gewählt wurde. So wie es zeitlich bei mir im Moment steht, komme ich nämlich frühestens in der Adventszeit zu irgendwas. Und dann steht ja schon wieder Advent of Code an. Werde also wohl erst zwischen Weihnachten und Neujahr dazu kommen.

Hmm, möchte gnulinux dieses Jahr eigentlich irgendwas für Advent of Code machen?