国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ā)牌算法的評論 (共 條)

分享到微博請遵守國家法律
铁岭县| 资兴市| 始兴县| 汝阳县| 荆州市| 高台县| 新宾| 玛多县| 宽城| 桐庐县| 灌云县| 吕梁市| 云林县| 习水县| 遂溪县| 方正县| 安塞县| 新化县| 林口县| 石泉县| 诸城市| 延庆县| 安乡县| 铁岭市| 宜春市| 连南| 咸宁市| 文水县| 封开县| 兴城市| 博罗县| 芒康县| 呼玛县| 定安县| 太仆寺旗| 海南省| 洮南市| 南漳县| 靖边县| 根河市| 福州市|