Quiz
Elf Scherzfragen als IQ-Test: Wer genau liest, entlarvt die Fallen — am Ende schätzt das Script augenzwinkernd euren IQ.
Dieses Javascript veranstaltet mit euch ein kleines Quiz. Also strengt eure grauen Zellen ein wenig an: Elf Fragen bekommt ihr gestellt, und jede einzelne ist eine Fangfrage — wer zu schnell antwortet, tappt garantiert hinein. Wie viele Geburtstage hat ein Mensch mit 58 Jahren? Und wie viele Tiere brachte eigentlich Moses auf die Arche mit?
Klickt auf „IQ-Test starten" — die Fragen erscheinen nacheinander in kleinen Dialogfenstern des Browsers, in die ihr eure Antwort eintippt. Nach jeder Frage erfahrt ihr sofort, ob ihr richtig lagt, bei falschen Antworten gibt es die Auflösung gleich dazu. Am Ende zählt das Script eure Treffer zusammen und schätzt daraus höchst unwissenschaftlich euren IQ — von der Amöbe bis zum verkappten Genie ist alles drin.
Solche Scherzfragen leben davon, dass unser Gehirn beim Lesen Abkürzungen nimmt: Es überliest das „bis auf" beim Bauern mit den 17 Schafen und stolpert nicht über Moses, wo Noah stehen müsste. Genau lesen ist hier die halbe Miete.
Wer danach noch nicht genug hat: Im selben Fach warten die Scherzfragen mit weiterem Rätselfutter, das Quiz der anderen Art bastelt aus euren Antworten einen Lückentext, und der Gedankenleser errät scheinbar eure Gedanken.
Das Quiz läuft in Dialogfenstern des Browsers; nach der letzten Frage erscheint hier die Auswertung.
So funktioniert das Script
Das Script besteht aus einer Fragenliste und einer Funktion, die sie der Reihe nach abfragt: Für jede Frage öffnet sich ein Eingabefenster, die Antwort wird geprüft und gezählt, am Ende wandert die Auswertung in die Ergebnisfläche. Das Original von 2004 wiederholte für jede der elf Fragen denselben Codeblock; die moderne Fassung erledigt das mit einer Datenstruktur und einer Schleife.
const fragen = [
{ frage: "FRAGE 1: Wieviele Geburtstage hat ein normaler Mensch, ...",
richtig: ["einen", "1"],
hinweis: "Jeder hat doch nur einen Geburtstag." },
...
];
Alle Fragen stecken in einem Array (einer Liste) aus Objekten. Jedes Objekt bündelt drei Dinge: den Fragetext, die Liste der akzeptierten Antworten und den Auflösungstext für falsche Antworten. Dieser Aufbau — Daten getrennt vom Programmablauf — ist einer der nützlichsten Kniffe beim Programmieren: Der Code, der die Fragen stellt, muss nicht wissen, wie viele es sind oder wie sie lauten.
const eingabe = (prompt(fragen[i].frage, "") || "").trim().toLowerCase();
In dieser Zeile passiert viel: prompt() öffnet das Eingabefenster und liefert den getippten Text — oder null, wenn jemand auf „Abbrechen" klickt. Das || "" fängt genau diesen Fall ab und macht daraus einen leeren Text, damit die nächsten Schritte nicht abstürzen. trim() entfernt versehentliche Leerzeichen am Rand, und toLowerCase() macht alles klein — so gelten „Neun", „neun" und „NEUN " gleichermaßen. Das Original zählte stattdessen für jede Frage sämtliche Schreibweisen einzeln auf.
if (fragen[i].richtig.indexOf(eingabe) !== -1) {
punkte++;
alert("RICHTIG !!!!");
} else {
alert("FALSCH ! " + fragen[i].hinweis);
}
indexOf() sucht die bereinigte Eingabe in der Liste der richtigen Antworten und liefert ihre Position — oder -1, wenn sie nicht vorkommt. Steht die Antwort in der Liste, erhöht punkte++ den Zähler um eins. Die Rückmeldung kommt wie im Original per alert(), denn das Quiz lebt nun einmal von seinem Dialogfenster-Charme.
if (punkte < 4) {
wertung = "Geschätzter IQ: 70<br>...";
} else if (punkte >= 9) {
wertung = "Geschätzter IQ: 130<br>...";
} else {
wertung = "Geschätzter IQ: 100<br>...";
}
Die Auswertung teilt in drei Stufen ein: unter 4 Treffern gibt es IQ 70, ab 9 Treffern IQ 130, alles dazwischen ist Durchschnitt. Die Grenzen und die frechen Sprüche stammen unverändert aus dem Original. Ausgegeben wird per innerHTML in die Ergebnisfläche — das alte Script benutzte dafür document.write(), was heute die ganze Seite leeren würde und deshalb ersetzt wurde.
Zum Anpassen: Eigene Fangfragen ergänzt ihr einfach als weitere Objekte im fragen-Array — Fragetext, akzeptierte Antworten (klein geschrieben!), Auflösung. Die Auswertung zählt über fragen.length automatisch mit; nur die IQ-Grenzen 4 und 9 solltet ihr dann an die neue Fragenzahl anpassen.
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.