Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 石头剪刀布游戏返回相同的结果_Javascript_Html_Function_Loops - Fatal编程技术网

Javascript 石头剪刀布游戏返回相同的结果

Javascript 石头剪刀布游戏返回相同的结果,javascript,html,function,loops,Javascript,Html,Function,Loops,因此,我在代码方面遇到了一些困难(因此这篇文章)。我试着这样做,当你点击岩石的图片,游戏开始,它返回计算机的决定。它以前在我提示用户时起作用,但因为我在单击岩石时重写了逻辑,所以它只返回一个答案。是不是因为缺少循环?我假设每次单击图标时,都会显示不同的答案。我还没有为其他选项编写代码,因为我想我会为其他选项使用类似的逻辑。我唯一能想到的是,因为我没有使用循环,所以游戏基本上只玩1轮 const rock = document.querySelector('.rock'); const paper

因此,我在代码方面遇到了一些困难(因此这篇文章)。我试着这样做,当你点击岩石的图片,游戏开始,它返回计算机的决定。它以前在我提示用户时起作用,但因为我在单击岩石时重写了逻辑,所以它只返回一个答案。是不是因为缺少循环?我假设每次单击图标时,都会显示不同的答案。我还没有为其他选项编写代码,因为我想我会为其他选项使用类似的逻辑。我唯一能想到的是,因为我没有使用循环,所以游戏基本上只玩1轮

const rock = document.querySelector('.rock');
const paper = document.querySelector('.paper');
const scissors = document.querySelector('.scissors');
const h3 = document.querySelector('h3');

let computerScore = 0;
let playerScore = 0;

function computerPlay() {
    var choice = Math.floor(Math.random() * 3 ) + 1; //generate a number 1-3 to find computer choice
    if(choice == 1) {
        return 'rock';
    }
    else if(choice == 2) {
        return 'paper';
    }
    else {
        return 'scissors'

    }
} 





//     function playGame(computerChoice) {
//     // let round = 0
//     // while(round < 6) {
//     var playerChoice = playerRock || playerPaper || playerScissors;
//     var computerChoice = computerPlay();
//     if(playerChoice === computerChoice) {
//       console.log('Tie!');
//       round++;
//     }
    
//     else if(playerChoice == 'rock' && computerChoice == 'scissors') {
//         playerScore++;
//         console.log(`Player chose rock and computer chose scissors! The player wins! Player: ${playerScore} Computer:${computerScore}`);
//         round++;
//     }
//     else if(playerChoice == 'paper' && computerChoice == 'rock') {
//         playerScore++;
//         round++;
//         console.log(`Player chose paper and computer chose rock! The player wins! Player: ${playerScore} Computer:${computerScore}`);
//     }
//     else if(playerChoice == 'scissors' && computerChoice == 'paper') {
//         playerScore++;
//         round++;
//         console.log(`Player chose scissors and computer chose paper! The player wins! Player: ${playerScore} Computer:${computerScore}`);
//     }
//     else {
//         computerScore++;
//         console.log(`The player chose ${playerChoice} and the computer chose ${computerChoice}! The computer wins! Player: ${playerScore} Computer: ${computerScore}.`)
//     }
// //   } 
//   }


// computerPlay()
// playerChoice()
// console.log(playGame())

function playGame(computerChoice) {
    computerChoice = computerPlay();
    let result;

    rock.addEventListener('click', () => {
        if(computerChoice == 'rock') {
            result = `The computer chose ${computerChoice} and you chose rock! It's a tie!`;
            h3.textContent = result;
            
        }
        else if(computerChoice == 'paper') {
            result = `The computer chose ${computerChoice} and you chose rock! You lose!`;
            h3.textContent = result;
            computerScore++;
     
        }
        else {
            result = `The computer chose ${computerChoice} and you chose rock! You win!`; 
            h3.textContent = result;
            playerScore++;

        }
    });
    let playerPaper = paper.addEventListener('click', () => {
        return 'paper'
    });
    let playerScissors = scissors.addEventListener('click', () => {
        return 'scissors'
    })

}
playGame()
console.log(playGame())
const-rock=document.querySelector('.rock');
const paper=document.querySelector('.paper');
const scissors=document.querySelector('.scissors');
const h3=document.querySelector('h3');
让计算机得分=0;
让playerScore=0;
函数computerPlay(){
var choice=Math.floor(Math.random()*3)+1;//生成一个数字1-3以查找计算机选项
如果(选项==1){
返回“岩石”;
}
else if(选项==2){
返回“文件”;
}
否则{
返回“剪刀”
}
} 
//功能性游戏(电脑选择){
////让round=0
////while(轮数<6){
//var playerChoice=playerRock | | | playerPaper | | playerscisors;
//var computerChoice=computerPlay();
//如果(播放选择===计算机选择){
//console.log('Tie!');
//round++;
//     }
//否则如果(playerChoice=='rock'和&computerChoice=='scissors'){
//playerScore++;
//log(`Player选择了石头,computer选择了剪刀!玩家赢了!Player:${playerScore}computer:${computerScore}`);
//round++;
//     }
//否则如果(playerChoice=='paper'和&computerChoice=='rock'){
//playerScore++;
//round++;
//log(`Player选择了纸张,computer选择了石头!玩家赢了!Player:${playerScore}computer:${computerScore}`);
//     }
//否则如果(playerChoice==‘剪刀’和&computerChoice==‘纸’){
//playerScore++;
//round++;
//log(`Player选择剪刀,computer选择纸!Player获胜!Player:${playerScore}computer:${computerScore}`);
//     }
//否则{
//计算机评分++;
//log(`玩家选择了${playerChoice}而计算机选择了${computerChoice}!计算机获胜!玩家:${playerScore}计算机:${computerScore}.`)
//     }
// //   } 
//   }
//电脑游戏
//playerChoice()
//console.log(playGame())
功能性游戏(电脑选择){
computerChoice=computerPlay();
让结果;
rock.addEventListener('click',()=>{
如果(computerChoice=='rock'){
结果=`计算机选择了${computerChoice}而你选择了rock!打成平局!`;
h3.textContent=结果;
}
如果为else(计算机选择==‘纸张’){
结果=`计算机选择了${computerChoice}而你选择了rock!你输了!`;
h3.textContent=结果;
计算机评分++;
}
否则{
结果=`计算机选择了${computerChoice}而你选择了rock!你赢了!`;
h3.textContent=结果;
playerScore++;
}
});
让playerPaper=paper.addEventListener('click',()=>{
返回“文件”
});
让playerScissors=剪刀。addEventListener('click',()=>{
返回“剪刀”
})
}
游戏
console.log(playGame())

这就是我目前所拥有的。最初,我没有结果变量,但我认为这可能会有所帮助。

当调用
playGame()
一次时,
computerChoice
只生成一次。每次你点击石头纸或剪刀,它都会评估玩家的选择,但电脑的选择从未改变。如果它在一开始就选择摇滚乐,它总是会将用户的选择与摇滚乐进行比较

将eventListeners从playGame函数中取出,并在显示结果后调用playGame(递归式循环)


或者,在显示结果后,将computerChoice重置为另一个computerPlay()调用的结果。您可以将
computerChoice=computerPlay()
添加到事件侦听器函数的末尾,在else语句之后运行,而不管结果如何。

您需要做一些更改

1-第一次添加事件 添加
useChoice
变量

并在点击时显示游戏内容

const-rock=document.querySelector('.rock');
const paper=document.querySelector('.paper');
const scissors=document.querySelector('.scissors');
const h3=document.querySelector('h3');
让计算机得分=0;
让playerScore=0;
让计算机选择“”;
让userChoice=“”;
rock.addEventListener('click',()=>{
userChoice=“rock”;
ShowResult()
});
paper.addEventListener('单击',()=>{
userChoice='纸张';
ShowResult()
});
scissors.addEventListener('单击',()=>{
userChoice=‘剪刀’;
ShowResult()
})
函数computerPlay(){
var choice=Math.floor(Math.random()*3)+1;//生成一个数字1-3以查找计算机选项
如果(选项==1){
返回“岩石”;
}
else if(选项==2){
返回“文件”;
}
否则{
返回“剪刀”
}
}
//功能性游戏(电脑选择){
////让round=0
////while(轮数<6){
//var playerChoice=playerRock | | | playerPaper | | playerscisors;
//var computerChoice=computerPlay();
//如果(播放选择===计算机选择){
//console.log('Tie!');
//round++;
//     }
//否则如果(playerChoice=='rock'和&computerChoice=='scissors'){
//playerScore++;
//log(`Player选择了石头,computer选择了剪刀!玩家赢了!Player:${playerScore}computer:${computerScore}`);
//round++;
//