首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用函数并在while循环中分配值。骰子作业问题

调用函数并在while循环中分配值。骰子作业问题
EN

Stack Overflow用户
提问于 2019-10-09 19:55:24
回答 1查看 59关注 0票数 1

每次我都不知道该怎么做。我似乎拿不出任何骰子1和dice2。

我将while语句更改为for语句,以查看这是否是问题所在。我尝试在外部循环条件(numberOfSides <3 && dice1 != dice2 ),但这将继续提示我输入一个新的numberOfSides。我基本上把这个东西搞砸了,试着重新排列变量。

代码语言:javascript
复制
    return Math.floor(Math.random() * (max + 1 - min)) + min;
}
var numberOfSides2 = numberOfSides
var dice2 = 0;
var dice1 = 0;
var numberOfRoles = 0;
var numberOfSides = parseInt(prompt("how many sides does your dice have, "));
while (numberOfSides < 3) {
        numberOfSides = parseInt(prompt("enter the amount a number greater than 3, "));
    }
while (dice1 != dice2) {
    dice1 === getRandomInt(numberOfSides, numberOfSides2);
    dice2 === getRandomInt(numberOfSides, numberOfSides2);
    ++numberOfRoles}
    if (dice1 != dice2) {
        alert(dice1);
    }

我一直收到不确定的信息。我越是试图修复和重写它,我似乎就会犯更多的错误。我应该让它看起来像这样,但是首先,我想确保在运行一个函数之后,我可以让它输出一些东西。

你的骰子上有多少面?-10 -对不起,这不是一个有效的大小值。请选择一个正数。你的骰子上有多少面?

谢谢!开始吧..。

  1. 1为5,2为3,
  2. 1为2,2为2,
  3. 为1,2为5,
  4. 1为5,2为1.(这些三重点意味着输出继续进行,但对样本不起作用,因此我们节省了空间)
  5. 模号为1,模号2为1。

你有蛇眼!终于来了!试试看16号!沿着这条路,你翻滚5倍,第一模具的平均辊数是2.95,第二模具的平均辊数是3.20。

EN

回答 1

Stack Overflow用户

发布于 2019-10-09 21:13:50

  1. 我不认为numberOfSides2变量的点,因为getRandomInt函数总是以1作为它的min值,而用户的输入作为最大值。
  2. '===‘是一个比较运算符,因此您不能使用它为随机整数分配骰子号。
  3. 在您希望循环停止的点上并不安静,因此当用户滚动双倍时,下面的代码就会停止。

代码语言:javascript
复制
getRandomInt = (min, max) => {
  return Math.floor(Math.random() * (max + 1 - min)) + min;
};

let numOfSides = parseInt(prompt('how many sides does your dice have, '));
let dice1 = getRandomInt(1, numOfSides);
let dice2 = getRandomInt(1, numOfSides);
let numOfRoles = 1;

while (numOfSides < 3) {
  numOfSides = parseInt(prompt('enter the amount a number greater than 3, '));
}

while (dice1 != dice2) {
  dice1 = getRandomInt(1, numOfSides);
  dice2 = getRandomInt(1, numOfSides);
  numOfRoles++;
  console.log(dice1);
  console.log(dice2);
  console.log('---');
}

if (dice1 === dice2) {
  console.log('matching pair is ' + dice1);
}

要回答您的问题,代码总是返回dice1和dice2的值0,因为您使用的是'===‘而不是'=’。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58311390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档