1 day ago

Spyfall: Die Lösungen



Für den Programmierwettbewerb "Spyfall" sind viele gültige Lösungen eingegangen. Diese stellen wir euch kurz vor.

Am 18. Oktober 2024 haben wir den Programmierwettbewerb Spyfall gestartet. Seitdem sind viele Lösungsvorschläge bei uns eingegangen. Herzlichen Dank dafür. Wir haben die Teilnehmenden darüber informiert, ob ihre Einreichung gültig war. Dabei ging es nur darum, ob die Spielregeln abgebildet wurden und das Programm nachvollziehbar lauffähig war. Die Art der Umsetzung, die Programmiersprache und zusätzliche Funktionen (GUI, usw.) spielten keine Rolle. Tatsächlich waren alle acht Lösungsvorschläge gültig.

In diesem Artikel stellen wir die Lösungen kurz vor, und zwar in der Reihenfolge, in der sie eingegangen sind:

0. Ralf Hersel (nimmt nicht an der Verlosung teil)

Sprache: Python
Länge: 123 Lines of Code (LOC)
Besonderheiten: Sprachausgabe, mehrere Runden, GUI für die Spielerkommunikation
Ausführen: python3 spy.py

Das ist die Referenz-Implementierung, die ich zu Testzwecken erstellt habe.

1. Martin B.

Sprache: Rust
Länge: 134 LOC
Besonderheiten: Progress Bar für die Dauer der Ortsanzeige
Ausführen: cargo run

2. Onli

Sprache: Shell
Länge: 96 LOC
Besonderheiten: Die Orte werden grafisch dargestellt.
Ausführen: ./spyfall.sh

3. Timo

Sprache: Python
Länge: 193 LOC
Besonderheiten: Die Spieler werden mit Namen angesprochen
Ausführen: python3 spyfall_actionschnitzel.py

4. B.R.

Sprache: Shell
Länge: 240 LOC
Besonderheiten: Ausführliche Anleitung für die Spieler
Ausführen: ./spyfall-helper_v2.sh

5. Konrad

Sprache: Svelte (JavaScript Framework)
Länge: 72 Dateien, viele LOC
Besonderheiten: grafische Web-Anwendung
Ausführen: https://knrdl.github.io/spyfall/

6. Thorsten

Sprache: C++
Länge: ca. 300 LOC
Besonderheiten: Qt-GUI
Ausführen: spyfall-qt

7. Dominik

Sprache: Java
Länge: ca. 750 LOC
Besonderheiten: Android-APK
Ausführen: APK aufs Handy kopieren, installieren und ausführen

8. VividCookie

Sprache: HTML/Javascript
Länge: ca. 200 LOC
Besonderheiten: Web-Anwendung mit Spielanleitung
Ausführen: index.html im Browser öffnen

Den Code aller Lösungen bieten wir euch in einer ZIP-Datei an. Wenn ihr diese Datei entpackt, erhaltet ihr diese Verzeichnisstruktur:

Die Ordner enthalten die jeweiligen Lösungen der Teilnehmenden. Falls ihr beim Ausprobieren Fragen habt, könnt ihr diese gerne in den Kommentaren stellen. Ohne die Anleitungen der Entwickler ist es manchmal etwas schwierig, die Programme auszuführen. Fragt einfach.

Wertschätzung

Ich bin von der Vielfalt der Lösungen begeistert, und zwar aus mehreren Gründen. Alle eingereichten Lösungen funktionieren, egal ob sie in Bash, Python, Java, Rust oder als HTML-Seite umgesetzt wurden. Die begleitenden E-Mail-Nachrichten zeugen von der Begeisterung, mit der dieser Wettbewerb aufgenommen wurde. Hier sind ein paar Zitate:

Ich habe vor ca. 10 Jahren begonnen, mir das Programmieren beizubringen. Begonnen habe ich mit einem Java-Buch. Damals arbeitete ich noch als Kellner und bin vor 7 Jahren zu einer IT-Firma gewechselt (leider nicht als Programmierer). Da ich das Programmieren nicht professionell gelernt habe, wirkt mein Quellcode vermutlich oft etwas durcheinander, aber er ist mit viel Herzblut geschrieben.

Mein Problem als Entwickler ist, dass ich oft viele Ideen habe, jedoch die aller wenigsten davon (fertig) umsetzen kann. Als ich von eurem Wettbewerb gelesen habe, wusste ich, dass dies perfekt für mich ist, um ein Programm zu schreiben und dieses fertig abzugeben. Mein Plan wäre, die App im F-Droid Store zu veröffentlichen, und ich habe auch bereits Feedback für das nächste Update erhalten ;-)

Ich möchte mich für diesen Wettbewerb bedanken und hoffe, ihr habt viele coole Umsetzungen erhalten.

Oder dieser E-Mail-Auszug:

Danke für die Inspiration ... eine gute Möglichkeit für mich mal Svelte 5 auszuprobieren :)

Weiter geht es mit:

Ich finde es übrigens sehr schön, dass ihr explizit auch Shellscripte zugelassen habt, da es den Wettbewerb auch Menschen ohne nennenswerte (Programmier-)Kenntnisse wie mir eröffnet. Wenn ich versucht hätte, das Ganze in einer richtigen Programmiersprache zu bauen, wäre ich bis zum 31.12. wohl nicht ansatzweise fertig geworden.

Am besten gefallen hat mir dieser Silvester-Post:

Habe den heute Nacht auch schnell am Handy geforkt und am Handy im Online-Editor von Codeberg neue Orte geaddet. Spyfall war bei uns der Renner, stundenlang, die ganze Nacht.

Gewinner?

Leider haben nur Männer am Wettbewerb teilgenommen, weshalb ich keine anderen Lebensformen begrüssen darf. Was gibt es zu gewinnen? Neben dem Volla-Phone 22 gibt es einen zweiten und dritten Preis. Der zweite Preis ist ein Raspberry Pi 4 Starter Kit und beim dritten Preis handelt es sich um ein Blink, das ist ein frei programmierbares LED-Statuslicht mit USB-Anschluss.

Wie wir in den Wettbewerbsregeln erklärt haben, gewinnen nicht die besten Lösungen, sondern drei von allen. In unserem TALK-Raum würfeln wir die Gewinner heute Abend um 19 Uhr aus. Seid dabei, wenn wir die drei Glücklichen auswürfeln. Danach informieren wir die Gewinner und versenden die Gewinne.


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.
Gesamten Artikel lesen

© Varient 2025. All rights are reserved