我走在正确的道路上吗?剪刀石头布(Javascript)

问题描述 投票:0回答:2

我是 JavaScript 的完全初学者,目前正在从事 Odin 项目的 Rock Paper Scissors 项目

  1. 您的游戏将与计算机对战,因此从一个名为

    computerPlay
    的函数开始,它将随机返回“石头”、“布”或“剪刀”。我们将在游戏中使用这个功能来让电脑玩。 提示:在进入下一步之前,使用控制台确保返回预期输出!

  2. 编写一个玩单轮剪刀石头布的函数。该函数应采用两个参数 -

    playerSelection
    computerSelection
    - 然后返回一个声明本轮获胜者的字符串,如下所示:
    "You Lose! Paper beats Rock"

    a.使函数的 playerSelection 参数不区分大小写(以便用户可以输入

    rock
    ROCK
    RocK
    或任何其他变体)。

  3. 重要提示:您想要

    return
    此函数调用的结果,不是
    console.log()
    它们。 [...]

  4. 编写一个名为

    game()
    的新函数。调用此函数的
    playRound
    函数 inside 进行 5 轮游戏,记录分数并在最后报告胜者或败者。

    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))
javascript function for-loop if-statement return
2个回答
1
投票

您走在正确的道路上。

您根据挑战中给出的要求创建了函数

computerPlay
playRound

现在您已经可以工作了,您应该继续下一步:创建

game
函数。您已经完成了
prompt
部分。

当你到了需要保持分数的部分时,你会发现

playRound
根据结果返回一个值会更好,比如-1、0、1,因为这样更容易与 一起更新分数。然后该值也可以用于输出消息。


-2
投票

嗨施施施。

对于每个条件,您都会返回一个结果。这意味着您不需要使用 else if,只需使用 if 语句即可。我个人讨厌 else if 条件 也许开关更有利于可读性。

© www.soinside.com 2019 - 2024. All rights reserved.