为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

心有法竹 2022-05-26 14:43:37
我正在做的练习是写一个猜谜游戏。它要求您编写一个函数让用户输入猜测的数字,编写第二个函数来验证代码,编写第三个函数来检查数字并告诉用户它是否太高或太低。我的问题是,当我到达过高或过低的部分时,它会停止验证数字是否在 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");}
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

当您验证内部猜测的数字时,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() {

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

}


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;

  }

  console.log("valid number");

}


function NumberCheck(ArgRandomNum, ArgValidNum) {

  var ctr = 1;


  while (ArgValidNum !== ArgRandomNum) {

    if (ArgValidNum > ArgRandomNum) {

      ArgValidNum = parseFloat(

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

      );

      ArgValidNum = ValidateGuess(ArgValidNum);

    } else if (ArgValidNum < ArgRandomNum) {

      ArgValidNum = parseFloat(

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

      );

      ArgValidNum = ValidateGuess(ArgValidNum);

    }

    ctr++;

  }


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

}


查看完整回答
反对 回复 2022-05-26
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号