$(document).ready(function(){
function card(name, suit, value){
this.name = name;
this.suit = suit;
this.value = value;
}
var deck = [
new card('Ace', 'Hearts', 11),
new card('Ace', 'Diamonds', 11)
...//这里存放了52张牌。
]
function getRandom(num){
var my_num = Math.floor(Math.random()*num);
return my_num;
}
var used_cards = new Array();
function hit(){
var good_card = false;
do{
var index = getRandom(52);
if( !$.inArray(index, used_cards ) > -1 ){
good_card = true;
var c = deck[index];
used_cards[used_cards.length] = index;//这句话说的是什么?干什么用的?
}while(!good_card);
good_card = false;
}
});
关于used_cards[used_cards.length] = index;主要是想问[]中放的是什么?
used_cards.length这个是0吗?因为空数组?
把数组used_cards中,这个[used_cards.length]位置的值设置为index又是为什么呢?
used_cards[used_cards.length] = index;这句话到底能得到什么?
为什么要有good_card = false; 这句话呢?它是干什么用的?
used_cards存放使用过的牌
index用来存放一个随机数,随机取得一张牌
good_card 用来表示循环中有没有找到,如果没有找到继续找,否则停止。
整个程序实现了洗牌。
used_cards[used_cards.length] = index; 就是将抽取的那张牌的索引号增加到已用过的牌的数组当中
used_cards.length 最初是0,因为还没有抽牌;
used_cards中,这个[used_cards.length]位置的值设置为index,是为了把当前这个牌加到已用过的数组当中,
一开始是空数组所以就是,used_cards[0] = c,
抽了第一张牌之后,数组的长度为1,所以现在是used_cards[1] = c;
used_cards[used_cards.length] = index;这句话就是为了储存已经抽过的牌,防止重复
good_card = false; 这句话是为了帮助do while循环语句,一开始将它设置为false,就是初始化,如果if语句里面不满足的话,就是没抽到牌,
那么它就会执行到抽到牌为止。
这是我的理解哈哈