gpt4 book ai didi

javascript - 石头剪刀布更有效的选择比较

转载 作者:可可西里 更新时间:2023-11-01 01:28:47 25 4
gpt4 key购买 nike

这是一个正在进行的学校项目,我想改进它。重点是使代码尽可能高效(或简短)。在比较计算机的选择与用户的选择时,我想通过找到所有其他 ifs 的替代方案来减少它。

代码如下:

let weapons = ["Rock", "Paper", "Scissors"];
let random = Math.floor(Math.random()*3);
let chosenOne = weapons[random];

let rps = prompt("Welcome to Rock, Paper, Scissors. Would you like to play?"
+ '\n' + "If you do, enter number 1." + '\n' + "If you don't, enter number
2.");

if (rps === "1") {
alert("Remember:" + '\n' + " - Rock beats the scissors" + '\n' + " -
Paper beats the rock" + '\n' + " - The scissors cut the paper");

let weapon = prompt("Make your choice:" + '\n' + "Rock, Paper, Scissors");
weapon = weapon.charAt(0).toUpperCase() + weapon.slice(1).toLowerCase();
alert("You chose: " + weapon + '\n' + "The computer chose: " +
chosenOne);
if (weapon === chosenOne) {
alert("It's a tie! Try again to win!");
} else if (weapon === "Rock" && chosenOne === "Paper") {
alert("You lost! Paper beats the rock.");
} else if (weapon === "Paper" && chosenOne === "Scissors") {
alert("You lost! The scissors cut the paper.");
} else if (weapon === "Scissors" && chosenOne === "Rock") {
alert("You lost! The rock beats the scissors.");
} else if (weapon === "Scissors" && chosenOne === "Paper") {
alert("You won! Scissors cut the paper.");
} else if (weapon === "Paper" && chosenOne === "Rock") {
alert("You won! Paper beats the rock.");
} else if (weapon === "Rock" && chosenOne === "Scissors") {
alert("You won! The rock beats the scissors.");
}
} else if (rps === "2") {
alert("Thanks for visiting! See you later.");
} else if (rps !== "1" || rps !== "2") {
alert("Invalid option. Closing game.");
}

我考虑过使用 switch 语句,但由于我们还是初学者,我还没有完全掌握这个主题。感谢您的帮助。

最佳答案

您可以定义一个对象来定义您的移动相对于另一个移动是弱还是强。示例:

const myChoice = 'Rock'
const enemyChoice = 'Scissors'

const weapons = {
Rock: {weakTo: 'Paper', strongTo: 'Scissors'},
Paper: {weakTo: 'Scissors', strongTo: 'Rock'},
Scissors: {weakTo: 'Rock', strongTo: 'Paper'}
}

if (weapons[myChoice].strongTo === enemyChoice) {
// I won
return;
}

if (weapons[myChoice].weakTo === enemyChoice) {
// I Lost
return;
}

// tie

关于javascript - 石头剪刀布更有效的选择比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com