Wahrheit oder Pflicht
Zieht reihum einen Namen und dazu eine Frage oder eine Aufgabe — harmlos genug für jede Runde, mit eigenen Namen und zwei Stufen.
Das Spiel, mit dem seit Generationen Abende gerettet werden: Es wird jemand ausgelost, und dieser jemand wählt zwischen einer Frage, die ehrlich zu beantworten ist, und einer Aufgabe, die zu erfüllen ist. Dieses Script übernimmt das Auslosen und liefert die Fragen und Aufgaben gleich mit.
Tragt die Namen der Runde ein — eine Zeile je Person. Ein Klick auf „Wer ist dran?" zieht jemanden aus, danach wählt diese Person selbst zwischen Wahrheit und Pflicht. Damit niemand dreimal hintereinander drankommt, merkt sich das Script die letzten Ziehungen und lässt Wiederholungen erst wieder zu, wenn alle einmal an der Reihe waren.
Zwei Stufen stehen zur Wahl. Harmlos eignet sich für Kindergeburtstage und Familienfeiern — hier geht es um Lieblingsessen, Grimassen und Kunststücke. Mutig ist etwas frecher, bleibt aber freundlich: peinliche Momente, alte Angewohnheiten, kleine Mutproben. Alles bleibt so, dass man es am nächsten Tag noch erzählen mag.
Eine Regel, die in keiner Runde fehlen sollte und die kein Script erzwingen kann: Jeder darf jederzeit aussteigen, ohne Begründung und ohne Strafe. Ein Spiel, bei dem sich jemand überwinden muss, hat seinen Zweck verfehlt.
Verwandtes im Archiv: der Losentscheid zieht Namen ohne Aufgaben, Gruppen einteilen verteilt sie auf Mannschaften, und Scherzfragen liefern Stoff für die Pausen.
Jeder darf jederzeit aussteigen — ohne Begründung und ohne Ersatzaufgabe.
So funktioniert das Script
Das Script ist kurz, enthält aber einen Kniff, den jedes Spiel mit Zufallsauswahl braucht: dafür zu sorgen, dass nicht dieselbe Person dreimal hintereinander drankommt.
let auswahl = namen.filter(function (name) {
return letzte.indexOf(name) === -1;
});
if (auswahl.length === 0) {
letzte = [];
auswahl = namen;
}
Gezogen wird nur aus denen, die noch nicht dran waren. Sind alle einmal drangewesen, wird der Merkzettel geleert und die Runde beginnt von vorn. Das Ergebnis ist eine zufällige Reihenfolge, in der aber jeder gleich oft vorkommt — deutlich angenehmer als reiner Zufall, bei dem in vier Ziehungen durchaus dreimal dieselbe Person erscheinen kann.
Dieses Muster heißt „Ziehen ohne Zurücklegen mit Wiederauffüllung" und steckt auch in Musik-Zufallswiedergaben, die nicht ständig dasselbe Lied spielen sollen.
const liste = art === "wahrheit" ? wahrheiten[stufe] : pflichten[stufe];
Vier Listen — Wahrheit und Pflicht in je zwei Stufen — werden über zwei Zugriffe ausgewählt: erst nach Art, dann nach Stufe. Weil beide aus Bedienelementen kommen, braucht es keine einzige if-Verzweigung über die Inhalte. Eine dritte Stufe wäre je ein weiterer Eintrag in den beiden Objekten.
.map(function (zeile) { return zeile.trim(); })
.filter(function (zeile) { return zeile !== ""; });
Beim Einlesen wird aufgeräumt: Leerraum abschneiden, leere Zeilen wegwerfen. Ohne den zweiten Schritt könnte eine versehentliche Leerzeile „drankommen" — ein Fehler, der beim eigenen Testen nie auftritt und beim ersten echten Einsatz sofort.
if (dran === "") {
ausgabe.textContent = "Zieht zuerst, wer an der Reihe ist.";
return;
}
Die Knöpfe für Wahrheit und Pflicht ergeben nur Sinn, wenn jemand gezogen wurde. Statt sie zu sperren, erklärt das Script beim Klick, was zuerst zu tun ist. Bei einem Spiel, das man in Gesellschaft bedient, ist eine freundliche Erklärung meist besser als ein toter Knopf — niemand soll rätseln müssen, warum nichts passiert.
Zum Anpassen: Eigene Fragen und Aufgaben sind einfach weitere Einträge in den Listen. Wollt ihr, dass sich auch Fragen nicht wiederholen, führt ihr für sie denselben Merkzettel wie für die Namen. Und wer möchte, dass das Script die Wahl übernimmt, würfelt zwischen Wahrheit und Pflicht — das nimmt der Runde allerdings die schönste Entscheidung des Spiels.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.