洗牌採用的是,每一張牌,與後面隨機一張牌來交換位置。
撲克牌採用編碼制(如,0代表紅桃a,依次類推)為了編碼方便,撲克牌不含大小王,故52張。
一、撲克牌的了解
撲克(英文:poker)
一副撲克牌有54張牌,其中52張是正牌,另2張是副牌(大王和小王)。
52張正牌又均分為13張一組,並以黑桃、紅桃、草花、方塊四種花色表示各組,每組花色的牌包括從1-10(1通常表示為a)以及j、q、k標示的13張牌。
為了簡化物件,我們把撲克作為card類,屬性值為suit 和 face。
functioncard()
this.setface = function
(newface)
this.showcard = function
() }
二、洗牌思想
洗牌採用第一張,與後面隨機一張交換位置。
用陣列poker[53]代表一副撲克牌,多出的一張作為用來交換牌時的temp容器。
for(i = 0; i < poker.length-1; i++)
三、牌與面值關聯
這個通過兩個簡單的陣列就可以搞定。
乙個存放suit,另乙個存放face
var suitgroup = ["紅桃", "方塊", "梅花", "黑桃"]var facegroup = ["a", "1", "2", "3", "4", "5", "6", "7", "8","9", "j", "q", "k"]
for(i = 0; i < poker.length-1 ; i++)
JS洗牌演算法的三種實現
function washcard1 cards return cards function washcard2 cards cards cardstmp return cards function washcard3 cards return cards var cards newarray 54...
C 洗牌演算法的實現
大家在玩鬥地主的時候,每次都是隨機發牌,每個人拿到手的牌都是和上一次不一樣的。那麼電腦是如何做到隨機的呢?首先大家想到的就是採用系統本身的隨機演算法產生的隨機數,每次都根據產生的隨機數來獲取不同位置的。舉個簡單的例子 0 9這10個數,如何讓這10個數隨機排序呢,而且保證每次出現的概率都是一樣的?1...
粗糙的洗牌演算法實現
今天無意中聊起洗牌演算法,於是就嘗試寫一下這個洗牌演算法,不管演算法多麼簡陋,主要進一步熟悉js語言,鍛鍊一下自己。我的思路,模擬現實中的洗牌常用方法 1 一開始牌的狀態是有序或者無序的。2 每次講牌分開兩半,然後用左右手分別將這兩堆牌交叉,得到乙個新順序的牌。3 將過程2重複n次,即洗好牌。4 上...