テキサスホールデムにおける役判定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
karajan

テキサスホールデムにおける役判定

#1

投稿記事 by karajan » 14年前

ポーカーを作ろうと思い、ルールはテキサスホールデムを採用しました
プレイヤーの手札2枚と、場の5枚のカードを組み合わせて役を作るわけですが、
7枚のカードの役判定で悩んだため、こちらに質問させていただきました。

とりあえずということでペア系だけ判定できるプログラムを作ったのですが

//--------役判定-----------

for(i=0;i<3;i++){ //iはプレイヤーの数です
n=0;
for(j=0;j<6;j++){
for(k=j+1;k<7;k++){
if( (hand[j]/4)==(hand[k]/4) ) //÷4すると数が出る
n++;
}
}
switch(n){
case 1:
player.Hand_Flag=1; //ワンペア
break;
case 2:
player.Hand_Flag=2; //ツーペア
break;
case 3:
player.Hand_Flag=3; //スリーカード
break;
case 4:
player.Hand_Flag=6; //フルハウス
break;
case 6:
player.Hand_Flag=7; //フォーカード
break;
default:
player.Hand_Flag=0; //とりあえず役なしに
}
}
7枚のカードをhand配列に格納しています

これでは3カードが2つあった場合、4カードと判定されてしまうのです。
また、フラッシュとストレートの判定についても、うまく作れず困っています。
なにかうまいやり方があれば教えてください。
コンパイラはVC++2008です。

“C言語何でも質問掲示板” へ戻る