gpt4 book ai didi

javascript - 如何使 if/else 语句评估所有变量

转载 作者:行者123 更新时间:2023-11-29 19:16:43 24 4
gpt4 key购买 nike

我正在尝试创建一个游戏,在该游戏中,用户“下注”下一张牌是否位于前两张牌之间。为了计算它,我创建了一个 52 到 52 的随机数并将其设置为等于数组变量值。我需要一个数字 2-14 而不是 1-52(以评估卡片的编号,以防 2 张具有相同编号和不同套件的卡片显示)。为此,我使用 slice 获取数组项的第一个字母并将其存储在一个变量(num1、num2、numUser)中。

然后我使用 if else 语句来给面牌 (10, jack, queen, king, ace) # 值。问题是,我需要将其应用于所有 3 个变量。目前,该语句在识别到人脸卡并设置#值时停止。如果有多张人头牌,则声明仅适用于第一张。

我尝试将其包装在一个 for 循环中并使其运行 3 次 - 例如(for (var i = 0; i > 3; i++),但这没有用。抱歉,如果这令人困惑,任何帮助非常感谢。

function outputCards(){
rand1 = Math.floor((Math.random() * 52));
rand2 = Math.floor((Math.random() * 52));
$('#cardUser').attr("src", "#");
if(rand1 == rand2){
rand2 = Math.floor((Math.random() * 52));
} else {
card1 = cards[rand1];
card2 = cards[rand2];
$('#cardOne').attr("src", "imgs/" + card1);
$('#cardTwo').attr("src", "imgs/" + card2);
}
}

function userCard(){
rand_user = Math.floor((Math.random() * 52));
if(rand_user == rand1 || rand_user == rand2){
rand_user = Math.floor((Math.random() * 52));
} else {
user_card = cards[rand_user];
$('#cardUser').attr("src", "imgs/" + user_card);
}
}


function outcome(){
userCard();
num1 = card1.slice(0,1);
num2 = card2.slice(0,1);
numUser = user_card.slice(0,1);
if(num1 == "j"){
num1 = 11;
} else if (num2 == "j") {
num2 = 11;
} else if (numUser === "j") {
numUser = 11;
} else if (num1 == "q") {
num1 = 12;
} else if (num2 == "q") {
num2 = 12;
} else if (numUser === "q") {
numUser = 12;
} else if (num1 == "k") {
num1 = 13;
} else if (num2 == "k") {
num2 = 13;
} else if (numUser === "k") {
numUser = 13;
} else if (num1 == "a") {
num1 = 14;
} else if (num2 == "a") {
num2 = 14;
} else if (numUser === "a") {
numUser = 14;
} else if(num1 == 1){
num1 = 10;
} else if(num2 == 1){
num2 = 10;
} else if(numUser == 1){
numUser = 10;
} else {


}
}

最佳答案

好吧,有更有效的方法来实现这一点,最直接(对初学者友好)的方法是如果树不是一棵树,则使用 3 个 else。

if(num1 == "j"){
num1 = 11;
} else if (num2 == "j") {
num2 = 11;
} else if (numUser === "j") {
numUser = 11;
...

当它们需要分开时,你将它们组合在一起

if(num1 == "j"){
num1 = 11;
} else if (num1 == "q") {
num1 = 12;
} else if (num1 === "k") {
num1 = 13;
...


if(num2 == "j"){
num2 = 11;
} else if (num2 == "q") {
num1 = 12;
} else if (num2 === "k") {
num2 = 13;
...

这可以通过将 if 语句放在函数中来实现

function outcome(number){
if(number == "j"){
return 11;
} else if (number == "q") {
return 12;
} else if (number === "k") {
...
} //etc
}

num1 = outcome(card1.slice(0,1))
num2 = outcome(card2.slice(0,1))
numUser = outcome(user_card.slice(0,1));

您还可以创建一个对象映射来将卡片字母映射到一个数字值

var cardMap = {
j: 11,
q: 12,
k: 13,
...
}

然后你可以做

num1 = cardMap[card1.slice(0,1)]
num2 = cardMap[card2.slice(0,1)]
numUser = cardMap[user_card.slice(0,1)]

关于javascript - 如何使 if/else 语句评估所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777051/

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