首页 > 解决方案 > 通过循环使用逻辑

问题描述

我正在尝试制作这个迷你猜谜游戏。用户必须猜数字。3 次尝试后,系统会询问用户是否要继续。我已经编写了提出 3 个问题的逻辑,并提示用户决定是继续还是终止程序。但是我正在努力做到这一点,以便如果用户继续,他将继续玩。

我在想一个介于 1 和 10 之间的数字,它是什么?> 3 10 你的猜测太低 我在想一个介于 1 和 10 之间的数字,它是什么?> 2 10 你的猜测太低我'我在想一个 1 到 10 之间的数字,它是什么?> 5 6 你的猜测太低了你想继续是还是不是?(y 代表是,n 代表否)> y 我在想一个介于1和10,是什么?> 3 1 你的猜测太高了你想继续yes还是no?(y代表yes,n代表no)>

是或否问题不应该出现在第三个问号之前。任何人都有任何想法或知道应该使用什么循环来朝着正确的方向前进

这些是上面的结果:

function game() {
    let numOfGuesses=0;
    let inputNum;
    
    while(numOfGuesses <= 10) {
    var userGuess = prompt("I'm thinking of a number between 1 and 10, what is it?");
    
    var randomNum = Math.floor(Math.random() * 10) + 1;
    
    let number = parseInt(userGuess);
    
    numOfGuesses++;
    console.log(randomNum)
    var quit;
    
    //logic to check which are correct and not correct
    if (userGuess < randomNum) {
        alert("your guess is too low")
    }else if(userGuess > randomNum) {
        alert("your guess is too high")
    }else {
        alert("CORRECT!")
    }
    
    if (numOfGuesses >= 3 || numOfGuesses == 3) {
        quit = prompt("would you like to continue yes or no?(y for yes, n for no)")
        //break;
        if(quit == "y") {
            continue;
        } else {
            return;
        }
    }
    
    
    } 
}
game();

标签: javascriptloopswhile-loop

解决方案


定义一个计数器并为每个循环找到它的模式。每 3 步将给出 0

function game() {
    let numOfGuesses=0;
    let inputNum;
    let counter = 1;
    while(numOfGuesses <= 10) {
        var userGuess = prompt("I'm thinking of a number between 1 and 10, what is it?");
        
        var randomNum = Math.floor(Math.random() * 10) + 1;
        
        let number = parseInt(userGuess);
        
        numOfGuesses++;
        console.log(randomNum)
        var quit;
        
        //logic to check which are correct and not correct
        if (userGuess < randomNum) {
            alert("your guess is too low")
        }else if(userGuess > randomNum) {
            alert("your guess is too high")
        }else {
            alert("CORRECT!")
        }
        
        if (counter % 3==0) {
            quit = prompt("would you like to continue yes or no?(y for yes, n for no)")
            //break;
            if(quit == "y") {
                continue;
            } else {
                return;
            }
        }
        counter++
    }
}

推荐阅读