首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >石头,布,剪刀游戏显示输赢信息

石头,布,剪刀游戏显示输赢信息
EN

Stack Overflow用户
提问于 2019-11-10 09:05:55
回答 2查看 53关注 0票数 0

我目前正在做一个在控制台中播放的Rock, Paper, Scissors项目(这是Odin项目的项目,前端即将推出)。

下面是我的脚本的样子,以供参考:

代码语言:javascript
运行
复制
<script>
    function computerPlay() {
      const choice = ["Rock", "Paper", "Scissors"]

      return choice[Math.floor(Math.random() * choice.length)]
    }

    function play(playerSelection, computerSelection) {
       const lose = console.log('You lose! ' + computerSelection + ' beats ' + playerSelection + '!')
       const win = console.log('You win! ' + playerSelection + ' beats ' + computerSelection + '!')

      if (playerSelection === computerSelection) {
        return console.log("It's a draw! Try again!")
      }

      if (playerSelection === "rock" && computerSelection === "Paper") {
        return lose
      }

      if (playerSelection === "rock" && computerSelection === "Scissors") {
        return win
      }

      if (playerSelection === "paper" && computerSelection === "Scissors") {
        return lose
      }

      if (playerSelection === "paper" && computerSelection === "Rock") {
        return win
      }

      if (playerSelection === "scissors" && computerSelection === "Rock") {
        return lose
      }

      if (playerSelection === "scissors" && computerSelection === "Paper") {
        return win
      }
    }

    function game() {
      playerSelect = prompt("Welcome to Rock, Paper, Scissors! Which one do you choose? \n")
      compSelect = computerPlay()

      console.log("Player chose " + playerSelect)
      console.log("Computer chose " + compSelect)
      console.log(play(playerSelect, compSelect))
    }
  </script>

现在,我的输出显示了任意给定选择的胜负条件:

代码语言:javascript
运行
复制
Player chose rock
Computer chose Rock
You lose! Rock beats rock!
You win! rock beats Rock!

我选择将输赢消息保存在变量中,但我知道我可能在那里搞砸了一些小细节。我尝试添加/删除if else语句,但无论选择什么,这两条消息都会显示。

在我解决这个错误之前,我计划让这两个选择的大小写都不敏感。

任何帮助都将不胜感激,谢谢!:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-10 09:12:34

当您在脚本的开头调用console.log时,并不是保存它们以备以后使用,而是运行它们并将它们的返回值分配给一个变量。你可以做的是让一个赢和一个输的变量都是函数,然后在玩家赢/输的时候调用它们。

代码语言:javascript
运行
复制
function computerPlay() {
      const choice = ["Rock", "Paper", "Scissors"];

      return choice[Math.floor(Math.random() * choice.length)];
    }

    function play(playerSelection, computerSelection) {
    // we are storing a function into the win and lose variable.
       const lose = () => console.log('You lose! ' + computerSelection + ' beats ' + playerSelection + '!');
       const win = () => console.log('You win! ' + playerSelection + ' beats ' + computerSelection + '!');

      if (playerSelection === computerSelection) {
        return console.log("It's a draw! Try again!")
      }

      if (playerSelection === "rock" && computerSelection === "Paper") {
        return lose()
      }

      if (playerSelection === "rock" && computerSelection === "Scissors") {
        return win()
      }

      if (playerSelection === "paper" && computerSelection === "Scissors") {
        return lose()
      }

      if (playerSelection === "paper" && computerSelection === "Rock") {
        return win()
      }

      if (playerSelection === "scissors" && computerSelection === "Rock") {
        return lose()
      }

      if (playerSelection === "scissors" && computerSelection === "Paper") {
        return win()
      }
    }

    function game() {
      playerSelect = 'rock';
      compSelect = computerPlay();

      console.log("Player chose " + playerSelect);
      console.log("Computer chose " + compSelect);
      // You don't need to console.log the return value of a console.log
      play(playerSelect, compSelect);
    }
    
    game();

票数 1
EN

Stack Overflow用户

发布于 2019-11-10 09:15:58

尝试将losewin变量更改为它们的字符串值,而不是console.log("/message/")

您的losewin变量声明已经在打印它们的消息,而不是存储它们,因为您的代码调用了console.log()的一个实例。

这样,当您返回成功或失败时,您的console.log(play(playerSelect, compSelect))将接收一个字符串,然后将其打印出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58784943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档