最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
和政县| 来凤县| 吐鲁番市| 岫岩| 广汉市| 夏邑县| 萍乡市| 天长市| 岢岚县| 鹿泉市| 嵩明县| 当涂县| 邯郸县| 广汉市| 玛纳斯县| 沂源县| 台安县| 威信县| 霞浦县| 茌平县| 沧源| 石狮市| 绥德县| 惠安县| 贵州省| 沛县| 邻水| 阿拉善左旗| 张家港市| 安西县| 松江区| 昂仁县| 潞城市| 泰安市| 天水市| 台州市| 江门市| 紫阳县| 监利县| 柳江县| 尉氏县|