给我错误的输出,Javascript赢了';t将生成的单词(要猜测的单词)与正确的选项匹配
基本上,我为一个项目做了一个猜测游戏,当我检查我的猜测是否正确时,最后会说我错了5个,对了0个正确答案是选择菜单中的最后一个。我想做的是检查用户的答案是否与正确的翻译相符 *-我尝试过改变现状,但对我来说根本不起作用* 这是我的JSFIDLE。。。复制品!。。我还必须添加我的javascript。给我错误的输出,Javascript赢了';t将生成的单词(要猜测的单词)与正确的选项匹配,javascript,arrays,Javascript,Arrays,基本上,我为一个项目做了一个猜测游戏,当我检查我的猜测是否正确时,最后会说我错了5个,对了0个正确答案是选择菜单中的最后一个。我想做的是检查用户的答案是否与正确的翻译相符 *-我尝试过改变现状,但对我来说根本不起作用* 这是我的JSFIDLE。。。复制品!。。我还必须添加我的javascript。 var RanNumbers=新数组(6), 外来词=['un','deux','trois','quare','cinq','six','sept','huit','neuf','dix','on
var
RanNumbers=新数组(6),
外来词=['un','deux','trois','quare','cinq','six','sept','huit','neuf','dix','onze','douze','treize','quatorze','quinze','chake','dix sept','dix-sept','dix-huit','dix-neuf vingt','vingt-deux','vingtrois','vingtquart','vingtCinq','vingthesix','vingtsept','vingthuit','vingth','vengtneuf trent',',
翻译=[“一”,“二”,“三”,“四”,“五”,“六”,“七”,“八”,“九”,“十”,“十一”,“十二”,“十三”,“十四”,“十五”,“十六”,“十七”,“十八”,“十九”,“二十”,“二十一”,“二十二”,“二十三”,“二十四”,“二十五”,“二十六”,“二十七”,“二十八”,“二十九”,“三十”],
数字=数学地板((数学随机()*30)),
输出=“”,
correctAns=翻译[数字];
//生成随机数以选择可用答案
函数wordGen(){
对于(var h=0;h-1);
rannumber[h]=温度;
}
}
//调用上一个函数
wordGen();
//创建动态选择菜单
document.getElementById('generatedWord')。textContent=外来词[数字];
var guess=“”;
对于(变量i=0;i<6;i++){
猜+=“”+翻译[RanNumbers[i]]+“”;
}
猜测+=''+更正+'';
猜测+=”;
document.getElementById('output').innerHTML=guess;
numguesed=document.getElementById('guesses').value;
函数arrayValueIndex(arr,val){
对于(变量i=0;i-1);
rannumber[j]=温度;
}
}
//调用上一个函数
wordGen();
//创建动态选择菜单
document.getElementById('generatedWord')。textContent=外来词[数字];
var guess=“”;
对于(变量i=0;i<6;i++){
猜+=“”+翻译[RanNumbers[i]]+“”;
}
猜测+=''+更正+'';
猜测+=”;
document.getElementById('output').innerHTML=guess;
numguesed=document.getElementById('guesses').value;
函数arrayValueIndex(arr,val){
对于(变量i=0;i 你有“+正确+”问题正确”;
}
};
您在同一个函数中检查答案并生成新问题,检查是在生成新问题后完成的,这基本上覆盖了前一个问题。因此答案不匹配,被认为是错误的。因此,在生成新问题并替换之前,您必须先检查上一个问题的答案。
此外,在为新问题的编号生成新的随机值之前,您必须保存上一个问题的编号,以了解上一个问题的正确答案 在这里检查更新的JSFIDLE,它现在可以工作了:
var
RanNumbers = new Array(6),
foreignWords = ['un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf', 'vingt', 'vingt et un', 'vingt-deux', 'vingt-trois', 'vingt-quatre', 'vingt-cinq', 'vingt-six', 'vingt-sept', 'vingt-huit', 'vingt-neuf', 'trente'],
translate = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty', 'twenty-one', 'twenty-two', 'twenty-three', 'twenty-four', 'twenty-five', 'twenty-six', 'twenty-seven', 'twenty-eight', 'twenty-nine', 'thirty'],
number = Math.floor((Math.random() * 30)),
output = '',
correctAns = translate[number];
//Generate random numbers to pick the available answers
function wordGen() {
for (var h = 0; h < RanNumbers.length; h++) {
var temp = 0;
do {
temp = Math.floor(Math.random() * 30);
} while (RanNumbers.indexOf(temp) > -1);
RanNumbers[h] = temp;
}
}
//Call the previous function
wordGen();
//Create dynamic select menu
document.getElementById('generatedWord').textContent = foreignWords[number];
var guess = "<select name='guesses' id='guesses'>";
for (var i = 0; i < 6; i++) {
guess += "<option value='" + i + "'>" + translate[RanNumbers[i]] + "</option>";
}
guess += '<option value="6">' + correctAns + '</option>';
guess += "</select>";
document.getElementById('output').innerHTML = guess;
numGuessed = document.getElementById('guesses').value;
function arrayValueIndex(arr, val) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === val) {
return i;
}
}
return false;
}
var numGames = 5;
var numGuesses = 1;
var correct = 0;
var wrong = 0;
//On click, gather correct and wrong answers, create new numbers, create new options, create new word.
document.getElementById('submitAns').onclick = function () {
number = Math.floor((Math.random() * 30)),
output = '',
correctAns = translate[number];
document.getElementById('numGuess').innerHTML = "Question #" + numGuesses;
//Re doing the function, getting new values...
function wordGen() {
for (var j = 0; j < RanNumbers.length; j++) {
var temp = 0;
do {
temp = Math.floor(Math.random() * 30);
} while (RanNumbers.indexOf(temp) > -1);
RanNumbers[j] = temp;
}
}
//Call the previous function
wordGen();
//Create dynamic select menu
document.getElementById('generatedWord').textContent = foreignWords[number];
var guess = "<select name='guesses' id='guesses'>";
for (var i = 0; i < 6; i++) {
guess += "<option value='" + i + "'>" + translate[RanNumbers[i]] + "</option>";
}
guess += '<option value="6">' + correctAns + '</option>';
guess += "</select>";
document.getElementById('output').innerHTML = guess;
numGuessed = document.getElementById('guesses').value;
function arrayValueIndex(arr, val) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === val) {
return i;
}
}
return false;
}
//Checking of the answers below, Accumilating correct and wrong answer.
numGuesses++;
var
genWord = document.getElementById('generatedWord').textContent,
select = document.getElementById('guesses'),
selectedText = select.options[select.selectedIndex].text;
number === arrayValueIndex(translate, selectedText) ? correct++ : wrong++;
if (numGuesses == 6) {
document.getElementById('generatedWord').innerHTML = "<p>You got " + wrong + " questions wrong " + "<br />You got " + correct + " questions correct";
}
};