【发布时间】:2016-01-13 21:09:23
【问题描述】:
我正在尝试创建一个游戏,用户在其中“下注”下一张牌是否会在显示的前两张牌之间。为了计算它,我创建了一个 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 {
}
}
【问题讨论】:
-
如果接收到用户输入的代码立即将人脸卡片字母转换为各自的数字,这将简单得多,因此实际确定结果的逻辑不必处理字母。换句话说,您对卡片的内部表示应该始终是一个数字。你应该只处理字母作为输入和输出。
标签: javascript jquery arrays if-statement