21点游戏开发全解析
1. 洗牌算法
1.1 Fisher - Yates算法
在21点游戏中,洗牌是一个重要的环节。这里使用了Fisher - Yates算法,该算法的策略是从牌堆的末尾开始,为牌堆中的每个位置随机确定一张牌,直到处理到牌堆的开头。具体步骤如下:
1. 从牌堆的最后一张牌开始,将当前位置记为 i 。
2. 生成一个从 0 到 i 的随机整数 s 。
3. 交换位置 s 和位置 i 的牌。
4. i 减 1,重复步骤 2 和 3,直到 i 为 0。
以下是实现该算法的代码:
function shuffle() {
var i = deck.length - 1;
var s;
while (i > 0) {
s = Math.floor(Math.random() * (i + 1));
swapinDeck(s, i);
i--;
}
}
function swapInDeck(j, k) {
var hold = new MCard(deck[j].num, deck[j].suit, deck[j].picture.src);
deck[j] = deck[k];
deck[k] = hold;
}
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



