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

2021-07-28 01:19:43 字數 3808 閱讀 5663

#include #include#include#include//#includeusing namespace std;

struct card;//每張牌用面值跟花色來描述。

class compare_5_cards

cards_num=temp2;

}void gradeis(void)

if(temp.count()==1)

else grade=4; //不是順子,所以只是普通同花。

}else

else

for(j=0;j<5;j++)

}//cout<0;i--)

return true;

}else

return true;}}

else

if(i==3)return false;

for(int j=i-1;j>i-5;j--)

}return true;}}

int compare_5cards(vector&cards2)

else

else

for(j=13;j>3;j--)

if(i>j)

else

for(i2=13;i2>0;i2--)

for(j1=i1-1;j1>=0;j1--)

for(j2=i2-1;j2>=0;j2--)

for(int i=0;i<5;i++)

if(count_4cards1==4)

else

if(count_4cards2==4)

else

if(pos1==pos2)

else

if(cards_num[r]==1)return 1;//最大的牌在己方,己方勝出。

else return -1; // 否則己方敗。}}

}else

break;

case 3: // 雙方都為葫蘆。

int count_3cards1;

int count_3cards2;

count_3cards1=0;

count_3cards2=0;

for(i1=13;i1>0;i1--)

for(i2=13;i2>0;i2--)

for(j1=i1-1;j1>=0;j1--)

for(j2=i2-1;j2>=0;j2--)

for(int i=0;i<5;i++)

if(count_3cards1==3)pos1=i1;

else pos1=j1; //pos1,pos2記錄3張同牌的位置。

if(count_3cards2==3)pos2=i2;

else pos2=j2;

if(pos1==pos2)

else

if(cards_num[r]==1)return 1;

else return -1;}}

}else

break;

case 4: //都是普通同花或者都是高牌的情況下,則具體比較每張牌

case 9:

return compare_cards_num(handcards2);

break;

case 5: //都是普通順子。

if(cards_num[0]==1&&cards_num[13]==1)

else

for(j=13;j>3;j--)

if(i>j)

else

for(i2=13;i2>1;i2--)

for(j1=i1-1;j1>0;j1--)

for(j2=i2-1;j2>0;j2--)

for(k1=j1-1;k1>=0;k1--)

for(k2=j2-1;k2>=0;k2--)

for(int i=0;i<5;i++)

for(int i=0;i<5;i++)

if(count_3cards1_1==3)pos1=i1;

else

if(count_3cards2_1==3)pos2=i2;

else

if(pos1==pos2)

else

if(cards_num[r]==1)return 1;

else return -1;}}

}else

break;

case 7: //都是兩個對子。

int count_2cards1_1,count_2cards1_2,pos1_1,pos1_2,pos1_3;

int count_2cards2_1,count_2cards2_2,pos2_1,pos2_2,pos2_3;

count_2cards1_1=0;count_2cards1_2=0;

count_2cards2_1=0;count_2cards2_2=0;

for(i1=13;i1>1;i1--)

for(i2=13;i2>1;i2--)

for(j1=i1-1;j1>0;j1--)

for(j2=i2-1;j2>0;j2--)

for(k1=j1-1;k1>=0;k1--)

for(k2=j2-1;k2>=0;k2--)

for(int i=0;i<5;i++)

for(int i=0;i<5;i++)

if(count_2cards1_1==2)

else

}else

if(count_2cards2_1==2)

else

}else

/*if(pos1_1>pos2_1)return 1;

else }}

}else

break;

case 8: //都是只有乙個對子。

int pos_1[5];

int pos_2[5];

int i,j,k;

int whr1,whr2;

for(i=0;i<5;i++)

else

if(cards_num[r]==1)return 1;

else return -1;}}

else

if(whr1>whr2)return 1;

else return -1;

}break;}}

}}

int compare_cards_num(compare_5_cards &handcards)

else

if(cards_num[r]==1)return 1;

else return -1;}}

}};class compare_7cards

vectormax_7_to_5(vector&cards)

for(i=0;i<6;i++)

}if(hcd.compare_5cards(temp)==-1)}}

return max;

}};int main()

cout<<"second input the second 7 cards, first nums(1-14,1:a,14:k) ,and suit(c,d,h,s)"<>cards.num>>cards.ch;

cards_7_2.push_back(cards);

}int flag=cpr.compare_7(cards_7,cards_7_2);

if(flag==1)cout<<"the first 7_cards is higher than the scond one"<>ch;

return 0;

}

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

最近由於公司的業務的擴充套件 增加短牌玩法,這個短牌演算法我在github上找很長時間都沒有找到開源了。最後我只能自己寫短牌的演算法,說的挺哄人的其實我也是有參考德州撲克的演算法的。紅桃a是放在int型別中 int是32位元組記憶體存放 高16存放牌的大小 顏色 牌的值 低8位存放牌對映數的大小 0...

8張撲克牌問題

有8張撲克牌,兩張1,兩張2,兩張3,兩張4。現在需要排序成一排,要求每張牌號為1的牌中間間隔1張牌,每張牌號為2的牌間隔2張牌,每張牌號為3的牌間隔3張牌,每張牌號為4的牌間隔4張牌,請問有幾種放置方案?例如如下排列不符合規範,因為位置6和位置7放置的兩張4中間沒有間隔4張牌。位置1位置2 位置3...

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

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