如何让我的剪刀石头布游戏刷新上按一下按钮
How to make my rock, paper, scissors game refresh on button click?
这不是重复的,因为window.load()会在3秒后刷新,而不会让用户完全看到结果
我想做的是让游戏在用户点击另一个按钮做出新的选择时自动重置,而不必刷新页面点击"重置"按钮。
这是否涉及在再次运行脚本之前清除innerhtml并重置变量onclick ?
我的代码在这里:http://jsbin.com/yuvalucupo/edit?html,css,js
//var rock = document.getElementById("rock");
//var paper = document.getElementById("paper");
//var scissors = document.getElementById("scissors");
var screen = document.getElementById("screen");
var compAnswer = Math.random();
//Set computer value
if (compAnswer >= 0 && compAnswer <= 0.33) {
compAnswer = "rock";
} else if (compAnswer >= 0.34 && compAnswer <= 0.66) {
compAnswer = "paper";
} else {
compAnswer = "scissors";
}
function result(choice1, choice2) {
if (choice1 === choice2) {
screen.innerHTML = "<p>It's a tie!</p>";
}
//Rock Start
else if (choice1 === "rock" && choice2 === "scissors") {
screen.innerHTML = "<p>Rock Wins!</p>";
} else if (choice1 === "rock" && choice2 === "paper") {
screen.innerHTML = "<p>Paper Wins!</p>";
}
//End Rock
//Paper Start
else if (choice1 === "paper" && choice2 === "scissors") {
screen.innerHTML = "<p>Scissors Wins!</p>";
} else if (choice1 === "paper" && choice2 === "rock") {
screen.innerHTML = "<p>Paper Wins</p>!";
}
//Paper End
//Scissors Start
else if (choice1 === "scissors" && choice2 === "paper") {
screen.innerHTML = "<p>Scissors Wins</p>";
} else if (choice1 === "scissors" && choice2 === "rock") {
screen.innerHTML = "<p>Rock Wins</p>";
}
//Scissors End
}
//Display Computer's Answer
function displayCompAnswer() {
var computer = document.getElementById("computerAnswer");
computer.innerHTML = compAnswer;
}
#screen, #computerAnswer {
height: 100px;
width: 250px;
background-color: lightgrey;
border: 1px solid black;
}
<div id="screen"></div>
<button id="rock" onclick="userAnswer = 'rock'; result(userAnswer, compAnswer); displayCompAnswer();">Rock</button>
<button id="paper" onclick="userAnswer = 'paper'; result(userAnswer, compAnswer); displayCompAnswer();">Paper</button>
<button id="scissors" onclick="userAnswer = 'scissors'; result(userAnswer, compAnswer); displayCompAnswer();">Scissors</button>
<div id="computerAnswer"></div>
你可以这样做来"重置"你的游戏:
function clearMessage(event) {
event.preventDefault(); // Stops the page from refreshing
var screen = document.getElementById("screen");
screen.innerHTML = '';
}
那么你可以有一个像这样的重置按钮
<button onclick="clearMessage(event)">Reset</button>
以下是我在查看代码时的一些其他想法。看到每个函数只做一件事了吗?// input: 0 = rock, 1 = paper and 2 = scissors
function makeUserSelection(choice) {
var computerChoice = getCompAnswer();
var result = getResult(choice, computerChoice);
displayResult(result);
}
// output: 0 = rock, 1 = paper and 2 = scissors
function getCompAnswer() {
var rand = Math.random();
if (compAnswer <= 0.33) {
return 0;
}
return (compAnswer <= 0.66) ? 1 : 2;
}
// input: 0 = rock, 1 = paper and 2 = scissors
// output: 0 = draw, 1 = user wins and -1 = user loses.
function getResult(userValue, computerValue) {
if(userValue === computerValue) {
return 0; // draw
}
return ((userValue + 1) % 3 === computerValue) ? return -1 : 1;
}
displayMessage(message) {
var screen = document.getElementById('screen');
screen.innerHTML = '<p>' + message + '</p>';
}
function displayResult(result) {
messages = ["It's a draw", "You lose", "You win"];
displayMessage(messages[result]);
}
下面是我更新按钮的方法:
<div id="screen"></div>
<button id="rock" onclick="makeUserSelection(0);">Rock</button>
<button id="paper" onclick="makeUserSelection(1);">Paper</button>
<button id="scissors" onclick="makeUserSelection(2);">Scissors</button>
<button id="reset" onclick="clearMessage(event);">Reset</button>
<div id="computerAnswer"></div>
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 多个单选按钮组相互干扰
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- Javascript按钮下拉列表
- jquery试图按名称获取按钮位置
- 漂亮照片图片库中的Facebook赞按钮
- 扩展移相器按钮类不工作
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 单击按钮以等待单击按钮
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 按下按钮时保存cookie
- 只需按一下回车键即可触发两个按钮
- 听一下改变按钮的类名
- 显示随机项目从数组上按一下按钮,没有两个在一排
- 如何让我的剪刀石头布游戏刷新上按一下按钮
- 我能推一下";背面";按钮在铬与javascript