繁体   English   中英

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

[英]I'm writing a guessing game in javascript. I don't know how to validate that the number is inbetween 0 and 100 through the code

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

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

我的问题是,当我到达太高或太低的部分时,它会停止验证数字是否在 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");
}

当您在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"); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM