为了账号安全,请及时绑定邮箱和手机立即绑定

如何使程序连续运行?

如何使程序连续运行?

慕桂英546537 2022-09-02 20:57:29
我正在创建一个石头剪刀布游戏(我故意省略了代码的某些部分,只是为了让事情更容易理解),我希望能够在按下按钮一次后继续游戏。按照现在游戏的设置方式,一旦你按下按钮,游戏就会告诉你是赢了还是输了。此时,如果您尝试再次按下该按钮,则不会发生任何反应。我一直在尝试几种不同的方法,但我似乎找不到一种方法来做到这一点。如果有人可以帮助我做到这一点,以便在我再次单击按钮后,游戏能够继续与计算机一起选择新的选择,依此类推,将不胜感激。谢谢。const choices = ["rock", "paper", "scissors"];const computersChoice = choices[Math.floor(Math.random() * choices.length)];const rockButton = document.getElementById("rockbtn");const updateText = document.getElementById('textField')let yourChoicelet statuslet statusComp//function for when user clicks rock buttonfunction userRock() {    rockButton.addEventListener ("click", function() {        yourChoice = choices[0]          execute()  });}function execute(){    checker()    computersTurn()}// checks to see if user made a choicefunction checker(){    if (yourChoice === choices[0]) {        status ='rock'    }  }  // computer choosesfunction computersTurn() {        statusComp = computersChoice        //logs check to make sure the program is running correctly        console.log(status)        console.log(statusComp)        if (status === statusComp) {            updateText.innerText = 'It\s a tie'        } else if (status === 'rock' && statusComp === 'paper'){            updateText.innerText = 'You lose... Computer chose paper'        } else if (status === 'rock' && statusComp === 'scissors'){            updateText.innerText = 'You win... Computer chose scissors'        }  }function startGame(){    userRock()}startGame()
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

问题是你只得到一次电脑选择。您应该在每次单击时获得计算机选择。


const choices = ["rock", "paper", "scissors"];

let computersChoice ;

const rockButton = document.getElementById("rockbtn");

const updateText = document.getElementById('textField')

let yourChoice

let status

let statusComp



//function for when user clicks rock button

function userRock() {

    rockButton.addEventListener ("click", function() {

        yourChoice = choices[0];

        computersChoice = choices[Math.floor(Math.random() * choices.length)];

        execute()

  });

}


function execute(){

    checker()

    computersTurn()

}


// checks to see if user made a choice

function checker(){

    if (yourChoice === choices[0]) {

        status ='rock'

    }

  }  


// computer chooses

function computersTurn() {

        statusComp = computersChoice

        //logs check to make sure the program is running correctly

        console.log(status)

        console.log(statusComp)

        if (status === statusComp) {

            updateText.innerText = 'It\s a tie'

        } else if (status === 'rock' && statusComp === 'paper'){

            updateText.innerText = 'You lose... Computer chose paper'

        } else if (status === 'rock' && statusComp === 'scissors'){

            updateText.innerText = 'You win... Computer chose scissors'

        }

  }



function startGame(){

    userRock()


}


startGame()

<button id="rockbtn">Play</button>

<span id="textField"/></span>


查看完整回答
反对 回复 2022-09-02
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

这很简单。只需将创建计算机选项的一行移动到您的函数即可。这样,计算机就不会一直使用相同的结果。其他一切都可以保持不变,并且会起作用。computerTurns()


const choices = ["rock", "paper", "scissors"];

const rockButton = document.getElementById("rockbtn");

const updateText = document.getElementById('textField')

let computersChoice;

let yourChoice

let status

let statusComp



//function for when user clicks rock button

function userRock() {

    rockButton.addEventListener ("click", function() {

        yourChoice = choices[0]  

        execute()

  });

}


function execute(){

    checker()

    computersTurn()

}


// checks to see if user made a choice

function checker(){

    if (yourChoice === choices[0]) {

        status ='rock'

    }

  }  


// computer chooses

function computersTurn() {

        computersChoice = choices[Math.floor(Math.random() * choices.length)];

        statusComp = computersChoice

        //logs check to make sure the program is running correctly

        console.log(status)

        console.log(statusComp)

        if (status === statusComp) {

            updateText.innerText = 'It\s a tie'

        } else if (status === 'rock' && statusComp === 'paper'){

            updateText.innerText = 'You lose... Computer chose paper'

        } else if (status === 'rock' && statusComp === 'scissors'){

            updateText.innerText = 'You win... Computer chose scissors'

        }

  }



function startGame(){

    userRock()


}


startGame()

<button id="rockbtn">Rock</button>

<textarea id="textField"></textarea>


查看完整回答
反对 回复 2022-09-02
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号