我是 JavaScript 的完全初学者,目前正在从事 Odin 项目的 Rock Paper Scissors 项目:
您的游戏将与计算机对战,因此从一个名为
的函数开始,它将随机返回“石头”、“布”或“剪刀”。我们将在游戏中使用这个功能来让电脑玩。 提示:在进入下一步之前,使用控制台确保返回预期输出!computerPlay
编写一个玩单轮剪刀石头布的函数。该函数应采用两个参数 -
和playerSelection
- 然后返回一个声明本轮获胜者的字符串,如下所示:computerSelection
"You Lose! Paper beats Rock"
a.使函数的 playerSelection 参数不区分大小写(以便用户可以输入
、rock
、ROCK
或任何其他变体)。RocK
重要提示:您想要
此函数调用的结果,不是return
它们。 [...]console.log()
编写一个名为
的新函数。调用此函数的game()
函数 inside 进行 5 轮游戏,记录分数并在最后报告胜者或败者。playRound
a.还记得循环吗?这是一个很好的机会,可以用一个来玩这五轮
b.此时,您应该使用
显示每轮的结果以及最后的获胜者。console.log()
c.使用
获取用户的输入。如果需要,请阅读此处的文档。prompt()
d。如果需要,请随意重新处理以前的功能。具体来说,您可能希望将返回值更改为更有用的值。
e。如果您认为有用,请随意创建更多“帮助器”功能。
我尽力不去关注别人是如何解决这个问题的,但我已经这样做了近两天了,我只是想知道我是否走在正确的轨道上?或者我应该完全改变我的做法吗?
function computerPlay() {
const pick = ['rock', 'paper', 'scissors'];
return pick[Math.floor(Math.random() * pick.length)];
}
function playRound(playerSelection, computerSelection) {
if (playerSelection === computerSelection) {
return `It's a tie! you both picked ${playerSelection}`;
} else if (playerSelection === "rock" && computerSelection === "scissors") {
return "You win! Rock beats Scissors";
} else if (playerSelection === "paper" && computerSelection === "rock") {
return "You win! Paper beats Rock";
} else if (playerSelection === "scissors" && computerSelection === "paper") {
return "You win! Scissors beats Paper";
} else {
return `You lose! ${computerSelection} beats ${playerSelection}`;
}
}
const playerSelection = prompt("Start the game by picking among 'Rock, Paper, Scissors'").toLowerCase();
const computerSelection = computerPlay();
console.log(playRound(playerSelection, computerSelection))
您走在正确的道路上。
您根据挑战中给出的要求创建了函数
computerPlay
和 playRound
。
现在您已经可以工作了,您应该继续下一步:创建
game
函数。您已经完成了 prompt
部分。
当你到了需要保持分数的部分时,你会发现
playRound
根据结果返回一个值会更好,比如-1、0、1,因为这样更容易与 一起更新分数。然后该值也可以用于输出消息。
嗨施施施。
对于每个条件,您都会返回一个结果。这意味着您不需要使用 else if,只需使用 if 语句即可。我个人讨厌 else if 条件 也许开关更有利于可读性。