当前位置: 首页 > 知识库问答 >
问题:

石头布剪刀在返回前做了一个额外的循环,不知道该如何修复

上官华池
2023-03-14

如果你向下滚动到我的游戏循环注释,我有我的函数Game()。我希望我的游戏在玩家点数或电脑点数达到5时停止循环。它们在if-else语句中都有单独的返回。我的问题是,它不是添加最后一点然后返回“you win”或“you lose”语句,而是再次提示用户,然后返回“you win”或“you lose”。它不会干扰点,但是这是一个我仍然想要修复的小错误。

当我查看我的代码时,我知道我的警报(playound)在我的game继续html" target="_blank">声明之后,我想知道它的位置是否是它再次发生然后返回我的结果的原因。如果这是问题,我如何继续我的游戏循环,直到有人达到5分?如果这不是问题,那么我可以得到关于我应该尝试什么方法的提示吗?谢谢。

let playerPoints = 0;
let computerPoints = 0;


// Computer Selection
function computerPlay() {

    const compAnswer = options[Math.floor(Math.random() * options.length)];
    return compAnswer;
}
// One round of the game results

function playRound(playerSelection, computerSelection) {

    let rock = options[0];
    let paper = options[1];
    let scissors = options[2];
    let youWin = "You Win! ";
    let youLose = "You Lose! ";
    let rockWin = "Rock beats scissors.";
    let scissorWin = "Scissors beats paper.";
    let paperWin = "Paper beats rock.";
    let tie = "It's a tie, no points added."
    if (playerSelection === computerSelection) {
        console.log(playerPoints, computerPoints);
        return tie;
    } else if (playerSelection === rock && computerSelection === scissors) {
        playerPoints = playerPoints + 1;
        console.log(playerPoints, computerPoints);
        return youWin + rockWin;

    } else if (playerSelection === rock && computerSelection == paper) {
        computerPoints = computerPoints + 1;
        console.log(playerPoints, computerPoints);
        return youLose + paperWin;

    } else if (playerSelection === scissors && computerSelection === rock) {
        computerPoints = computerPoints + 1;
        console.log(playerPoints, computerPoints)
        return youLose + rockWin;
    } else if (playerSelection === scissors && computerSelection === paper) {
        playerPoints = playerPoints + 1;
        console.log(playerPoints, computerPoints)
        return youWin + scissorWin;
    } else if (playerSelection === paper && computerSelection === rock) {
        playerPoints = playerPoints + 1;
        console.log(playerPoints, computerPoints);
        return youWin + paperWin;
    } else if (playerSelection === paper && computerSelection === scissors) {
        computerPoints = computerPoints + 1;
        console.log(playerPoints, computerPoints);
        return youLose + scissorWin;
    } else {
        console.log(playerPoints, computerPoints);
        return "I'm sorry please try another answer"
    }


};
//Game loop
function game() {

    let gameContinue = true;
    while (gameContinue) {
        const computerSelection = computerPlay();
        const playerSelection = prompt("Choose your weapon");

        if (playerPoints < 5 && computerPoints < 5) {
            gameContinue = true;
            alert(playRound(playerSelection, computerSelection));
        } else if (playerPoints === 5) {
            gameContinue = false;
            console.log("You win");
        } else if (computerPoints === 5) {
            gameContinue = false;
            console.log("You Lose")
        }
    }

};

game();

共有1个答案

赫连坚
2023-03-14

这是代码中的逻辑错误。我很高兴告诉你答案,但也许我可以给你一个提示,让你可以从中学习。

想象玩家刚刚赢得了他的第5场比赛。

把你的手指放在这行代码上:

 alert(playRound(playerSelection, computerSelection));

在这一点上,我们知道playerPoints是5。

在用户解除警报对话框后,警报函数返回后,接下来运行哪行代码?

这里还有另一个提示:gameContinue在警报语句返回后保持为true。您希望运行哪行代码将其设置为false?

 类似资料:
  • 我正在用java编写一个石头剪刀游戏,但有些事情我想不出来。首先,我想让用户可以输入“Rock”或“paper”,而不是1、2和3,但我想不出来。其次,我应该使用嵌套的if-else语句,但我也不知道如何使用我所做的。我的代码如下 导入Java . util . scanner;公共类RockGame {

  • 我写了一个“石头、布、剪刀”游戏: 它可以工作,但是,这是很多s,我知道这对于语句时,问题是我不知道如何。 我试着根据输入使用一个返回语句:“返回0代表石头,1代表布,2代表剪刀”,然后使用一个条件来表示“嘿,如果一个玩家返回1,另一个玩家也返回1,那么就把‘平局’放进去,其他可能的结果也一样。”。 我试图将一个数字与结果联系起来:

  • 本文向大家介绍Python实现石头剪刀布游戏,包括了Python实现石头剪刀布游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一个简单的小游戏,分享给大家。 利用随机函数制作石头剪刀布小游戏 程序只运行一次 每次出拳一次要运行一次,很麻烦,要让程序一直运行 在程序中加个while条件就解决啦 长期玩游戏不利于身心健康,玩游戏要有度 那就默认游戏一开始有三次机会吧,每玩一次减掉一次

  • 本文向大家介绍JavaFX实现石头剪刀布小游戏,包括了JavaFX实现石头剪刀布小游戏的使用技巧和注意事项,需要的朋友参考一下 用JavaFX写一个石头剪刀布的小游戏,供大家参考,具体内容如下 课程上布置的作业,其实java很少用来写这种程序的 - GUI界面部分 - 石头剪刀布的逻辑部分 书上教的是JavaFX,其实还有很多方法,书上说AWT和Swing基本上淘汰了,但事实上… 代码 MyJav

  • 本文向大家介绍Java实现石头剪刀布小游戏,包括了Java实现石头剪刀布小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java实现石头剪刀布的具体代码,供大家参考,具体内容如下 代码: 运行效果: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Java实现的剪刀石头布游戏示例,包括了Java实现的剪刀石头布游戏示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现的剪刀石头布游戏。分享给大家供大家参考,具体如下: ChoiceAnswer.java Game.java 运行结果: 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《