Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将计数器添加到此循环?_Javascript - Fatal编程技术网

Javascript 如何将计数器添加到此循环?

Javascript 如何将计数器添加到此循环?,javascript,Javascript,我是一个javascript新手,正在做一个刽子手游戏,我让一切都正常工作,直到我意识到我将猜测与答案进行比较的方法无法处理多个字母的单词。我已经编写了一个新的循环来处理这个问题,但这导致了一个新的问题:我不知道如何在计数器中工作来跟踪错误的猜测 这是我的循环: function checkGuess(guess, array) { for (let i = 0; i < array.length; i++) { let found = false;

我是一个javascript新手,正在做一个刽子手游戏,我让一切都正常工作,直到我意识到我将猜测与答案进行比较的方法无法处理多个字母的单词。我已经编写了一个新的循环来处理这个问题,但这导致了一个新的问题:我不知道如何在计数器中工作来跟踪错误的猜测

这是我的循环:

function checkGuess(guess, array) {
    for (let i = 0; i < array.length; i++) {
        let found = false;
        for (let j = 0; j < array.length; j++) {
            if (array[i] === guess) {
                found = true;
            } 
        }
        if (found) {
            results += answer[i];
        }
    }
}
函数checkGuess(猜测,数组){
for(设i=0;i

当错误猜测的数量达到一定数量或results.length=answer.length时,游戏将结束,但我不知道如何处理错误猜测。任何提示都将不胜感激。

这可能是您想要的吗

var wrongGuesses = 0;
function checkGuess(guess, array) {

    for (let i = 0; i < array.length; i++) {
        let found = false;
        let go_time = false;
        for (let j = 0; j < array.length; j++) {
            if (array[i] === guess) {
                found = true;
                results += answer[i];
            }
            if(j===(array.length-1)){
                go_time = true;
            }
        }
        if (go_time===true&&found!==true) {
            wrongGuesses++;
        }
    }
}
var错误猜测=0;
函数checkGuess(猜测,数组){
for(设i=0;i
试试这个,创建一个函数,返回猜测存在的位置数

function checkGuess(guess, array) {
    let found = 0;
    for (let i = 0; i < array.length; i++) {
        if (array[i] === guess) {
            found++;
        }
    }
    return found;
}
然后,每次用户猜测时,执行以下操作:

var check = checkGuess(guess, question);
if (check > 0) {
    correct += check;
} else {
    wrong++;
}
决定胜负

if (wrong >= 3) {
    // set it to lose
}
if (correct == question.length) {
    // set it to win
}

这两个循环在同一组数组上迭代?可能代码中有一些输入错误?是的,这两个循环在同一个数组上迭代。我为计数器所做的任何尝试要么是递增的,无论是对还是错,要么是对单词中不是猜测的每个字母递增一次(即,如果单词是“foo”,我猜“f”,则计数器上升两次),正如@brk所说,这两个循环基本上做的是相同的事情。也许,对于第一个循环,您可以给出允许用户进行的错误猜测的数量,而不是使用
array.length
。然后你可以使用
如果。。else语句
在for循环之外检查用户的猜测是否正确。这正是我需要的。我可能有点过度思考这个问题/使它变得不必要的复杂,但这让我回到了正确的轨道上。非常感谢你!事实上,它仍然有一个问题,它无法跟踪哪个猜测是正确的,所以如果这个秘密单词是“秘密”,你可以通过猜“s”6次来赢得它,为了跟踪我为你创建了一个小例子
if (wrong >= 3) {
    // set it to lose
}
if (correct == question.length) {
    // set it to win
}