Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript游戏的问题_Javascript_Html - Fatal编程技术网

Javascript游戏的问题

Javascript游戏的问题,javascript,html,Javascript,Html,我正在用Javascript开发一个非常简单的“猜我的数字”游戏,但是,我无法让它正常工作 该程序应该选择一个介于1和10之间的随机整数,并允许用户尽可能多地尝试和猜测该数字,以获得正确的结果。如果用户猜测的数字低于正确的数字,则程序应显示“您的猜测过低”消息,这与猜测过高或正确时的情况相同。程序必须在网页上显示消息,而不是在警报或任何类型的弹出窗口中。此外,该程序应该保留一个用户猜测的数字的运行列表,并在每次用户猜测时显示在页面上(我希望该列表显示在我的标题“以下是您迄今为止猜到的数字:”)。

我正在用Javascript开发一个非常简单的“猜我的数字”游戏,但是,我无法让它正常工作

该程序应该选择一个介于1和10之间的随机整数,并允许用户尽可能多地尝试和猜测该数字,以获得正确的结果。如果用户猜测的数字低于正确的数字,则程序应显示“您的猜测过低”消息,这与猜测过高或正确时的情况相同。程序必须在网页上显示消息,而不是在警报或任何类型的弹出窗口中。此外,该程序应该保留一个用户猜测的数字的运行列表,并在每次用户猜测时显示在页面上(我希望该列表显示在我的标题“以下是您迄今为止猜到的数字:”)。最后,如果用户试图输入一个他们已经使用过的号码,程序应该显示一条“你已经尝试使用该号码”的消息

这是我的代码,以及我已经创建并仍在使用的JSFIDLE

<html>
    <head>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
        <meta content="utf-8" http-equiv="encoding">
        <title>Guess My Number</title>

        <script type = "text/javascript">
            var tries = [];
            game = {
                 num : 0,
                 turns : 1,
                 reset : function() {
                        this.turns = 1;
                        this.newNum();
                 },
                 newNum : function() {
                    this.num = parseInt(Math.random(), 10) + 1;
                 },
                 guessNumber : function(guess) {
                        try {
                            guess = parseInt(guess, 10);
                        }
                        catch (e) {
                            document.getElementById("guess").value = "Enter a guess.";
                            this.turns++;
                            return false;
                        }
                        if (guess == this.num) {
                            document.getElementById("result").value = "Correct! It took you " + this.turns + " tries to guess my number.";
                            tries.push(document.getElementById("guess").value);
                            display();
                            document.getElementById("guess").value = " ";
                            return true;
                        }
                        else if(guess > this.num) {
                            document.getElementById("result").value = "Your guess is too high. Try again.";
                            tries.push(document.getElementById("guess").value;
                            display();
                            document.getElementById("guess").value = " ";
                            return false;
                        }
                        else if(tries.indexOf(guess) != -1 {   
                            document.getElementById("result").value = "You have already guessed that number. Try again.";
                            document.getElementById("guess").value = " ";
                            return false;
                        }
                        else {
                            document.getElementById("result").value = "Your guess is too low. Try again.";
                            tries.push(document.getElementById("guess").value;
                            display();
                            document.getElementById("guess").value = " ";
                            return false;  
                        }
                    }
                    function display() {
                        var number = ";
                            for(i=0; i<tries.length; i++) {
                                    number += tries[i] + "<br >";
                            }
                            document.getElementById("tries").innerHTML = number;
                    }
                    function guessNumber() {
                        var guess = document.getElementById("guess").value;
                        game.guessNumber(guess);
                        document.getElementById("guess").value = " ";
                    }
                    function resetGame() {
                        game.reset();
                        document.getElementById("guess").value = " ";
                    }
                    resetGame();
            }
        </script>
    </head>

    <body>
        <h1>Would You Like To Play A Game?</h1>
        <h3>Directions:</h3>
                <p>
                The game is very simple. I am thinking of a non-decimal number between 1 and 10, it is your job to guess what that number is. If you guess incorrectly on your first attempt, don't worry. You can keep guessing until you guess my number.
            </p>
        <h3>Thanks for playing and good luck!</h3>
        <h3>Created by Beth Tanner</h3>
        <p>Your Guess:
            <input type = "text" id = "guess" size = "10" />
            <br />
            <input type = "button" value = "Submit Guess" onclick = "guessNumber()" onclick = "display()" />
            <input type = "reset" value = "Reset Game" onclick = "resetGame()" />
        </p>
        <h3>How'd you do?</h3>
            <div id = "result">
                <input type = "text" id = "result" size = "20" />
            </div>
        <h3>Here are the numbers you've guessed so far:</h3>
    </body>
</html>

如有任何建议,将不胜感激。我觉得这只是一个非常简单的项目,我想得太多了,因为我觉得它不起作用

您的代码中有很多问题。只提几个

1-此处未闭合的括号 应该是

tries.push(document.getElementById("guess").value);
else if(tries.indexOf(guess) != -1) { 
2-此处表达式未以右括号结尾 应该是

tries.push(document.getElementById("guess").value);
else if(tries.indexOf(guess) != -1) { 
3-函数内部函数的错误声明
函数显示(){
var number=“;

对于(i=0;i好的,因为一些答案一定已经让您知道了脚本和HTML代码有多少错误..从缺少括号到相同ID再到缺少元素。我已经纠正了它们,现在正在工作:

<h1>Would You Like To Play A Game?</h1>
<h3>Directions:</h3>
    <p>
        The game is very simple. I am thinking of a non-decimal number between 1 and 10, it is your job to guess what that number is. If you guess incorrectly on your first attempt, don't worry. You can keep guessing until you guess my number.
</p>
<h3>Thanks for playing and good luck!</h3>
<h3>Created by Beth Tanner</h3>
<p>Your Guess:
    <input type = "text" id = "guess" size = "10" />
    <br />
    <input type = "button" value = "Submit Guess" onclick = "guessNumber()" onclick = "display()" />
    <input type = "reset" value = "Reset Game" onclick = "resetGame()" />
</p>
<h3>How'd you do?</h3>

    <input type = "text" id = "result" size = "20" />

<h3>Here are the numbers you've guessed so far:</h3>
<p id='tries'></p>
你想玩游戏吗?
方向:

这个游戏很简单。我想到的是一个介于1和10之间的非十进制数字,你的工作就是猜这个数字是什么。如果你第一次猜错了,别担心。你可以一直猜,直到你猜到我的数字为止。

谢谢你的演奏,祝你好运! 贝丝·坦纳创作 你的猜测是:

你好吗? 以下是您迄今为止猜到的数字:

脚本:

var tries = [];
game = {
    num : 0,
    turns : 1,
    reset : function() {
        this.turns = 1;
        this.newNum();
    },
    newNum : function() {
        this.num = parseInt(Math.random() * 10) + 1;
    },
    guessNumber : function(guess) {
        try {        
            guess = parseInt(guess, 10);
        }
        catch (e) {
            document.getElementById("guess").value = "Enter a guess.";
            this.turns++;
            return false;
        }
        alert(guess+ ' '+this.num);
        if (guess == this.num) {
            document.getElementById("result").value = "Correct! It took you " + this.turns + " tries to guess my number.";
            tries.push(document.getElementById("guess").value);
            display();
            document.getElementById("guess").value = " ";
            return true;
        }
        else if(tries.indexOf(guess) != -1) {   
            document.getElementById("result").value = "You have already guessed that number. Try again.";
            document.getElementById("guess").value = " ";
            return false;
        }
        else if(guess > this.num) {
            document.getElementById("result").value = "Your guess is too high. Try again.";
            tries.push(document.getElementById("guess").value);
            display();
            document.getElementById("guess").value = " ";
            return false;
        }
        else if(guess < this.num){          
            document.getElementById("result").value = "Your guess is too low. Try again.";
            tries.push(document.getElementById("guess").value);
            display();
            document.getElementById("guess").value = " ";
            return false;  
        }


    }
}
    function display() {
        var number = "";
        for(i=0; i<tries.length; i++) {
            number += tries[i] + "<br >";
        }
        document.getElementById("tries").innerHTML = number;
    }
    function guessNumber() {
        var guess = document.getElementById("guess").value;
        game.guessNumber(guess);
        document.getElementById("guess").value = " ";
    }
    function resetGame() {
        game.reset();
        document.getElementById("guess").value = " ";
    }
    resetGame();
var尝试=[];
游戏={
数字:0,
结果:1,
重置:函数(){
这1.5圈=1;
this.newNum();
},
newNum:function(){
this.num=parseInt(Math.random()*10)+1;
},
猜测编号:函数(猜测){
试试{
guess=parseInt(guess,10);
}
捕获(e){
document.getElementById(“guess”).value=“输入猜测。”;
这个.turns++;
返回false;
}
警报(猜测+''+此.num);
if(guess==this.num){
document.getElementById(“result”).value=“正确!您花了“+this.turns+”试着猜我的号码。”;
tries.push(document.getElementById(“guess”).value);
显示();
document.getElementById(“猜测”).value=“”;
返回true;
}
else如果(尝试.indexOf(猜测)!=-1){
document.getElementById(“结果”).value=“您已经猜到了那个数字。请重试。”;
document.getElementById(“猜测”).value=“”;
返回false;
}
else if(猜测>this.num){
document.getElementById(“结果”).value=“您的猜测太高。请重试。”;
tries.push(document.getElementById(“guess”).value);
显示();
document.getElementById(“猜测”).value=“”;
返回false;
}
else如果(猜测对于(i=0;i)您的JavaScript格式非常糟糕。请转到并确保所有错误都已消除。
else if(trys.indexOf(guess)!=-1{
来吧……您是认真的吗?
var number=”
一个双引号…游戏的
定义在哪里?你是否缺少
var
?@AndreasFurster我实际上同意你最初的看法,删除了我的答案。多亏了你的帮助,我几乎完美地运行了这个游戏。我现在唯一的问题是让它显示一个如果用户试图输入一个他们已经猜到的数字,“你已经尝试了那个数字”消息。有什么办法吗?因为我的else if(trys.indexOf(guess)!=-1){代码工作不正常?太棒了,多谢了!只需要修复一些小细节,比如如果用户输入同一个数字两次,它就不会显示消息,重置按钮也不会清除先前猜测的数字列表,但除此之外,它是完美的。
<h1>Would You Like To Play A Game?</h1>
<h3>Directions:</h3>
    <p>
        The game is very simple. I am thinking of a non-decimal number between 1 and 10, it is your job to guess what that number is. If you guess incorrectly on your first attempt, don't worry. You can keep guessing until you guess my number.
</p>
<h3>Thanks for playing and good luck!</h3>
<h3>Created by Beth Tanner</h3>
<p>Your Guess:
    <input type = "text" id = "guess" size = "10" />
    <br />
    <input type = "button" value = "Submit Guess" onclick = "guessNumber()" onclick = "display()" />
    <input type = "reset" value = "Reset Game" onclick = "resetGame()" />
</p>
<h3>How'd you do?</h3>

    <input type = "text" id = "result" size = "20" />

<h3>Here are the numbers you've guessed so far:</h3>
<p id='tries'></p>
var tries = [];
game = {
    num : 0,
    turns : 1,
    reset : function() {
        this.turns = 1;
        this.newNum();
    },
    newNum : function() {
        this.num = parseInt(Math.random() * 10) + 1;
    },
    guessNumber : function(guess) {
        try {        
            guess = parseInt(guess, 10);
        }
        catch (e) {
            document.getElementById("guess").value = "Enter a guess.";
            this.turns++;
            return false;
        }
        alert(guess+ ' '+this.num);
        if (guess == this.num) {
            document.getElementById("result").value = "Correct! It took you " + this.turns + " tries to guess my number.";
            tries.push(document.getElementById("guess").value);
            display();
            document.getElementById("guess").value = " ";
            return true;
        }
        else if(tries.indexOf(guess) != -1) {   
            document.getElementById("result").value = "You have already guessed that number. Try again.";
            document.getElementById("guess").value = " ";
            return false;
        }
        else if(guess > this.num) {
            document.getElementById("result").value = "Your guess is too high. Try again.";
            tries.push(document.getElementById("guess").value);
            display();
            document.getElementById("guess").value = " ";
            return false;
        }
        else if(guess < this.num){          
            document.getElementById("result").value = "Your guess is too low. Try again.";
            tries.push(document.getElementById("guess").value);
            display();
            document.getElementById("guess").value = " ";
            return false;  
        }


    }
}
    function display() {
        var number = "";
        for(i=0; i<tries.length; i++) {
            number += tries[i] + "<br >";
        }
        document.getElementById("tries").innerHTML = number;
    }
    function guessNumber() {
        var guess = document.getElementById("guess").value;
        game.guessNumber(guess);
        document.getElementById("guess").value = " ";
    }
    function resetGame() {
        game.reset();
        document.getElementById("guess").value = " ";
    }
    resetGame();