RoterRechen
New member
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
hier nochml der aufbau der textdatei beispielhaft:
Baum *Tab* Tree *Enter*
Stuhl *Tab* Chair *Enter*
FLugzeug *Tab* Plane *Enter*
danke für eure hilfe
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