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