Random Fragen auf Website?

3 Antworten

Wie mache ich sowas? Js, css, html

Die Ausgabe der Fragen bzw. das Design der Seite erfolgt mit HMTL und CSS. Die Funktionalität kannst du mit Javascript machen, allerdings ist es dann möglich, dass der User sämtliche Fragen und Antworten im Quelltext einsieht.

Daher empfiehlt es sich, für so etwas eine serverseitige Sprache wie PHP zu nehmen.

Der Algorithmus wäre so, dass Du ein Array mit den Fragen erstellst:

<?php
$_SESSION['frage'][] = "Was ist ein Auto?";
$_SESSION['frage'][] = "Was ist ein Haus?";
$_SESSION['frage'][] = "Was ist ein Baum?";
$_SESSION['frage'][] = "Was ist ein Fernseher?";
$_SESSION['frage'][] = "Was ist eine Blume?";
?>

Dann mischst du dieses Array zufällig:

<?php 
shuffle($_SESSION['frage'];
?>

Nun gibst du auf einer neuen Seite quiz.php eine Frage aus und löschst diese aus dem Array:

<?php
echo "<form>";
echo array_pop($_SESSION['frage']);
echo "<input name='antwort'>";
echo "<input type='submit'>";
echo "</form>";
?>

Damit wird bei jedem Aufruf dieser Seite zufällig eine andere, noch nicht gestellte Frage gestellt.

Alex

Um sicherzustellen, daß keine Frage doppelt kommt, müßtest du bei jedem Benutzer Cookies setzen und dir so merken, welcher Benutzer welche Frage schon gesehen hat... das ist zwar jetzt auch nicht sonderlich kompliziert, aber für den Ansatz doch etwas zu aufwändig.
Wenn du einen funktionierenden Zufallsgenerator hast und eine handfeste Liste an Fragen, ist die Wahrscheinlichkeit einer doppelt gestellten Frage relativ gering.
Oder soll das Quiz jedes Mal komplett vom Besucher "durchgearbeitet" werden bis zum Schluß? Und was ist mit den Antworten? Soll der Benutzer die Eintippen oder soll es multiple Choice werden? Soll am Ende auch eine Auswertung erfolgen? Dafür gibt es fertige Lösungen... PHP wird dafür sicherlich die praktikabelste Lösung sein.


EinAlexander  26.08.2022, 18:18
Um sicherzustellen, daß keine Frage doppelt kommt, müßtest du bei jedem Benutzer Cookies setzen und dir so merken, welcher Benutzer welche Frage schon gesehen hat...

Das geht einfacher, indem du alle Fragen in ein Array schreibst, das Array mischst und dann immer die erste oder letzte Frage des Arrays stellst und diese dann löschst.

So kann keine Frage doppelt kommen, weil jede gestellt Frage "rausfliegt".

0

Ich hab so ein Skript in Javascript schon mal geschrieben, ist eigentlich relativ einfach, kann dir gerne helfen.

Du ordnest jeder Aussage einen Wert zu und dann lässt du bei jedem neuen Klick einen neuen Zufallswert generieren z.B. 4 und 4 bedeutet das Programm blendet Aussage 4 ein.

if( x=4 ) show 4 else if ( x = 5 ) show 5 usw.

Mir ist egal ob man das effizienter programmieren kann, es ist einfach und macht Spaß es so zu machen bye

----

Achja wegen dem dass es nicht nochmal vorkommt, da hab ich eine zweite variable eingefügt die jede aussage einen ticker hat wie lange es her ist dass sie dran war so ca. und jede runde um eins runter oder raufgeht