繁体   English   中英

使用随机数的javascript彩票游戏我的逻辑有什么问题

[英]javascript lottery game using random numbers what is wrong with my logic

一个简单的直接游戏用户输入6个数字并点击按钮播放,如果所有6个数字匹配他们赢得彩票,我已设置循环,以便它一直生成随机数,直到用户获胜,然后通知他们循环的数量它赢得了数字。 我的逻辑问题是即使一个数字匹配,循环终止我需要它继续运行,直到所有数字都匹配。 这是代码请帮助,以便我可以精益:)

 <html>
 <head>
 <title>Lottery Game</title>
 <SCRIPT LANGUAGE="javascript">

 function genNums(){

 var counter = 0;

    do{

    var num1 = Math.round(59 * Math.random())+1
    var resultnum1 = document.lottery.Rball1.value = num1

    var num2 = Math.round(59 * Math.random())+1
    var resultnum2 =document.lottery.Rball2.value = num2

    var num3 = Math.round(59 * Math.random())+1
    var resultnum3 =document.lottery.Rball3.value = num3

    var num4 = Math.round(59 * Math.random())+1
    var resultnum4 =document.lottery.Rball4.value = num4

    var num5 = Math.round(59 * Math.random())+1
    var resultnum5 =document.lottery.Rball5.value = num5

    var num6 = Math.round(59 * Math.random())+1
    var resultnum6 =document.lottery.Rball6.value = num6

    var enterednum1 = document.lottery.ball1.value;
    var enterednum2 = document.lottery.ball2.value;
    var enterednum3 = document.lottery.ball3.value;
    var enterednum4 = document.lottery.ball4.value;
    var enterednum5 = document.lottery.ball5.value;
    var enterednum6 = document.lottery.ball6.value;

    counter = counter + 1;

}while(resultnum1 != enterednum1 && resultnum2 != enterednum2 && resultnum3 != enterednum3 && resultnum4 != enterednum4 && resultnum5 != enterednum5 && resultnum6 != enterednum6)


//alert(counter);

if(resultnum1 == enterednum1 && resultnum2 == enterednum2 && resultnum2 == enterednum2 && resultnum2 == enterednum2 && resultnum2 == enterednum2 && resultnum2 == enterednum2){

    alert("JackPot!, You Won The Lottery");
    alert("It took " + counter + " number of loops to get wining numbers")
    document.bgColor = "lightblue";

}
else{
    alert("sorry you did not win" + counter);
}


 }

</SCRIPT>



</head>
<body>

<Form Name = "lottery">

Lottery Game<br/>

Please enter your six numbers below:<br/>

Ball#1 <Input Type = "text" size = "1" value = "7" name = "ball1"><br/>
Ball#2 <Input Type = "text" size = "1" value = "45" name = "ball2"><br/>
Ball#3 <Input Type = "text" size = "1" value = "29" name = "ball3"><br/>
Ball#4 <Input Type = "text" size = "1" value = "10" name = "ball4"><br/>
Ball#5 <Input Type = "text" size = "1" value = "5" name = "ball5"><br/>
Ball#6 <Input Type = "text" size = "1" value = "25" name = "ball6"><br/>


<Input Type = "button" value = "Play" onClick = "genNums()"><br/>

Results:<br/>

Result Ball#1 <Input Type = "text" size = "1" name = "Rball1"><br/>
Result Ball#2 <Input Type = "text" size = "1" name = "Rball2"><br/>
Result Ball#3 <Input Type = "text" size = "1" name = "Rball3"><br/>
Result Ball#4 <Input Type = "text" size = "1" name = "Rball4"><br/>
Result Ball#5 <Input Type = "text" size = "1" name = "Rball5"><br/>
Result Ball#6 <Input Type = "text" size = "1" name = "Rball6"><br/>


</Form>
</body>
</html>

您需要在while循环中使用OR条件

while(resultnum1 != enterednum1 || resultnum2 != enterednum2 || resultnum3 != enterednum3 || resultnum4 != enterednum4 || resultnum5 != enterednum5 || resultnum6 != enterednum6)

这样,即使一组不匹配,代码也会循环!!

而且由于你正在使用Math.random(),你将很难验证逻辑,因为你可能需要预测Math.random()的结果是幸运的,以赢得伟大的乐透:)

有时阅读NOT逻辑会有点毛茸茸,尤其是while条款依赖于某些事情才能保持持续

为了便于阅读,我尽可能经常保持“真实”

} while( !(resultnum1 == enterednum1 && resultnum2 == enterednum2 && resultnum3 == enterednum3 &&
resultnum4 == enterednum4 && resultnum5 == enterednum5 && resultnum6 == enterednum6) )

编辑:另外,你的if语句看起来被复制和粘贴..可能想要修复语句的其余部分

if ( resultnum1 == enterednum1 && resultnum2 == enterednum2 && resultnum3 == enterednum3 && resultnum4 == enterednum4 && resultnum5 == enterednum5 && resultnum6 == enterednum6 ){

编辑2:这是适合我的代码。 它大约有四分之一的尝试但只是因为我将随机最大值减少到了6

 <html>
 <head>
 <title>Lottery Game</title>
 <SCRIPT LANGUAGE="javascript">

 function genNums(){

 var counter = 0;

    do{

    var num1 = Math.round(5 * Math.random())+1
    var resultnum1 = document.lottery.Rball1.value = num1

    var num2 = Math.round(5 * Math.random())+1
    var resultnum2 = document.lottery.Rball2.value = num2

    var num3 = Math.round(5 * Math.random())+1
    var resultnum3 = document.lottery.Rball3.value = num3

    var num4 = Math.round(5 * Math.random())+1
    var resultnum4 = document.lottery.Rball4.value = num4

    var num5 = Math.round(5 * Math.random())+1
    var resultnum5 = document.lottery.Rball5.value = num5

    var num6 = Math.round(5 * Math.random())+1
    var resultnum6 = document.lottery.Rball6.value = num6

    var enterednum1 = document.lottery.ball1.value;
    var enterednum2 = document.lottery.ball2.value;
    var enterednum3 = document.lottery.ball3.value;
    var enterednum4 = document.lottery.ball4.value;
    var enterednum5 = document.lottery.ball5.value;
    var enterednum6 = document.lottery.ball6.value;

    counter = counter + 1;

}while( !((resultnum1 == enterednum1 && resultnum2 == enterednum2 && resultnum3 == enterednum3 && resultnum4 == enterednum4 && resultnum5 == enterednum5 && resultnum6 == enterednum6 ) || counter >= 10000 ) )


//alert(counter);

if( resultnum1 == enterednum1 && resultnum2 == enterednum2 && resultnum3 == enterednum3 && resultnum4 == enterednum4 && resultnum5 == enterednum5 && resultnum6 == enterednum6) {

    alert("JackPot!, You Won The Lottery");
    alert("It took " + counter + " number of loops to get winning numbers")
    document.bgColor = "lightblue";

}
else{
    alert("sorry you did not win after " + counter + " tries");
}


 }

</SCRIPT>



</head>
<body>

<Form Name = "lottery">

Lottery Game<br/>

Please enter your six numbers below:<br/>

Ball#1 <Input Type = "text" size = "1" value = "1" name = "ball1"><br/>
Ball#2 <Input Type = "text" size = "1" value = "2" name = "ball2"><br/>
Ball#3 <Input Type = "text" size = "1" value = "3" name = "ball3"><br/>
Ball#4 <Input Type = "text" size = "1" value = "4" name = "ball4"><br/>
Ball#5 <Input Type = "text" size = "1" value = "5" name = "ball5"><br/>
Ball#6 <Input Type = "text" size = "1" value = "6" name = "ball6"><br/>


<Input Type = "button" value = "Play" onClick = "genNums()"><br/>

Results:<br/>

Result Ball#1 <Input Type = "text" size = "1" name = "Rball1"><br/>
Result Ball#2 <Input Type = "text" size = "1" name = "Rball2"><br/>
Result Ball#3 <Input Type = "text" size = "1" name = "Rball3"><br/>
Result Ball#4 <Input Type = "text" size = "1" name = "Rball4"><br/>
Result Ball#5 <Input Type = "text" size = "1" name = "Rball5"><br/>
Result Ball#6 <Input Type = "text" size = "1" name = "Rball6"><br/>


</Form>
</body>
</html>

暂无
暂无

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

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