Javascript 如何获得要生成的新号码

Javascript 如何获得要生成的新号码,javascript,while-loop,Javascript,While Loop,我需要做一个掷骰子程序,掷骰子并说谁赢了,如果是平局,它会再次掷骰,每次赢了之后,你会先赢得一分,然后赢5分。每当我运行我的骰子时,它会一次又一次地使用相同的数字,因为它只生成一次,我如何解决这个问题,以及在这个问题后我需要做什么来完成游戏节目,谢谢你的帮助 <script> var comp1 = Math.floor((Math.random()*6) + 1); var comp2 = Math.floor((Math.random()*6) + 1); var yo

我需要做一个掷骰子程序,掷骰子并说谁赢了,如果是平局,它会再次掷骰,每次赢了之后,你会先赢得一分,然后赢5分。每当我运行我的骰子时,它会一次又一次地使用相同的数字,因为它只生成一次,我如何解决这个问题,以及在这个问题后我需要做什么来完成游戏节目,谢谢你的帮助

    <script>

var comp1 = Math.floor((Math.random()*6) + 1);
var comp2 = Math.floor((Math.random()*6) + 1);
var you1 = Math.floor((Math.random()*6) + 1);
var you2 = Math.floor((Math.random()*6) + 1);
var counter = 1;
var youPoints = 0;
var mePoints = 0;


while(counter < 6)
{{
    alert("Let's shake some dice!")

alert("your turn to roll \n\n you shook a " + you1 + " and a " +  you2 + ", so you have " + (you1 + you2));

    alert("my turn to roll \n\n I shook a " + comp1 + " and a " +  comp2 + ", so I have " + (comp1 + comp2));
    counter++

    var you = you1 + you2;
    var me = comp1 + comp2;
    if(you > me)
    {
        alert("you win " + you + " to " + me);
        youPoints++
    }
    if (me > you)
    {

        alert("I win " + me + " to " + you);
        mePoints++

    }


}}




</script>

var comp1=数学地板((数学随机()*6)+1);
var comp2=数学地板((数学随机()*6)+1);
var you1=Math.floor((Math.random()*6)+1);
var you2=数学地板((数学随机()*6)+1);
var计数器=1;
var youPoints=0;
var-mePoints=0;
while(计数器<6)
{{
警惕(“让我们掷骰子吧!”)
警惕(“轮到你掷骰了\n\n你摇了一个“+you1+”和一个“+you2+”,所以你有“+(you1+you2));
警报(“轮到我掷骰了\n\n我摇了一个“+comp1+”和一个“+comp2+”,所以我有“+(comp1+comp2));
柜台++
var you=you1+you2;
变量me=comp1+comp2;
如果(你>我)
{
警惕(“你赢了”+你+”到“+我”);
优朋++
}
如果(我>你)
{
警惕(“我赢了”+我+”到“+你”);
梅波因茨++
}
}}

您正在while循环外初始化随机变量(
you1,you2

它只被初始化一次,因此每次都产生相同的数字


把它带到循环中,这可能会解决它

将生成随机数的代码移动到循环内部,因为现在它们只生成一次。。。在循环开始之前

另外,帮你自己一个忙,对计数循环使用
,而不是
while
,因为
while
循环很容易被错误配置,从而导致无限循环的发生

var youPoints=0;
var-mePoints=0;
用于(变量计数器=1;计数器<6;计数器++){
//生成随机数的代码必须在循环中
//为了在每次循环迭代时生成新的随机数
var comp1=数学地板((数学随机()*6)+1);
var comp2=数学地板((数学随机()*6)+1);
var you1=Math.floor((Math.random()*6)+1);
var you2=数学地板((数学随机()*6)+1);
警惕(“让我们掷骰子吧!”)
警惕(“轮到你掷骰了\n\n你摇了一个“+you1+”和一个“+you2+”,所以你有“+(you1+you2));
警报(“轮到我掷骰了\n\n我摇了一个“+comp1+”和一个“+comp2+”,所以我有“+(comp1+comp2));
var you=you1+you2;
变量me=comp1+comp2;
//不要做两个独立的if语句。将其中一个与else if一起使用
如果(你>我){
警惕(“你赢了”+你+”到“+我”);
优朋++
}否则,如果(我>你){
警惕(“我赢了”+我+”到“+你”);
梅波因茨++
}

}
给你,这应该是一个完整的工作示例

注意:我将
console.log()
alert()替换为
log()
,这样我们就可以在控制台中看到输出,而不需要弹出窗口,但这两种方式都可以

var compPoints=0;
var youPoints=0;
var winnerOfFive=false;
函数rollTheDice(){
返回Math.floor((Math.random()*6)+1);
}
函数rollAllDice(){
让你1=滚冰();
让你2=滚冰();
设comp1=rollTheDice();
设comp2=rollTheDice();
log(“轮到你掷骰子了\n\n你摇了一个“+you1+”和一个“+you2+”,所以你有了“+(you1+you2));
log(“轮到我滚动\n\n我摇了一个“+comp1+”和一个“+comp2+”,所以我有“+(comp1+comp2));
var you=you1+you2;
变量me=comp1+comp2;
如果(你>我){
log(“你赢了”+you+”到“+me”);
youPoints++;
}否则,如果(我>你){
log(“我赢了”+me+”到“+you”);
compPoints++;
}否则{
日志(“这是一场平局,没有人赢。重新开始…”);
rollAllDice();
}
}
函数startName(){
而(!winnerOfFive){
log(“让我们掷骰子吧!”)
rollAllDice();
如果(compPoints==5){
console.log(“Comp是第一个到5场比赛,赢”+compPoints+”到“+youPoints”);
winnerOfFive=true;
}else if(youPoints==5){
console.log(“你是第一个赢得5场比赛并赢得“+youPoints+”到“+compPoints”);
winnerOfFive=true;
}
}
}
//像这样开始游戏
startGame()