2020 ソフトウェア設計及び演習用の班Wiki

20::gr05::判定モジュール

判定モジュール(担当:池田貴洋)

ファイル

モジュールの説明

ブラックジャックやポーカーでの勝敗の判定や、ポーカーの役の判定などを行うモジュール

result()
  • プレイヤーとディーラーの勝敗判定をし戻り値nを返す
    • n = 0 プレイヤーはバースト負け(バースト判定はホストが動く前に行う必要があるので不必要(形式的に用意))
    • n = 1 負け
    • n = 2 引き分け
    • n = 3 役ブラックジャックで勝利(この役で勝つと掛け金の1.5倍の払い戻しがありその計算をする為に)
    • n = 4 勝ち
    • (n = 5 エラーナンバー(存在しない値))
action_judge()
  • プレイヤーの次の行動(2枚配られた(hit(0)を2回した)後)を導きだし戻り値nを返す
    • n = 0 プレイヤーはバーストした このゲームはホストの行動なしで負ける
    • n = 1 プレイヤーは役ブラックジャック すぐホストの行動に移る
    • n = 2 プレイヤーはまだヒットしていないのでダブルダウンを含めた行動(double,hit,stand)ができる
    • n = 3 プレイヤーはヒットしたためダブル以外の行動ができる(hit,stand)
suit_num(n)
  • poker_hand(n)(後述の関数)で使う
  • nの人の手札のスートとランク(数字)を計算する。
    • (とりあえずn = 0なら自分、1なら相手)
poker_hand(n)
  • クローズドポーカーでもテキサスホールデムでも利用可能
  • n = 0 の時は自分の役を、n = 1 の時は相手の役を判定
  • ポーカーで5枚以上手札がある(テキサスホールデムのルールならコミュニティカードも手札と考える)時の役を判定し、戻り値として要素数不定の配列を返す
    • 役の判定には0番地の値を使う。
    • ロイヤルストレートフラッシュ
      • 戻り値[0]
    • ストレートフラッシュ
      • 戻り値[1,x] 1番地のxにはカードの中で一番大きいランク
    • フォーカード
      • 戻り値[2,x,y] 1番地のxはフォーカードが成立しているランクの値、2番地yはキッカー
    • フルハウス
      • 戻り値[3,x,y] xはスリーカードが成立している中で最大の値、yはペア以上が成立している中で最大の値
      • ex)0(エース)3枚、12(キング)3枚、3(4)の時、戻り値[3,0,12]
    • フラッシュ
      • 戻り値[4,arr] 1番地のarrには要素数5の配列、ランク順に格納
    • ストレート
      • 戻り値[5,x] xにはカードの中で一番大きいランク
    • スリーカード
      • 戻り値[6,x,arr] xにはスリーカードが成立しているランク、arrには要素数2でキッカー格納
    • ツーペア
      • 戻り値[7,x,y,z] xにはペアができている中で最大のランク、yは次に最大のランク、zはキッカー
    • ワンペア
      • 戻り値[8,x,arr] xにはペアができているランク、arrには要素数3でキッカー格納
    • ハイカード
      • 戻り値[9,arr] arrには要素数5でランク順に格納
    • エラー
      • 戻り値[10]
      • 普通にやれば出ない
poker_winner(p0,p1)
  • 引数p0,p1にはpoker_hand()で作成したデータがそれぞれ入っているものとする。
  • ポーカーでp0とp1の勝者を判定し、戻り値nを返す
    • n = 0 p0の勝ち
    • n = 1 p1の勝ち
    • n = 2 引き分け
    • n = 99 何かしらのエラー

最終発表へ戻る
班ページトップへ戻る


最終更新日:2020/08/06 00:14:42