JavaScript のじゃんけん
すべての開発者は、人生のどこかで HelloWorld から始めます。じゃんけんは、プログラミング言語を学びながら開発者が作成する人気のあるゲームの 1つです。しかし、複数のケースを作成することは、開発者にとって頭痛の種になります。したがって、この記事では、じゃんけんゲームの背後にあるロジックを学習します。
JavaScript のじゃんけん
子供たちが遊ぶ、面白くて人気のあるゲームです。そして、そのロジックもそうです。それでは、最初にこのゲームのルールを理解しましょう。
- グーをプレイすることを選択したプレーヤーは、グーがはさみまたは面取りされたはさみを押しつぶすため、はさみを選択した別のプレーヤーを攻撃します。
- パーがグーを覆っているため、グーを演奏することを選択したプレーヤーは、パーを演奏した別のプレーヤーに負けます。
- パーを切ることにしたプレーヤーは、はさみがパーを切るため、はさみのプレーヤーに負けます。
したがって、ルールはクリアされます。それでは、ゲームのロジックを書いてみましょう。キーを個別の選択肢として、値を 2 番目の選択肢として 1つのオブジェクトを作成しました。たとえば、ユーザー入力がロックであり、コンピューターの選択もロックである場合、それは引き分けです。
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;
}
上記の関数では、ユーザーの選択を入力として受け取り、ユーザー入力をスイッチケースを使用してコンピューターで生成された選択と比較します。いずれの条件も一致しない場合は、描画されたと見なされます。それでは、ユーザーが選択して結果を出力してみましょう。
<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