var used_cards = []; // 記錄已發出的牌的索引
function hit() {
var good_card = false;
do {
var index = getRandom(52); // 0-51 隨機索引
if ($.inArray(index, used_cards) == -1) { // 未使用過
good_card = true;
var c = deck[index]; // 取到牌
used_cards[used_cards.length] = index; // 記錄已用索引(等同 push)
}
} while (!good_card); // 直到找到未用過的牌
good_card = false; // 重置標誌供下次調用
}
used_cards.length 初始為 0,used_cards[0] = index 即在末尾添加,等價 push(index)。good_card 作為「找到可用牌」的標誌,控制 do-while 循環終止。若牌數固定 52,Fisher-Yates 洗牌算法(O(n) 一次性打亂數組,再順序取牌)效率更高、代碼更簡潔。