五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

棋牌類游戲中的洗牌和發(fā)牌算法

2019-11-14 17:20 作者:博毅創(chuàng)為  | 我要投稿

洗牌和發(fā)牌是棋牌類游戲中,非常重要的兩個關(guān)鍵節(jié)點,而這兩個關(guān)鍵節(jié)點涉及的算法,很多同學非常感興趣,今天,我們就以NodeJS環(huán)境為例,通過JS代碼給大家解說洗牌和發(fā)牌算法。(交流群:872282999)

一、 洗牌算法

1. 采用隨機交換策略

【方法一】核心思想:隨機產(chǎn)生一個位置與當前位置的牌交換。

運行結(jié)果如下:

【方法二】核心思想:隨機產(chǎn)生一個位置與第一張牌進行交換,交換的輪次越多,理論上次序越亂。

運行結(jié)果如下:

2. 采用隨機排序策略

運行結(jié)果如下:

二、 發(fā)牌算法

發(fā)牌:實質(zhì)上是將一副打亂順序后的撲克牌,保留一定底牌后,分給幾個不同的玩家。

思路一:由于牌已經(jīng)打亂了,所以我們可以用撲克牌的總張數(shù)-底牌數(shù)(arr.length-reservedNum),再拿此數(shù)值÷玩家數(shù)。得到每個玩家應(yīng)該得到的牌的張數(shù)(暫時不考慮不能整除的情況)。之后調(diào)用數(shù)組的slice方法從特定序號取牌分發(fā)給玩家即可。

運算結(jié)果如下:

思路二:一張張的從數(shù)組中取牌,直到數(shù)組中牌的數(shù)量小于等于底牌數(shù)為止。

運行結(jié)果如下:

實質(zhì)上洗牌我們就是利用了交換兩個變量的位置,發(fā)牌利用了數(shù)組的相關(guān)方法。當然我們還有其他方法可以實現(xiàn)。(交流群:872282999)


棋牌類游戲中的洗牌和發(fā)牌算法的評論 (共 條)

分享到微博請遵守國家法律
新丰县| 鹤庆县| 隆子县| 满洲里市| 泸州市| 万州区| 古丈县| 常宁市| 都匀市| 乐平市| 博野县| 通渭县| 汶川县| 安仁县| 巴彦县| 栖霞市| 双牌县| 苍南县| 肥城市| 溧水县| 广宗县| 台中市| 孟津县| 汾阳市| 贵定县| 松江区| 盐山县| 张家界市| 偃师市| 扶绥县| 敦煌市| 呼玛县| 安泽县| 枝江市| 加查县| 翁牛特旗| 五大连池市| 阿拉善盟| 鹰潭市| 锦屏县| 长顺县|