我正在用javascript写一个猜谜游戏。我不知道如何通过代码验证数字在 0 到 100 之间

我正在做的练习是写一个猜谜游戏。


它要求您编写一个函数让用户输入猜测的数字,编写第二个函数来验证代码,编写第三个函数来检查数字并告诉用户它是否太高或太低。


我的问题是,当我到达过高或过低的部分时,它会停止验证数字是否在 1 到 100 之间。我已经尝试了我所知道的一切,但我仍然很困惑。在我放入 ValidNUm 变量之前,代码可以正常工作。


我觉得这可能是一个简单的答案,但我没有得到它,所以我很抱歉。关键是我需要猜谜游戏来验证数字,如果错误,他们会输入一个数字直到正确,然后它会告诉他们验证的数字是太高还是太低。


之前发生的情况是它验证了数字,但没有传递要评估的有效数字。


var GuessedNumber, RandomNum, ValidNum;


RandomNum = 24; //Math.floor((Math.random() * 100) + 1);

GuessedNumber = EnterGuess();

ValidNum = ValidateGuess(GuessedNumber);


NumberCheck(GuessedNumber, RandomNum, ValidNum);


function EnterGuess() {

  var ArgGuessNum;


  ArgGuessNum = parseFloat(prompt("Please guess a number between 1 and 100"));

  return ArgGuessNum;

}


function ValidateGuess(ArgGuessNum) {

  var ArgValidNum;


  while (ArgGuessNum < 1 || ArgGuessNum > 100) {

    ArgGuessNum = parseFloat(

      prompt("Please guess a valid number between 1 and 100")

    );

  }


  if (ArgGuessNum > 0 || ArgGuessNum < 100) {

    ArgValidNum = ArgGuessNum;

    return ArgValidNum;

  }

  alert("valid number");

}


function NumberCheck(ArgGuessNum, ArgRandomNum, ArgValidNum) {

  var ctr = 1;


  while (ArgValidNum != ArgRandomNum) {

    if (ArgValidNum > ArgRandomNum) {

      ArgGuessNum = parseFloat(

        prompt("Uh-Oh the number is  too high! enter another guess")

      );

      ValidateGuess(ArgGuessNum);

    } else if (ArgValidNum < ArgRandomNum) {

      ArgGuessNum = parseFloat(

        prompt("Uh-Oh the number is  too low! enter another guess")

      );

      ValidateGuess(ArgGuessNum);

    }

    ctr++;

  }


  alert("you took " + ctr + " guesses");

}


心有法竹
浏览 102回答 1
1回答

扬帆大鱼

当您验证内部猜测的数字时,NumberCheck(...)您不会将生成的“有效”数字分配回变量(因此在循环的下一次迭代中永远不会考虑它。你需要添加类似的东西ArgValidNum = ValidateGuess(ArgValidNum);我也去简化了,NumberCheck(...)因为你只比较两个数字:猜测的一个和一开始创建的“随机”。请参阅下面的演示代码var GuessedNumber, RandomNum, ValidNum;RandomNum = 24; //Math.floor((Math.random() * 100) + 1);GuessedNumber = EnterGuess();ValidNum = ValidateGuess(GuessedNumber);NumberCheck(RandomNum, ValidNum);function EnterGuess() {&nbsp; return parseFloat(prompt("Please guess a number between 1 and 100"));}function ValidateGuess(ArgGuessNum) {&nbsp; var ArgValidNum;&nbsp; while (ArgGuessNum < 1 || ArgGuessNum > 100) {&nbsp; &nbsp; ArgGuessNum = parseFloat(&nbsp; &nbsp; &nbsp; prompt("Please guess a valid number between 1 and 100")&nbsp; &nbsp; );&nbsp; }&nbsp; if (ArgGuessNum > 0 || ArgGuessNum <= 100) {&nbsp; &nbsp; ArgValidNum = ArgGuessNum;&nbsp; &nbsp; return ArgValidNum;&nbsp; }&nbsp; console.log("valid number");}function NumberCheck(ArgRandomNum, ArgValidNum) {&nbsp; var ctr = 1;&nbsp; while (ArgValidNum !== ArgRandomNum) {&nbsp; &nbsp; if (ArgValidNum > ArgRandomNum) {&nbsp; &nbsp; &nbsp; ArgValidNum = parseFloat(&nbsp; &nbsp; &nbsp; &nbsp; prompt("Uh-Oh the number is&nbsp; too high! enter another guess")&nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp; ArgValidNum = ValidateGuess(ArgValidNum);&nbsp; &nbsp; } else if (ArgValidNum < ArgRandomNum) {&nbsp; &nbsp; &nbsp; ArgValidNum = parseFloat(&nbsp; &nbsp; &nbsp; &nbsp; prompt("Uh-Oh the number is&nbsp; too low! enter another guess")&nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp; ArgValidNum = ValidateGuess(ArgValidNum);&nbsp; &nbsp; }&nbsp; &nbsp; ctr++;&nbsp; }&nbsp; alert("you took " + ctr + " guesses");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript