JavaScript Rock Paper Scissors游戏的游戏计数器无法正常工作

我创建了一个Rock Paper Scissors游戏,该游戏在控制台中播放了5个回合,现在正尝试使用DOM操作将其重构为在带有按钮的浏览器中工作。

按钮和圆形功能是:

rock_btn.addEventListener('click',function(){
round('rock');
})

paper_btn.addEventListener('click',function(){
round('paper');
})

scissors_btn.addEventListener('click',function(){
round('scissors');
})


function round (playerSelection) {
let computerSelection = computerPlay();
if (playerSelection === 'rock' && computerSelection === 'scissors') {
        playerScore++
        userScore_span.innerHTML = playerScore;
        result_div.innerHTML = 'You Win\! Rock beats Scissors\!';
    } else if (playerSelection === 'scissors' && computerSelection === 'rock') {
        computerScore++;
        compScore_span.innerHTML = computerScore;
        result_div.innerHTML = 'You Lose\! Rock beats Scissors\!';
    } else if(playerSelection === 'paper' && computerSelection === 'rock') {
        playerScore++;
        userScore_span.innerHTML = playerScore;
        result_div.innerHTML ='You Win\! Paper beats Rock\!';
    } else if(playerSelection === 'rock' && computerSelection === 'paper') {
        computerScore++;
        compScore_span.innerHTML = computerScore;
        result_div.innerHTML = 'You Lose\! Paper beats Rock\!';
    } else if(playerSelection === 'scissors' && computerSelection === 'paper') {
        playerScore++;
        userScore_span.innerHTML = playerScore;
        result_div.innerHTML ='You Win\! Scissors beats Paper\!';
    } else if(playerSelection === 'paper' && computerSelection === 'scissors') {
        computerScore++;
        compScore_span.innerHTML = computerScore;
        result_div.innerHTML = 'You Lose\! Scissors beats Paper\!';
    } else {
        result_div.innerHTML = ('A draw! Please play again!');
    }
}

游戏功能用于计算在控制台中调用时的回合数,但现在无效:

let playerScore = 0;
let computerScore = 0;

function game () {
while (playerScore <= 5 || computerScore <= 5) {
round();
if(playerScore === 5) {
    result_div.innerHTML = 'Player Wins!!!';
}
if(computerScore === 5) {
    result_div.innerHTML = 'Computer Wins!!!';
    }
    }
}

有人可以告诉我如何将游戏功能插入序列中以便计数器工作吗?

苏米·斯特莱斯

欢迎使用Stackoverflow。

由于您依赖的是使用DOM上的按钮进行游戏,因此您应该在round功能结束时检查获胜条件

获胜条件:

function win_condition () {
  if(playerScore === 5) {
    result_div.innerHTML = 'Player Wins!!!';
  }
  if(computerScore === 5) {
    result_div.innerHTML = 'Computer Wins!!!';
  }
}

在您的round职能:

...

else if(playerSelection === 'paper' && computerSelection === 'scissors') {
        computerScore++;
        compScore_span.innerHTML = computerScore;
        result_div.innerHTML = 'You Lose\! Scissors beats Paper\!';
    } else {
        result_div.innerHTML = ('A draw! Please play again!');
    }

  win_condition();
}

您可以通过干燥来重构您的代码,也许可以将规则抽象化(例如,石头在剪刀上赢了,但在纸上失败了,等等),
我在另一篇文章中做了类似的事情。看到这个CodePen

  • 第66至79行定义了获胜条件;
  • 第93到99行的用法。

请注意,它在ReactJS中,因此您需要以不同的方式应用它,但是原理仍然存在:将逻辑抽象出来并干燥代码。

(顺便说一句:全局可变状态最终会咬住您,您可以通过使函数纯净来改善代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JavaScript Rock,Paper,Scissors游戏逻辑

如何为Rock,Paper,Scissor GUI游戏更正我的代码?

我的JavaScript计数器无法正常工作

提示时执行JavaScript(ROCK,PAPER,SCISSORS)

JavaScript Rock Paper Scissors游戏

在JS Rock,Paper,Scissors Game中尝试将span元素设置为等于变量值

在javascript Rock,Paper,剪刀游戏中无法保持得分的问题

为什么我的“ Rock Paper Scissors”程序无法正常工作并使我的页面崩溃?

python Rock Paper Scissors项目中的函数调用问题

需要帮助来修复Rock Paper Scissors Command中的某些错误| Discord.py重写

如何在控制台中显示ROCK,PAPER,SCISSOR GAME Javascript的结果

编程Rock,Paper,剪刀选择组合-Javascript

Rock Paper Scissors Python程序:winOrLose()接受两个参数(给定0)

如何重新启动Rock Paper和Scissors游戏的多重时间,直到用户退出Java

调试我的简单Java游戏(Rock Paper Scissor)

未知选项 '-rock' ,以及在为计算机选择随机('rock'、'paper'、'scissors')时的其他选项

简化 Python 代码(Rock、Paper、Scissors)

JavaScript Paper Scissors Stone - 需要指南

Basic Paper Rock Scissors 玩家选择返回 undefined

Rock Paper Scissors Game (js) - 如何创建圆形函数

Python Rock, Paper, Scissors 将剪刀作为无效选择

Java Rock Paper Scissors - 一切都是平局

Rock, Paper, Scissors 作业的意外结果

Python Rock Paper Scissor bug 我不明白

Java Rock-Paper-Scissors 遊戲不工作

JS + HTML + CSS Rock Paper Scissors 游戏不工作

Python Rock Paper Scissors 程序运行但在第 0 行完成代码

TheOdinProject- Rock,Paper,Scissors- 无法循环 playRound 函数

我需要帮助向 Python Rock Paper Scissor 游戏添加条件以捕获错误输入并引发错误(下面的示例代码)