Unityでポーカーを作る その3 役の判定

こんにちは、インターン生の小玉です。
3日目は役判定に触れていきます。

作ろうとした上で気づいたことは、処理上では、
ペア系
ストレート系
フラッシュ
に分かれて作ります。

ペア系統は、組み合わせの数だけ参照してペアが何個あったかを見ます。
ワンペア、ツーペアはそのままペアが1つ、2つで分かりやすいですが、スリーカードは3回、フルハウスは4回、フォーカードは6回組み合わせ上ペアになります。これを利用し、ペア系の判定を行いました。

次にストレート系です。
5枚のカードの最大と最小の差が4であればストレートの可能性がありますが、
2,2,3,5,6
のようなケースも考えられます。なので、差が4で、かつペアが無いという条件であればストレートの判定が行えます。
ついでにロイヤルの判定も行います。
ロイヤルの条件は、10,J,Q,K,Aになっていることです。
KとAの端と端があるので、先ほどの方法ではうまくいきません。ですが、すべてが違うカードという意味のペアが無いという条件は使えます。
そこで、合計値を使ってみます。ロイヤルの合計値はすべて47になります。
この2つの条件だけでは例の5つの数字まで絞り込めないので、もう1つ、最小の数字が1という条件を追加します。
すると、
・ペアが無い
・合計が47
・最小が1
これらの条件を満たすものはロイヤルだけになります。

次はフラッシュの判定です。
単純に、1つのカードをほかのカードのマークを比べ、4回一致した時にフラッシュの判定を行います。
ですが、マークを比べ一致しなかった時にフラッシュではない判定をした方が文が短くなることに気づき、改めました。
これで、一致した数を保存する変数宣言、4回回すfor文、一致した数によってフラッシュかを判定するif文が、
一致していないか見るを最大4回回すfor文
だけで済みました。

後は良い感じにストレートとフラッシュとロイヤルを組み合わせて、ストレート、フラッシュ、ストレートフラッシュ、ロイヤルストレートフラッシュの判定が行えました。

最後に
google先生大変お世話になりました、ありがとうございます。

興味を持たれた方はお気軽にお問い合わせください。

インターンシップへの申し込み・お問い合わせ先

インターンシップへの申し込み・お問い合わせ先
メールでのお問い合わせは、下記フォームに入力して送信してください。
ご氏名 (例)山田 太郎
メールアドレス 半角英数字:ご入力間違いのないようにご注意ください
メールアドレス(確認用) 半角英数字:ご入力間違いのないようにご注意ください
電話番号 (例)0354339211 ※ハイフン抜きで入力してください
題名
お問合わせ内容

アーカイブ

カテゴリー