Piraten-Buzzer-Quiz

Deutsch   |   Source

Ich habe für den Einsatz bei Infoständen der Piraten die Idee entwickelt ein Computerspiel zu programmieren, das die Aufmerksamkeit der Passanten auf sich zieht. Ausgangspunkt war die Feststellung, dass Buzzer, wie sie bei Gameshows im Fernsehen gezeigt werden, von sich aus eine Anziehungskraft auf Passanten ausüben. Passanten wollen den Knopf drücken, um zu sehen, was passiert, wenn der Knopf gedrückt wird.

Das Spiel soll natürlich nicht nur die Lust am Drücken eines großen Knopfs befriedigen, sondern auch Inhalte der Piraten vermitteln. Daher habe ich mich für ein Quiz entschieden, das mit einem einzelnen Knopf bedient wird. Es sollen drei Arten von Fragen unterstützt werden:

  1. Aussagen, die als falsch entlarvt werden sollen (Beispiel: "Die CDU ist eine Arbeiterpartei, die bereits im 19. Jh gegründet wurde.")
  2. Fragen mit mehreren Antwortmöglichkeiten (Beispiel: "Wer war vor der FDP der Koalitionspartner der CDU in der Regierung Merkel? a) die CDU hat alleine regiert b) Grüne c) SPD d) Piraten")
  3. Fragen, die über die Anzahl der Buzzer-Druck-Aktionen beantwortet werden können (Beispiel: "Wie viele Personen werden für eine geheime Urnenwahl mindestens benötigt?")

Hardware

Die Hardware besteht aus einem Raspberry-PI, einem Standard-TFT-Display und einer Tastatur, bei der an den Kontakt der Leertaste der Buzzer angeschlossen wird. Die Stromversorgung erfolgt über eine Autobatterie kombiniert mit einem 230V-Wechselrichter.

Im Test hat sich gezeigt, dass auch Revision B des Raspberry-PI zu langsam ist, um das Quiz in Full-HD mit hoher Framerate anzuzeigen. Folgendes Video zeigt den Test:

Software

Das Spiel habe ich mit PyGame realisiert. Es kann im Vollbild laufen und blendet die normalen Controls wie den Mauszeiger aus. Das Backend unter Linux ist SDL.

Das Spiel besteht lediglich aus zwei Python-Skripten. Eines enthält die Programmlogik, das Zweite die Fragen in einem Dictionary. Das zweite Skript hat eine so einfache Struktur, dass die Fragen auch ohne Programmierkenntnisse erweitert oder angepasst werden können.

Die Programmlogik folgt im Prinzip einem endlichen Automaten, da jede Frage eine Reihe von Phasen durchläuft. Zuerst wird der Nutzer über die Art der Frage informiert. Dann wird die Frage gestellt und für eine begrenzte Zeit die Möglichkeit zum Antworten (also zum Buzzern) gegeben. War die Antwort falsch, wird die richtige Antwort angezeigt. Danach wird auf jeden Fall zum ersten Zustand der nächsten Frage übergegangen. Die Fragen kommen in zufälliger Reihenfolge, wobei sie sich nicht wiederholen, bis alle Fragen vorgekommen sind. Das Spiel läuft prinzipiell ohne Ende und es sorgt auch dann wenn niemand buzzert dafür, dass sich auf dem Schirm immer etwas bewegt.