Ergebnis 1 bis 2 von 2
  1. #1
    RoterRechen ist offline Grünschnabel
    registriert
    08-05-2017
    Beiträge
    1

    Quiz Logik in Java Scirpt

    Hallo,

    ich habe hier mal meine js logik von nem kleinen quiz gepostet.dort ist es das ziel eine datei einzulesen und daraus ein kleiner übersetzerquiz mit 5 antwortmöglichkeiten von der 1 richtig ist zu erzeugen.
    also im grunde geht sie in ne textdatei. wo jeweils das wort der einen sprache und das wort der anderen sprache mit nem tabulator getrennt stehen und am ende steht immer ein \n
    es wird der inhalt eingelesen und nach sprache getrennt durch den tabulator und dann wird durch zufall ein quiz aufgebaut..da funktioniert auch soweit..auch die lösung erkennt er(auch wenn sie bisher immer ganz unten steht). nun kommt aber ab und zu mal vor das entweder alles problemlos geht, oder es fehlt eine lösung(diese bleibt entweder leer oder wird mit undefined gefüllt)
    da das problem recht zufällig aufzutreten scheint, wollte ich einfach mal nach potentiellen fehlerquellen in meinem code fragen..wenn jemand ne idee hat würde das sicher sehr helfen
    das format der textdatei habe ich mehrfach überprüft. alle wörter sind mit tab getrennt und zeilen ganz normal mit enter

    Code:
    file = "";
    requested = "";
    solution = "";
    solutionid = "";
    selected = null;
    block = false;
    atb = 0;
    prevbutton = "answer1";
    function contains(arr, findValue) {
        var i = arr.length;
         
        while (i--) {
            if (arr[i] === findValue) return true;
        }
        return false;
    }
    
    
    function shuffle(a) {
        var j, x, i;
        for (i = a.length; i; i--) {
            j = Math.floor(Math.random() * i);
            x = a[i - 1];
            a[i - 1] = a[j];
            a[j] = x;
        }
    }
    
    
    
    function pruefen()
    {
    
    selected = document.querySelector('input[name = "question1"]:checked').value;
    
    if(document.getElementById("sendenchild").innerHTML === "Senden"){
        if(!block){
      if(solutionid === selected)
        document.getElementById("left").style.backgroundColor = 'green';
      else
        document.getElementById("left").style.backgroundColor = 'red';
    }
      block = true;
      document.getElementById("sendenchild").innerHTML = "Weiter";
    }
    else if(atb === 0)
    {
    AtoB();
    document.getElementById(prevbutton).style.backgroundColor = 'lightgrey';
    document.getElementById("sendenchild").innerHTML = "Senden";
    }
    else if(atb === 1)
      {
        BtoA();
        document.getElementById(prevbutton).style.backgroundColor = 'lightgrey';
    document.getElementById("sendenchild").innerHTML = "Senden";
      }
    }
    
    
    
     function AtoB()
    {
      atb = 0;
      block = false;
      document.getElementById("left").style.backgroundColor = '#004358';
      filename = document.getElementById("stripe").innerText+".txt";
      path = "../vocab/"+filename;
    
         document.getElementById("leftchild").style.backgroundColor = '#004358';
         document.getElementById("leftchild").style.color = 'white';
         document.getElementById("rightchild").style.backgroundColor = 'white';
         document.getElementById("rightchild").style.color = '#004358';
         var answer = new Array(4);
         var already = new Array(4);
         var txtFile = new XMLHttpRequest();
         txtFile.open("GET", path, true);
         txtFile.onreadystatechange = function () 
         {
         if (txtFile.readyState === 4) 
        {  
            // Makes sure the document is ready to parse.
            if (txtFile.status === 200) 
            {  
                 // Makes sure it's found the file.
                 text = txtFile.responseText; 
                 var fields = text.split('\n');
                 random = Math.round(Math.random()*(fields.length-1));
                result = fields[random];
                var field = result.split('\t');
                requested = field[0];
                solution = field[1];
                answer[4] = solution;
              for (var i = 0; i <= 3; i++)
              {
                 do {
                random = Math.round(Math.random()*(fields.length-1));
                var field = fields[random].split('\t');
                    } while(contains(answer,field[1]))
    
                answer[i] = field[1];
               }
    
               
              
               document.getElementById("left").innerHTML = requested;
               document.getElementById("answer1").innerHTML = answer[0];
               document.getElementById("answer2").innerHTML = answer[1];
               document.getElementById("answer3").innerHTML = answer[2];
               document.getElementById("answer4").innerHTML = answer[3];
               document.getElementById("answer5").innerHTML = answer[4];
                 
    
    
                          for(var k = 0; k <= answer.length-1; k++)
                          {
                if(answer[k] === solution)
                  k++;
                      solutionid=k.toString();
                  }
    
            }
        }
    }
    txtFile.send(null)
    }
    
    
    
     function BtoA(filename)
    {
      atb = 1;
      block = false;
      document.getElementById("left").style.backgroundColor = '#004358';
     filename = document.getElementById("stripe").innerText+".txt";
      path = "../vocab/"+filename;
         document.getElementById("rightchild").style.backgroundColor = '#004358';
         document.getElementById("rightchild").style.color = 'white';
         document.getElementById("leftchild").style.backgroundColor = 'white';
         document.getElementById("leftchild").style.color = '#004358';
         var answer = new Array(4);
         var already = new Array(4);
         var txtFile = new XMLHttpRequest();
         txtFile.open("GET", path, true);
         txtFile.onreadystatechange = function () 
         {
         if (txtFile.readyState === 4) 
        {  
            // Makes sure the document is ready to parse.
            if (txtFile.status === 200) 
            {  
                 // Makes sure it's found the file.
                 text = txtFile.responseText; 
                 var fields = text.split('\n');
                 random = Math.round(Math.random()*(fields.length-1));
                result = fields[random];
                var field = result.split('\t');
                requested = field[1];
                solution = field[0];
                answer[4] = solution;
              for (var i = 0; i <= 3; i++)
              {
                 do {
                random = Math.round(Math.random()*(fields.length-1));
                var field = fields[random].split('\t');
                    } while(contains(answer,field[0]))
    
                answer[i] = field[0];
               }
    
               document.getElementById("left").innerHTML = requested;
               document.getElementById("answer1").innerHTML = answer[0];
               document.getElementById("answer2").innerHTML = answer[1];
               document.getElementById("answer3").innerHTML = answer[2];
               document.getElementById("answer4").innerHTML = answer[3];
               document.getElementById("answer5").innerHTML = answer[4];
              
    
                          for(var k = 0; k <= answer.length-1; k++)
                          {
                if(answer[k] === solution)
                  k++;
                      solutionid=k.toString();
                  }
            }
        }
    }
    txtFile.send(null)
    }

    hier nochml der aufbau der textdatei beispielhaft:
    Baum *Tab* Tree *Enter*
    Stuhl *Tab* Chair *Enter*
    FLugzeug *Tab* Plane *Enter*

    danke für eure hilfe

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.649

    AW: Quiz Logik in Java Scirpt

    Hast du nicht eine Version, wo wir uns das live ansehen können?

Ähnliche Themen

  1. Bitte um Hilfe bei JS und PHP Logik
    Von bestertester im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 15-02-2011, 23:31
  2. Eine Frage der Logik
    Von stormwind im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 01-04-2007, 20:03
  3. Quiz in Java Script
    Von tobias1982 im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 04-11-2005, 15:27
  4. Amerikanische Logik - Crashkurs
    Von dkdenz im Forum Fun
    Antworten: 2
    Letzter Beitrag: 12-07-2004, 22:00
  5. java-rechner für quiz
    Von cheib im Forum Jobs
    Antworten: 3
    Letzter Beitrag: 30-08-2002, 08:15

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •