JavaScript 中的石头剪刀布
每个开发人员都从他们生活中的某个地方的 Hello world
开始。剪刀石头布是开发者在学习任何编程语言时构建的。但是编写多个案例成为开发人员的头疼问题。所以在这篇文章中,我们将学习石头剪刀布游戏背后的逻辑。
JavaScript 中的石头剪刀布
这是一个有趣和流行的孩子们玩的游戏。它的逻辑也是如此。那么我们先来了解一下这个游戏的规则。
- 一个选择玩石头的玩家会攻击另一个选择剪刀的玩家,因为石头会压碎剪刀或有时会倒角剪刀。
- 选择玩石头的玩家输给了玩纸的玩家,因为纸盖住了石头。
- 决定玩纸的玩家将输给剪刀玩家,因为剪刀剪纸。
所以规则被清除;现在,让我们编写游戏的逻辑。我们创建了一个对象,其中键作为个人选择,值作为第二选择。例如,如果用户输入是摇滚,而计算机的选择也是摇滚,那么它就是平局。
let choicesObject = {
'rock' : {
'rock' : 'draw',
'scissor' : 'win',
'paper' : 'lose'
},
'scissor' : {
'rock' : 'lose',
'scissor' : 'draw',
'paper' : 'win'
},
'paper' : {
'rock' : 'win',
'scissor' : 'lose',
'paper' : 'draw'
}
}
现在我们可以使用上述对象作为全局规则,并使用函数预测游戏结果。
function checker(input){
var choices = ["rock", "paper", "scissor"];
var num = Math.floor(Math.random()*3);
let computerChoice = choices[num];
let result
switch(choicesObject[input][computerChoice]){
case 'win':
result = "YOU WIN";
break;
case 'lose':
result = "YOU LOSE";
break;
default:
result = "DRAW";
break;
}
console.log(result);
document.getElementById('result').textContent = result;
}
在上述函数中,我们将用户选择作为输入,并将用户输入与使用 switch case 的计算机生成的选择进行比较。如果没有任何条件匹配,则认为已绘制。现在让我们接受用户的选择并打印结果。
<button onClick="checker('rock')">Rock</button>
<button onClick="checker('paper')">Paper</button>
<button onClick="checker('scissor')">Scissor</button>
<p id="result">
</p>
当你运行上面的代码时,它会打印出类似这样的内容。结果可能因计算机的选择而异。
输出:
YOU LOSE
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn