我正在为“数字猜猜游戏”构建代码。每次播放后如何更改比分?
这是我第一次在线课程的无偿分配。我对使用什么方法来实现某些结果没有基本的了解,因此我为菜鸟问题预先道歉。
我陷入了任务5:
创建一个updateScore()函数。此功能将用于在每个回合之后正确增加获胜者的分数。
此功能:
具有单个参数。此参数将是代表获胜者的字符串值。 根据传递给updateScore的获胜者,将分数变量(humanScore或computerScore)增加1。传入的字符串将是“ human”或“ computer”。 不需要返回任何值。
首先:为什么我需要首先创建一个功能来更改记分板?在“ compareGuesses”功能中设置获胜者之后,我是否可以编写代码来更改它?
这是我到目前为止所拥有的:
//在下面编写您的代码:
let humanScore = 0;
let computerScore = 0;
let currentRoundNumber = 1;
const generateTarget = Math.floor(Math.random() * 9)
const compareGuesses = (humanGuess, computerGuess,targetGuess) => {
if (Math.abs (humanGuess-targetGuess() )<Math.abs( computerGuess-targetGuess() )){ return true;
} else if (Math.abs (humanGuess-targetGuess() )> Math.abs( computerGuess-targetGuess() )){
return false;
}
}
const updateScore = (winner) => {
if (compareGuesses= true) {
}
答案 0 :(得分:3)
首先:为什么我需要创建一个函数来更改 计分板放在首位?我不能只是编写代码来更改它 在“ compareGuesses”功能中设置赢家之后?
是的,您可以这样做,但是为了帮助提高代码的可维护性(以及许多其他事情),将较大的应用程序/问题的独立块或模块拆分为较小的功能通常是个好主意。这个想法被称为decomposition。因此,通过创建诸如updateScore
和compareGuesses
之类的单独函数,可以将更大的问题分解为更小的,更易于维护的问题。
现在使用您的updateScore
函数。您的描述说它将接受"human"
或"computer"
的字符串。您需要检查获胜者是"human"
还是"computer"
,并更新相关的得分变量。这是一个有关如何实现此目的的示例:
const updateScore = (winner) => {
if(winner === 'human') {
humanScore += 1; // humanScore++; will also work here
} else if(winner === 'computer') {
computerScore += 1; // computerScore++; will also work here
}
}
答案 1 :(得分:0)
因此,如果您想提高球员的得分(如果他猜对了数字)而希望提高计算机的得分(如果猜对不正确的话),则该功能可能如下所示:
function score(humanScore, computerScore) {
if (humanGuess - computerGuess === 0) {
humanScore += 1
}
else {
computerScore += 1
}
alert(humanScore)
alert(computerScore)
}
当然,您需要调用如下函数:
score(humanScore, computerScore)
答案 2 :(得分:0)
尝试这样的事情:
class Game {
humanScore = 0;
computerScore = 0;
currentRoundNumber = 1;
target = 0;
generateTarget() {
this.target = Math.floor(Math.random() * 9)
}
nextRound(humanGuess, computerGuess) {
this.currentRoundNumber++;
if (Math.abs(humanGuess-this.target) < Math.abs(computerGuess-this.target))
this.humanScore++;
else if (Math.abs(humanGuess-this.target) > Math.abs(computerGuess-this.target))
this.computerScore++;
}
}
const game = new Game();
game.generateTarget();
game.nextRound(333, 42);
PS:StackOverflow不在这里做作业。 :)