麻將的演算法---
提高篇 1.
先說說,數值的構成。
型別字 0:東南西北中發白 --》1
,2,3
,4,5
,6,7
型別萬 1:1
萬2萬3萬4
萬5萬6
萬7萬8
萬9萬--
》11,12
,13,14
,15,16
,17,18
,19型別條 2:1條2
條3條4
條5條6
條7條8
條9條--
》21,22
,23,24
,25,26
,27,28
,29型別餅 3:1餅2
餅3餅4
餅5餅6
餅7餅8
餅9餅--
》31,32
,33,34
,35,36
,37,38
,39
如果我知道乙個數字,26。
馬上就知道是對應型別26/10 = 2
,就是屬於「條」。26%10=6,就能得出是6條。
如果要匹配到相應的的話,中間的26
,就是代表你要的是
6條。還有聲音檔案的話,也可如此。
除數結果為型別,取余為第幾個。
2.洗牌。
std::vector mpaivaluevector; //裝
所有牌的容器
1,2,3
,4,5
,6,7
11,12,
13,14,
15,16,
17,18,
19 21,22,23
,24,25
,26,27
,28,29
31,32,
33,34,
35,36,
37,38,
39 把上面的資料放到 mpaivaluevector 中,迴圈4次。(共 34 * 4 = 136 張牌)
//再用這個來打亂上面容器裡面所有數值的順序
//當然是越亂越好
random_shuffle(mpaivaluevector.begin(), mpaivaluevector.end());
3.發牌。
每次發牌都從mpaivaluevector的末尾發一張,先發13張。
(a為庄南,b東,c北,d西)
玩家a : 4, 13, 23, 5, 14, 22, 22, 14, 38, 17, 28, 5, 37 + 19
玩家b : 14, 3, 13, 15, 24, 12, 2, 24, 18, 17, 28, 15, 17
玩家c : 24, 23, 3, 25, 34, 32, 12, 3, 7, 17, 28, 25, 27
玩家d : 34, 33, 13, 35, 4, 4, 32, 34, 28, 17, 28, 35, 7
發牌後,按從小到的資料排序。
玩家a : 4, 5,5,13, 14, 14, 17,
19 ,
22, 22, 23, 28, 37, 38
結果你就能看到字,萬,條,餅的先後出現,且是從1到9的順序。
字不足5個,就打字先,把4打出去。
4.碰。
玩家b中比較下,沒有兩個4,玩家c中,也沒有。
d中找到兩個4,那玩家d,就能碰。(當然b,c中沒有人胡牌)。
5.槓。
和碰類似,只不過先有3只一樣的,後面要補張牌好像。
6.胡牌。
清一色:
14個的數值分別除以
10,結果全為一樣的。
小7對:
14個資料中,有
7對是一樣的。有碰有胡,除外(有
3個一樣的資料,有
4個一樣的資料就除外)。
平胡:3連+3連
+3連+3連
+1對。 (連在一起的
3個資料或者碰到的
1對,有類似
4對,再上
1對的資料)。
天胡:
地胡:
槓上開花:
爛胡:........
類推,還有什麼胡法(我也不太懂)。
總體上,按上面排序的數值處理,會簡單很多的。
麻將伺服器方面:
1.
超簡單的麻將演算法
1.先說說,數值的構成。型別字 0 東南西北中發白 1,2,3,4,5,6,7 型別萬 1 1萬2萬3萬4萬5萬6萬7萬8萬9萬 11,12,13,14,15,16,17,18,19 型別條 2 1條2條3條4條5條6條7條8條9條 21,22,23,24,25,26,27,28,29 型別餅 3 ...
(演算法)成都麻將
說起麻將,那可是川渝市民的最愛,無論親朋好友聚會,還是業務談判,總是少不了麻將的聲音。成都麻將只能包括3種型別 條,筒,萬。沒有 門 東南西北 紅中 每種牌都是數字從1到9,每個數字有4張,共36張。筒,萬,條均一樣。胡牌簡化規則如下 1.必須有乙個對子,即兩張相同的牌,比如 兩個2筒,兩個4條等。...
簡單麻將功能實現
麻將遊戲實現 實現功能點 實現麻將的準備牌,洗牌,發牌,看牌 集合知識 麻將功能需求分析 a 具體規則 1.組裝136張麻將,條,筒,萬加在一起的數目是108張 東,南,西,北風,紅中,發財,白板是28張,總共136張 2.將136張牌順序打亂 3.四個玩家參與遊戲,四個人交替摸牌,每次4張,先摸3...