javascript - 记分员不会止步于得分
问题描述
我一直在构建一个记分器作为一个有趣的项目,但是当我试图让它在游戏的获胜分数处停止时,它并没有停止。任何帮助,将不胜感激!
var playerOne = document.querySelector("#p1")
var playerTwo = document.querySelector("#p2")
var playerOneScore = 0
var playerTwoScore = 0
var score1 = document.querySelector("#Score1")
var score2 = document.querySelector("#Score2")
var gameOver = false;
var winningScore = 5
playerOne.addEventListener("click", function(){
if(!gameOver){
playerOneScore++
if(playerOneScore === winningScore){
gameover = true;
}
score1.textContent = playerOneScore;
}
});
playerTwo.addEventListener("click", function(){
if(!gameOver){
playerTwoScore++
if(playerTwoScore === winningScore){
gameover = true;
}
score2.textContent = playerTwoScore;
}
});
<h1><span id="Score1">0</span> to <span id="Score2">0</span></h1>
<p>Playing to: 5</p>
<input type="number" id="winningScore">
<button id="p1">Player One</button>
<button id="p2">Player Two</button>
<button id="reset">Reset</button>
<script src="index.js"></script>
解决方案
看看你的 gameover 和 gameOver 变量......应该是
gameOver=true
if (!gameOver) {
playerOneScore++
if (playerOneScore === winningScore) {
gameOver = true;
}
score1.textContent = playerOneScore;
}
此外,这应该看起来更好,更易读......考虑重构你的 eventListener 回调实现。同样适用于其他玩家。
playerOne.addEventListener("click", function() {
if (gameOver) return;
playerOneScore++
gameOver = playerOneScore === winningScore;
score1.textContent = playerOneScore;
});
推荐阅读
- python - 在 DynamoDB 中处理数字的最佳实践是什么(Python + boto3)
- bash - 替换文本文件中的日期
- java - 如何使用来自另一个服务的令牌授权其余 API
- java - 使用 Java 的 Spark Big Query 连接器问题
- r - 你可以在 R 的 case_when 语句中使用 for 循环吗?
- java - 在 HTTP 503 上重新建立 TCP 连接
- python - DataFrame 到 OrderedDicts 列表 - 如何保留订单?
- php - 通过 API 从 Google Cloud 访问 YouTube 帐户以获取统计信息
- asp.net-core - Web API POST - 在邮递员中给出 500 错误 - 如何解决?
- reactjs - 如何将今天的日期设置为 Material UI 日期选择器的默认日期