繁体   English   中英

尝试创建一个随机游戏,但似乎不起作用

[英]Trying to create a random game but doesn't seem to work

在我的表单操作下,我调用了文本框和按钮。 假设用户输入 2 个值,一个是最高值,另一个是最低值,然后它将在最低和最高值之间生成一个随机值。 用户将猜测数字,如果它正确,它将打印出正确的消息

<form action="random" method="get" onSubmit="return validate()">
            Lowest number: 
            <input id="digit" type="text" name="lowestnumber" onchange="validate()"><br/>
            <br/><span id="numbers"></span>
    
            Highest number:
            <input id="digit1" type="text" name="highestnumber" onchange="validate()">
            <br/><span id="numbers1"></span>    
            
            <br/><input id="rand" type="submit" value="submit" onclick="Random()"><br/>
            <input id="guess" type="text" value="Random Number Generator">
          
            <br/>Enter your number<br/>
            <input id="textbox" type="text"><br/>
            <input id="guessing" type="button" value="Random" onclick="RandomNumber()"><br/>
            <br/><span id="correct"></span>
          
</form>

我的脚本由要使用的方法和函数组成,我认为问题出在 RandomNumber() 函数上,我不确定我哪里出错了,但请帮助我

function validate() 
{
        
            var values = document.getElementById("digit").value;
            if(values<0)
            {
                    document.getElementById("numbers").innerHTML = "This is not a number, number must be greater or equal to zero"
                    return false
            }
            else if (!(typeof +values && values >= 0)|| values.trim() == "") 
            {
                    document.getElementById("numbers").innerHTML = "Fill in a number";
                    return false;
            }
            else if (values>=0)
            {
                    document.getElementById("numbers").innerHTML = "";
            }
        
            var values1 = document.getElementById("digit1").value;
            if(values1<0)
            {
                    document.getElementById("numbers1").innerHTML = "This is not a number, number must be greater or equal to zero"
                    return false
            }
            else if (!(typeof +values1 && values1 >= 0)|| values1.trim() == "") 
            {
                    document.getElementById("numbers1").innerHTML = "Fill in a number";
                    return false;
            }
            else if (values >= values1)
            {
                    document.getElementById("numbers1").innerHTML = "Highest number is smaller than lowest number";
                    return false;  
            }
            else if (values1 > values)
            {
                    document.getElementById("numbers1").innerHTML = "";
            }
            
            if((document.getElementById("digit").value>0) && (document.getElementById("digit1").value>0))
            {
            document.getElementById("rand").removeAttribute('disabled');
            }
            else
            {
            document.getElementById("rand").setAttribute('disabled', 'disabled');
            }
}

这是在最低数字和最高数字之间生成随机数的函数。

function Random()
        {
        
            var value1 = document.getElementById("digit").value;
            var value2 = document.getElementById("digit1").value;
            
            minvalue= Math.ceil(value1);
            maxvalue= Math.floor(value2);
            
            var random = Math.floor(Math.random()*(maxvalue-minvalue)+1+minvalue);
            document.getElementById("guess").value=random;
            
        }

这是我认为它可能导致整个程序停止工作的部分,在我写下这些代码之后,我的网页没有按照我想要的方式运行。

function RandomNumber()
        {
            var value3 = document.getElementById("digit").value;
            var value4 = document.getElementById("digit1").value;
            
            minvalue= Math.ceil(value3);
            maxvalue= Math.floor(value4);
            
            var random1 = Math.floor(Math.random()*(maxvalue-minvalue)+1+minvalue);
            
            var maxtries=5;
            var counter=0;
            
            var true=document.getElementById("textbox").value;
            while(true!=random1)
            {
                document.getElementById("total").value=total;
                counter +=1;
                
                if(counter>maxtries)
                    {
                        document.getElementById("correct").innerHTML="No more tries"
                    }
                if(true==random1)
                    {
                        document.getElementById("correct").innerHTML="Correct"
                    }
            }
        }
    

当我查看您的代码时,我看到了一些危险信号。 例如true是 JS 中的保留关键字,您不能为其分配值:

var true=document.getElementById("textbox").value;

这必须在您的开发控制台中引发错误。

同样在你的循环中while(true!=random1)既不是true也不是random1被重新分配,所以如果在开始时为真,条件永远不会变为假,因此在这种情况下永远不会离开循环!

一般来说,您应该尝试缩小问题的范围,查看错误,而不是在您提出具体问题的较小片段上寻求帮助。 my web page doesn't perform the way I want it to be这样的声明my web page doesn't perform the way I want it to be很难提供帮助。

暂无
暂无

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

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