Javascript二十一点甲板创建

时间:2013-06-04 02:23:25

标签: javascript

我正在尝试创建一个套牌并为面牌创建特殊规则但是这个while循环似乎什么都不做,即使我觉得我有一切正确。请帮忙。

//creates the deck
deck = [];
Ace = 1;
Jack = 10;
Queen = 10;
King = 10;
for(i = 1; i <= 52; i++) {
    deck[i] = i;
}
while (i < deck.length) {
    if(deck[i] == 1 || deck[i] == 14 || deck[i] == 27 || deck[i] == 40) {
        deck[i] = Ace;
    }
    i++;
}
alert(deck);

2 个答案:

答案 0 :(得分:4)

for循环后,i将成为deck.length,因此永远不会输入您的while循环。它应该是另一个for循环。

另外,请使用var声明您的变量。隐含的全局变量很糟糕!

另外,你可以在除以13时检查剩余部分以获得aces。你可以在同一个循环中完成这两个步骤。

var deck = [];
var Ace = 1;
var Jack = 10;
var Queen = 10;
var King = 10;

for(var i = 1; i <= 52; i++) {
    if(i % 13 === 1) {
        deck[i] = Ace;
    } else {
        deck[i] = i;
    }
}

alert(deck);

答案 1 :(得分:1)

你的while循环没有执行。我会在for循环后得到53的值,所以你会立即转到警报。

此外,javascript数组从0开始。你也应该组合循环。当你可以在第一个循环中完成时,没有理由再次跳过项目。