[英]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.