五月天青色头像情侣网名,国产亚洲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ā)牌算法的評論 (共 條)

分享到微博請遵守國家法律
上饶县| 根河市| 太原市| 桐梓县| 泸水县| 德化县| 大姚县| 左云县| 建瓯市| 那坡县| 浮山县| 岳阳市| 鄯善县| 互助| 宝应县| 温宿县| 镇赉县| 昆山市| 平原县| 和林格尔县| 鸡东县| 开鲁县| 藁城市| 宁城县| 新丰县| 新宁县| 大英县| 长兴县| 渝北区| 麦盖提县| 喜德县| 南涧| 高邮市| 离岛区| 凌源市| 舞阳县| 东方市| 乌兰县| 平山县| 苍梧县| 元谋县|