我正在学习Javascript,我试图找出为什么我的“Rock paper scissors”游戏不能正常工作。 。

时间:2015-04-26 18:21:40

标签: javascript html

好的,所以我确定这段代码充满了不准确之处,但是当我在CodeAcademy网站上完成本课程然后尝试将其复制/粘贴到我自己的javascript.html文件中时,我感到非常困惑(我保留了这些文件)我正在学习的东西)代码不起作用!然后我将它插入jsfiddle以使用它仍然无法让它工作。

这是我从CodeAcademy复制/粘贴的原始代码:

http://jsfiddle.net/p46pnwvx/

使用Javascript:

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if(computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
} 

console.log("Player: " + userChoice);
console.log("Computer: " + computerChoice);

var compare = function (choice1, choice2) {
    if (choice1 === choice2) {
        return "The result is a tie!";
    }
    else if (choice1 === "rock") {
        if (choice2 === "scissors") {
            return "Rock Wins!";
        }
        else  {
            return "Paper Wins!";
        }
    }
    else if (choice1 === "paper") {
        if (choice2 === "rock") {
            return "Paper Wins!";
        }
        else {
            return "Scissors win!";
        }
    }
    else if (choise1 === "scissors") {
        if (choice2 === "paper") {
            return "Scissors win!";
        }
        else {
            return "Rock wins!";
        }
    }
}

console.log(compare(userChoice, computerChoice));

当它加载时,PROMPT框出现,但没有其他任何事情发生。

这是我正在玩的东西,试图让游戏开始并重置一个按钮,我认为这比玩游戏更有用(和教育性),并开始自己的游戏。

http://jsfiddle.net/o9ckcy52/

HTML

<h1>Rock, Paper, Scissors Game!</h1>

        <button id="start" type="button" onclick="startGame()">Wanna Play?</button>
<p id="choice"></p>
<p id="result"></p>

的Javascript

function startGame(){

        document.getElementById("start").innerHTML = "Play again?"; // reset's button
        return prompt("Do you choose rock, paper or scissors?");

        var userChoice = startGame(); // stores result of startGame as user's choice
        var computerChoice = Math.random(); // randomly creates computer's choice
        if (computerChoice < 0.34) {
            computerChoice = "rock";
        } else if(computerChoice <= 0.67) {
            computerChoice = "paper";
        } else {
            computerChoice = "scissors";
        } 

        function compare(choice1, choice2) { //compares user's choice and computer's choice
            if (choice1 === choice2) {
                return "The result is a tie!";
            }
            else if (choice1 === "rock") {
                if (choice2 === "scissors") {
                    return "Rock Wins!";
                }
                else  {
                    return "Paper Wins!";
                }
            }
            else if (choice1 === "paper") {
                if (choice2 === "rock") {
                    return "Paper Wins!";
                }
                else {
                    return "Scissors win!";
                }
            }
            else if (choise1 === "scissors") {
                if (choice2 === "paper") {
                    return "Scissors win!";
                }
                else {
                    return "Rock wins!";
                }
            }
        }

        document.getElementById("choice").innerHTML= // prints user and computer selections
        "Player: " + userChoice + /r
        "Computer: " + computerChoice;

        document.getElementById("result").innerHTML = // prints result of selection comparisons
            (compare(userChoice, computerChoice));

    }

这里的html工作正常,但单击按钮时没有任何反应。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

我更新了你的代码。只有一些小问题得到解决。例如,应将userChoice分配给提示。此外,您的正则表达式/r无效,也应该用引号括起来,后者变为"\r"。你也拼错了choice1之一。

运行以下代码段:

function startGame() {
    document.getElementById("start").innerHTML = "Play again?"; // reset's button
    var userChoice = prompt("Do you choose rock, paper or scissors?");
    var computerChoice = Math.random(); // randomly creates computer's choice
    if (computerChoice < 0.34) {
        computerChoice = "rock";
    } else if (computerChoice <= 0.67) {
        computerChoice = "paper";
    } else {
        computerChoice = "scissors";
    }

    function compare(choice1, choice2) { //compares user's choice and computer's choice
        if (choice1 === choice2) {
            return "The result is a tie!";
        } else if (choice1 === "rock") {
            if (choice2 === "scissors") {
                return "Rock Wins!";
            } else {
                return "Paper Wins!";
            }
        } else if (choice1 === "paper") {
            if (choice2 === "rock") {
                return "Paper Wins!";
            } else {
                return "Scissors win!";
            }
        } else if (choice1 === "scissors") {
            if (choice2 === "paper") {
                return "Scissors win!";
            } else {
                return "Rock wins!";
            }
        }
    }

    document.getElementById("choice").innerHTML = // prints user and computer selections
    "<pre>" +
    "Player: " + userChoice + "\r" +
    "Computer: " + computerChoice +
    "</pre>";

    document.getElementById("result").innerHTML = // prints result of selection comparisons
    (compare(userChoice, computerChoice));
}

document.getElementById("start").onclick = startGame;
<h1>Rock, Paper, Scissors Game!</h1>

<button id="start">Wanna Play?</button>
<p id="choice"></p>
<p id="result"></p>

答案 1 :(得分:1)

1-使用http://jsbeautifier.org/来清理你的js代码,你正在混合Spaces和Tabs。它还会清理你的代码对齐。

2- return prompt("Do you choose rock, paper or scissors?");

在任何代码执行之前,

将始终返回。

3-您是从右键单击按钮调用startGame()吗?那你为什么要从它自己的功能里面再次调用呢?

表示该功能缺少右括号}。

var userChoice = startGame();