Quiz Spiel für TonUINO-TNG

Habe ich gemacht. Dabei habe ich auch noch die Ansagen geändert, welcher Spieler der schnellste war. Diese heißen jetzt nicht mehr „Spieler 1“ und „Spieler 2“ sondern „Spieler Vor“, „Spieler Zurück“, „Spieler Leiser“ und „Spieler Lauter“. Wenn man in der Hektik nicht verstanden hat, welcher Spieler der schnellst war, kann man die Tasten nochmal drücken. Nur bei dem schnellsten Spieler bewirkt die Taste, das der Satz wiederholt wird.

Aber man darf von den Buzzer nicht zu viel erwarten. Unsere Cycle Time ist 100 ms. Also Unterschiede beim Drücken der Tasten unter 100 ms werden nicht erkannt.
Vielleicht kann man die Cycle Time für die Tasten etwas verkleinern, muss ich mir mal genauer anschauen. Aber berichtet erst mal, ob das vielleicht so schon reicht.

1 „Gefällt mir“

@Boerge1 Ganz große Klasse :+1:
Hatte gerade ein Quiz-Verzeichnis für Buzzer vorbereitet und die Firmware geladen, nachdem ich sie schon für 4 Buzzer gepimpt hatte.
Der erste Test (also das erste Anspielen) verlief genau wie erwartet und ohne Auffälligkeiten oder gar Störungen.

Für den realen Spielbetrieb werde ich noch abgesetzte Buzzer-Einheiten bauen. Dafür allerdings bevorzuge ich dann die neutrale Bezeichnung Spieler 1 - 4, da dann ja der logische Bezug zu den Bedientasten eher keine Rolle mehr spielt.

Ich denke, die Unterscheidungsgenauigkeit von 100 ms für die Buzzer ist vollkommen ausreichend - schließlich geht es hier um Spiel und Spass und nicht um einen Millionengewinn :wink:

Super Lösung :+1:, die im Spiel gelegentlich sicher eingesetzt werden wird.

Zwischenzeitlich ist auch ein Plan für die externen Buzzer entstanden und in der Umsetzung. Eine entsprechende Anleitung / Beschreibung gibt es unter „Quiz-Buzzer für TonUINO - einfach

Hoffe bald von einer „echten“ Spielrunde berichten zu können.

Hier nun der versprochene Bericht über eine erste Spielrunde:

Gespielt haben wir mit 4 Erwachsenen beide Varianten.
Zunächst die Variante mit 4 Antwortvorschlägen und einer Erklärung auf Basis der Fragensammlung aus Quiz_5 und Quiz_6
Danach eine Runde mit Buzzern auf Basis der Fragensammlung Quiz_7
(Die Fragensammlungen sind im WiKi Fragensammlung für das TonUINO Quiz nachzulesen)

Gespielt haben wir mit 4 externen Buzzern, die in der Variante mit den Antwortvorschlägen dann je einem Vorschlag entsprochen haben.

Technisch lief alles einwandfrei und ohne wirkliche Störungen.
Aufgefallen sind dabei doch einige Dinge, die sich auf die Ansagetexte beziehen:

  1. Bei den Auflösungen / Erklärungen habe ich an vielen Stellen zuviel des Guten getan und die Texte wirken sehr langatmig. Daraus folgt, dass diese Texte die wichtigsten Fakten, aber kurz und knapp enthalten sollen.
  2. Die Ansagen für richtige / falsche Antworten sind zwar OK, aber wirken nach einer Weile doch monoton und langatmig, so dass ich mich entschlossen habe, die Texte deutlich einzukürzen.
  3. Da wir mit externen Tasten / Buzzern gespielt haben, war die ursprüngliche Bezeichnung „Spieler 1 usw.“ hierfür besser geeignet, da die eigentlichen Steuerfunktionen den Buzzern nicht mehr anzusehen sind.

Im Spielverlauf ist zudem der Wunsch entstanden, den Hinweis „nächste Frage mit der Pause-Taste“ nicht schon bei der Auswertung der Antwort zu erhalten, sondern erst nach Abspielen der Lösungs- / Erklärungsansage.
Meine Programmierfähigkeiten reichen nicht, den Code entsprechend zu ändern / ergänzen (@Boerge1 vielleicht hast Du da einen Tipp für mich)

Trotz meiner geringen Fähigkeiten habe eine kleine Änderung in meinem Code vorgenommen:

if (numAnswer == 0)
    mp3.enqueueMp3FolderTrack(mp3Tracks::t_509_quiz_game_buzzer_intro);
  else
    {
      if (numAnswer == 2)
      mp3.enqueueMp3FolderTrack(mp3Tracks::t_500_quiz_game_intro);
      else
      mp3.enqueueMp3FolderTrack(mp3Tracks::t_515_quiz_game_intro_4);
    }

Damit erhalte ich jetzt beim Auflegen der Karte eine Ansage, ob mit 2 oder 4 Antwortmöglichkeiten gespielt wird.
Mit einem weiteren Codeschnipsel ist es mir auch möglich, zwischen den Bezeichnungen für die Spieler / Buzzer über ein define „BUT_NAME“ umzuschalten:

    if (quizState == QuizState::playAnswer) {
      if (numAnswer == 0) {
        if ((actAnswer == 0xff) || (actAnswer == 1)) {
          #ifdef BUT_NAME
          LOG(state_log, s_debug, F("Buzzer 4"));
          mp3.enqueueMp3FolderTrack(mp3Tracks::t_513_quiz_game_buzzer_4);
          #else
          LOG(state_log, s_debug, F("Buzzer vol up"));
          mp3.enqueueMp3FolderTrack(mp3Tracks::t_508_quiz_game_buzzer_volu);
          #endif // BUT_NAME
          actAnswer = 1;
        }

Hier nun noch die geänderten / gekürzten Texte für meine Ansagen:

Intro 2:
Du spielst jetzt ein Quiz mit 4 Antwortvorschlägen. 
Drücke die Pause Taste, um eine neue Frage zu erhalten. 
Danach drücke die Vor, Zurück oder die Lautstärke Tasten, um die verschiedenen Antworten zu hören. 
Wenn du denkst, dass du die richtige Antwort gehört hast, kannst du mit der Pause Taste Prüfen, ob das stimmt. Wiederhole das Ganze so oft du willst.
Du kannst das Quiz mit dem langen Druck auf die Vor- und Zurück Taste beenden.

Intro 4:
Du spielst jetzt ein Quiz mit 4 Antwortvorschlägen. 
Drücke die Pause Taste, um eine neue Frage zu erhalten. 
Danach drücke die Vor, Zurück oder die Lautstärke Tasten, um die verschiedenen Antworten zu hören. 
Wenn du denkst, dass du die richtige Antwort gehört hast, kannst du mit der Pause Taste Prüfen, ob das stimmt. Wiederhole das Ganze so oft du willst.
Du kannst das Quiz mit dem langen Druck auf die Vor- und Zurück Taste beenden.

Quiz_OK mit Lösung:
Das war richtig!
Nach der Erklärung weiter mit der Pause-Taste.

Quiz_Bad:
Leider falsch!
Jetzt die Auflösung, dann weiter mit der Pause-Taste.

Spieler 1-4 (Buzzer):
Spieler 1 sagt die Lösung.
Überprüfe die Lösung mit der Pause-Taste.

Ob meine Texte wirklich besser sind, wird erst die nächste Spielrunde zeigen.
Sehr schön wäre tatsächlich, wenn nach der Auflösung erst der Hinweis „nächste Frage . …“ erfolgen würde, da dadurch auch eindeutig das Ende der Erklärungsansage für die Spieler markiert wäre.

Hat schon sonst jemand gespielt / getestet und mag seine Erfahrungen teilen und auch Antregungen geben ?

@Boerge1
Bei den ersten Spielrunden meinte ich zunächst ein unplausibles Verhalten festgestellt zu haben, konnte es aber nicht hinreichend genau beschreiben.

Inzwischen habe ich etwas getestet und den Bedienablauf festgehalten, der reproduzierbar zu einem solchen Verhalten führt:

In beiden Spielvarianten ist der Auslöser ein 2-facher kurzer Druck auf die Pause-Taste zur Überprüfung der Lösung:

  • In der Variante mit Antwortvorschlägen plus Lösung wird die Antwort zwar korrekt ausgewertet, jedoch erfolgt die Ansage der Lösung nicht sondern die Box bleibt stumm.
    In diesem Zustand bringt mich ein weiterer Druck auf die Pause-Taste nicht, wie erwartet, zur nächsten Frage, sondern es erfolgt sogleich die Auswertung der nächsten Frage, sogar mit Ansage der Lösung. Danach wird nach erneutem Druck der Pause-Taste eine neue Frage gestellt und alles ist wieder OK.

  • In der Spielvariante mit Buzzer wird zwar die richtige Lösung angesagt, der nächste Druck der Pause-Taste jedoch spielt nicht die nächste Frage, sondern gleich die Lösungsansage. Danach, bei korrekter Bedienung auch wieder OK.

In beiden Spielvarianten ist auch ein 2-facher kurzer Druck auf die Pause-Taste, um die nächste Frage zu erhalten, ebenfalls ein Auslöser für merkwürdiges Verhalten:

  • In der Variante ohne Buzzer wird zwar die nächste Frage gestellt, es folgt aber auch gleich ohne weiteren Tastendruck die Ansage der Lösung.
  • In der Variante mit Buzzer wird ebenfalls die nächste Frage gestellt, der nächste Tastendruck, der eigentlich die Lösungsansage auslösen sollte, übergeht diese und führt gleich zu nächsten Frage.

Ich hoffe, diese Beschreibung ist bei der Suche nach der Ursache einigermaßen hilfreich.

So, ich hatte jetzt wieder Zeit, mich mit dem Quiz zu beschäftigen. Zu dem Fehlverhalten beim 2-fachen Druck auf die Pause Taste. Das liegt am DF Player und man kann da in der Software nicht viel tun.

Wenn man zweimal kurz hintereinander auf die Pause Taste drückt, werden folgende Befehle kurz hintereinander an den Player geschickt: 1. Spiele die Antwort, 2. Spiele die nächste Frage. Das Resultat müsste dann sein, dass nur die nächste Frage abgespielt wird, der zweite Befehl müsste also den ersten „überschreiben“. Der DF Player ignoriert aber einfach Befehle, solange er mit dem ersten noch nicht fertig ist (nicht fertig mit dem Abspielen sonder fertig mit dem Analysieren des Befehls). Also wird nur die Antwort abgespielt und nicht die nächste Frage.

Aber es ist natürlich auch eine Fehlbedienung, wenn man die Pause Taste schnell zweimal hintereinander drückt. Wenn man solange wartet, bis die Antwort wenigsten angefangen hat, funktioniert alles richtig.
Also, ich denke, man kann damit leben.

Hatte ich schon befürchtet, dass es eine Befehlskollision sein könnte, aber gehofft, dass ein delay an der richtigen Stelle etwas helfen könnte.

Du hast aber vollkommen recht: Es ist eindeutig eine Fehlbedienung durch ungeduldige Spieler mit der man aber wirklich ganz gut leben kann - besonders, da ja mit dem nächsten Tastendruck wieder alles „in der Spur“ ist.
Danke an dieser Stelle für Deine Mühe und Erklärung.

Wie sieht es mit einer kurzen Ansage nach dem Abspielen der Lösung aus?
Wäre das ohne großen Aufwand möglich, und wo könnte ich das ev. sogar selbst einbauen?

Vielen Dank für die Tests!

Das habe ich jetzt implementiert. Mir war das auch schon aufgefallen, aber ich dachte erst, dass dies komplizierter ist zu korrigieren. Habe jetzt eine einfache Lösung gefunden.

Meiner Meinung nach ist diese Änderung nicht erforderlich. Man kann genauso gut die Anzahl der Antworten auf der Chip Karte vermerken.

Auch hier bin ich der Meinung, dass dies nicht notwendig ist. Entweder man beschriftet die Buzzer nicht mit 1, …, 4 sondern mit ‚vor‘, ‚zurück‘, ‚lauter‘ und ‚leiser‘ oder man ändert einfach die vier mp3 Dateien nach seinen Wünschen.

Ich denke, dass es nicht notwendig ist, die Ansagen zu kürzen. Wenn man das erste mal spielt, ist es gut alles erklärt zu bekommen. Wenn man das alles schon kennt, kann man ja mit einer Taste die nächste Aktion auslösen, auch wenn die Ansage noch nicht zu Ende ist.

1 „Gefällt mir“

Perfekt, dass Du das implementieren konntest (und Dir Zeit dafür genommen hast :grinning:). Ich denke, das wird ein deutlicher Gewinn an Spielkomfort sein.

Meine anderen „Spielereien“ am Code und den Texten waren eigentlich nicht als allgemeine Anregung zur Aufnahme in den offiziellen Code gedacht, sondern nur als Information über meine Individualisierungsversuche.

Natürlich hätte man das alles einfacher haben können, wenn man die mp3-Dateien anpasst, aber ich konnte die „Finger nicht vom Programmieren lassen“.
Für weitere Versionen werde ich tatsächlich die mp3-Dateien anpassen, da mir das erspart, die Code-Ergänzungen bei jedem Update nachzuführen.

Ich werde das Update gleich noch herunterladen und einspielen.

Aktuell habe ich großen Gefallen daran gefunden, eine Fragensammlung zusammenzustellen. Die Ergebnisse sind dann im Wiki nachzulesen.

1 „Gefällt mir“

@Boerge1 Das Update ist eingespielt und angetestet.
Funktioniert prima, genau, wie gewünscht :+1:

Nach anfänglichen Problemen hat sich herausgestellt, dass meine SD-Karte der Übeltäter war. Offenbar hatte ich zu oft Dateien ergänzt oder ersetzt, so dass in einigen Verzeichnissen der DF-Player kein Finish Signal gegeben hat und folgerichtig auch die Ansage nicht gekommen ist.
Nach Formatierung und neu bespielen der Karte (mit den vorherigen Strukturen) läuft nun ales wie es muss.

Nochmals vielen Dank für Dein Engagement :grinning:

1 „Gefällt mir“

Ich habe das Feature jetzt gemergt und es ist im neuen Release als optionales Feature enthalten.

1 „Gefällt mir“