Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Quiz mit speziellen Anforderungen
#1
Hi, ich hoffe ich kann das Problem, das es zu lösen gilt einigermaßen verständlich machen. Kernfrage ist, ob man das Problem mit einem Switchcase lösen kann:

##################

Eine Aufgabe entspicht weitesgehend einem Quiz:
  • Es werden zwei Fragen gestellt, für die dann jeweils ein TextInput-Formular gegeben wird.
  • Jede Frage benötigt aber zwei Antworten (ebenfalls per Textfeld).
Also: => zwei Texteingabeformulare (1 und 2), bestehend aus jeweils zwei Eingabefeldern (a und b)

Das Script soll überprüfen ob der User die Fragen richtig beantwortet hat ( reicht erstmal als console.log als true/false).

Das wichtige ist aber, dass die Reihenfolge der Antworten egal ist. Es gibt also so gesehen keine Frage 1.) die einem bestimmten Formular zugeordnet ist, sondern der User kann jede Frage in jedem Formular beantworten. Die Frage MUSS aber „in sich“ zusammen passen.

Beispiel:
Eine Frage: „Nenne ein bellendes Tier und wieviel Beine hat es?“
Eine andere Frage: „Nenne erst eine rote und dann eine blaue Farbe“
=> der User hat zwei gleiche Eingabeformulare und kann sich aussuchen, wo er welche Frage beantwortet.

Die richtigen, gesuchten Antworten („Hund“ und „4“ sowie „rot“ und „blau“) werden als Variablen definiert.

Hund kann sowohl in Formular 1 als auch 2 eingetragen werden, allerdings immer nur als erste Antwort (a) innerhalb des Formulars.
Antwort (b) muss dann = 4 sein.


Oh man... verständlich?


Ich wollte das gerne mit einem Switchcase lösen: im Fall dass der
  • Input (a) = „Hund“ kommt ist, nur der Input (b) „4“ richtig
  • Input (a) = "rot" bedeutet in (b) ist "blau" richtig.
Wenn weder Hund noch rot eingegeben wird, kann ein default anspringen (der (a) und (b) = false ergibt).
Es muss zwangsläufig Hund oder rot in die Felder (a) eingetragen werden. Nur ein Feld (b) ausfüllen macht dann keinen Sinn später. Der Input in Textfeld (a) definiert also, welche weiteren Antworten als richtig gelten. Puuh...

Ich möchte gerne beide Formulare mit einem(!) onclickevent auswerten.



Ich habe es mal im Code probiert, vielleicht habt ihr da eine Idee und könnt es ggf gleich mal reinschreiben, dann kann ich es mir angucken.

ps: ich bin noch (blutiger?) Anfänger und Kämpfe mich durch Tutorials
pps: ja vor allem zeile 40 halt...
ppps: In If/Else-Möglichkeiten habe ich mich noch nicht reingedacht und etwas Angst vor zu vielen Verschachtelungen. Später werden es pro Aufgabe 5 Fragen mit 4 Antwortteilen (also 5x4 fest definierten Antworten pro Aufgabe). Daher hoff(t)e ich auf eine elegante Switchcase-Lösung.



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
<!--Formular 1-->
<input type="text" id="input1_a"><br>
<input type="text" id="input1_b"><br>
<br><br>
<!--Formular 2-->
<input type="text" id="input2_a"><br>
<input type="text" id="input2_b"><br><br>

<!--beide Resultate sollen mit einem(!) Button kommen-->
<button onclick="submitFunction()">Submit</button>

    <script> //hier werden die Lösungen definiert und in Variablen gespeichertn
        function submitFunction() {
            var lösung1_a = "Hund";
            var lösung1_b = "4"

            var lösung2_a = "rot"
            var lösung2_b = "blau"
            // die Lösung 1_a und 1_b dürfen auch im Input 2_a und 2_b eigetragen werden.


            //Submits (userinput) als Variablen festhalten
            var submit1_a = document.getElementById("input1_a").value;
            var submit1_b = document.getElementById("input1_b").value;

            var submit2_a = document.getElementById("input2_a").value;
            var submit2_b = document.getElementById("input2_b").value;

/*!=>*/     switch ( **??**??** ) {
                //Wenn der input1_a = lösung1_a ist, dann wird überprüft, ob input1_b = Lösung 1_b
                case lösung1_a: console.log("Starte Version Hund mit 4 Beinen")

                    //variablen der Auswertung1(result) anlegen (Bools)
                    var result1_a = submit1_a == lösung1_a
                    var result1_b = submit1_b == lösung1_b
                    console.log("Ergebis Hund");
                    console.log(result1_a);
                    console.log(result1_b);
                    break;

                //Wenn der input1_a = lösung2_a ist, dann wird überprüft, ob input1_b = Lösung 2_b
                case lösung2_a: console.log("Starte Version Farbe")

                    // variablen der Auswertung2(result) anlegen
                    var result2_a = submit1_a == lösung2_a
                    var result2_b = submit1_b == lösung2_b
                    console.log("Ergebis Farbe");
                    console.log(result2_1);
                    console.log(result2_2);
                    break;
            }
        }
        // die Konsole sollte 4x true ausgeben wenn
        // - im ersten Formular Hund und 4 eingegeben wird und im zweiten rot und blau
        // oder
        // - im zweiten Formular Hund und 4 eingegeben wird und im ersten rot und blau
    </script>
</body>

</html>
Zitieren
#2
Ich verstehe kaum was. Dein HTML zeigt mir 4 inpufelder jetzt.
Egal in welcher rein folge ich jetzt Hund,4,rot, blau angebe soll immer 4 mal true rauskommen ? Steht in irgendein Feld was anderes drinnen dann soll 3-mal true und einmal false angezeigt werden? Bei 4-mal true kommt dann ein neues Feld mit wieder 2 Fragen und 4 Antworten? Verstehe ich das so richtig?
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste