德州撲克和短牌的演算法分析

2021-09-24 19:34:41 字數 1251 閱讀 7435

最近由於公司的業務的擴充套件 增加短牌玩法, 這個短牌演算法我在github上找很長時間都沒有找到開源了。 最後我只能自己寫短牌的演算法,說的挺哄人的其實我也是有參考德州撲克的演算法的。

紅桃a是放在int型別中 int是32位元組記憶體存放

高16存放牌的大小   |顏色|牌的值|低8位存放牌對映數的大小

0000 0000 0000 0001 1000 1101 0010 1001

存放資料的

static const int32 ecolor[4] = ;

static const int32 ehex = 0x10; // 0000 0000 0000 0000 0000 0000 0001 0000 ---> 16

// 短牌花色 儲存位置 偏移量

static const int32 ecolor_offset = 0x08;

int32 n = 0;

for (int32 i = 0; i < estart; ++i)

}

高16位是計算出 同花順和同花, 順子和高牌使用的

低8位是計算出還有其它的牌的資料

所有牌型都是唯一的值 這個就對應乙個對映表 和加密演算法一樣的有乙個專門的表

唯一在有花色就是同花順, 這個在 |位操作符就可以區分是同花還是不是同花的

撲克中都是對應唯一值的

順子

0000 0000 0000 0001 

0000 0000 0000 0010

0000 0000 0000 0100

0000 0000 0000 1000

0000 0000 0001 0000

高牌

0000 0000 0000 0001 

0000 0000 0000 0010

0000 0000 0000 0100

0000 0000 0000 1000

0000 0000 1000 0000

是判斷5張牌是否是順子還是高牌

但是唯一的值

有乙個規律 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] 相乘的值都是唯一值

上面2、3、5 等等 都是質數所以相乘的是肯定是唯一的(運用數論的知識)

得到所有牌型

按照牌型別排序

演算法實現的位址

個人部落格位址

計算6 德州撲克各個牌型的概率

為了回答該知乎問題 而寫就的程式。6 德州撲克的規則,就是在傳統52張牌德州撲克的基礎上,去掉了2到5,只留下6到a共計36張牌 另外最小的順子就成了a6789。此外,牌型大小變成了 同花 葫蘆 三條 順子。其他規則都不變。新的概率表 根據本程式跑出的結果 變為 chrome瀏覽器按f12開啟控制台...

德州撲克七張牌的比較(21次搜尋)

include include include include includeusing namespace std struct card 每張牌用面值跟花色來描述。class compare 5 cards cards num temp2 void gradeis void if temp.co...

C 德州撲克的核心規則演算法

自己編寫,適用於windows,linux平台。include public.h int texascombine5 unsigned char pcard,unsigned char pcardcolor,unsigned char pcardresult,unsigned char pcolor...