ポーカーゲーム


  1. 謝辞
    このプログラムの原版は 村山氏 「ゲームアプレット」(工学社)です。カード画像、check()以外の多くのメソッドもここからの引用です。
  2. 概要
    ここでは、カードゲームのポーカーを行います。ディーラーと貴方の二人だけの勝負です。
    1. ゲームの進行
      上がディーラーのカード、下が貴方のカードです。5枚のカードが特定のパターンになると「役」を獲得します。役と役の強さで、カードの強さが決まります。5枚のカードが配られた時点で、貴方はチップを賭けます。次に、変更したいカードをクリックして、変更を要求することができます。変更は1回だけ可能です。変更でどの程度強くなるかは、貴方の運次第です。
       ディーラより強いカードになれば賭けたチップを回収し、さらに同額のチップをディーラから受け取ります。負けると、チップは没収されます。



      1. ポーカーゲームの面白さ
        ポーカーゲームは賭け金をつり上げていく過程に面白さがあるようです。手が弱くても、賭け金をつり上げ、相手が降りれば勝つことができます。このプログラムでは、賭け金をつり上げる機能はありません。
        また、ポーカーゲームは4,5人で勝負し、ディーラーは進行のみを担当します。ディーラは賭け金の数%の場所代と勝者からチップを受け取ります。
      2. ポーカーの役
        ワンペア:同じ数のカードが2枚ある
        ツーペア:ワンペアが2組ある
        スリーカード:同じ数のカードが3枚ある
        ストレート:5枚の数字が連続している
        フラッシュ:5枚のカードの種類が同じ
        フォーカード:同じ数のカードが4枚ある
        ストレートフラッシュ:ストレートでかつフラッシュ
        ロイヤルフラッシュ:フラッシュでかつ10からのストレートカード
        無役:上記の役がない
         3,4枚の連続カードの場合は役にはなりません。
    2. 操作方法
      実行すると、自分のカードだけ開きます。BET$1キーを押すと1ドル単位で賭けることができます。交換したいカードを選択し、changeボタンを押すと選択したカードが入れ替わり、「勝負」になります。貴方が勝てば、賭け金が戻り同額の報酬があります。負けると、賭け金が没収されます。
       DEALボタンを押すと、カードを配ります。
  3. プロジェクト
    1. カードデータ
      imagesフォルダに各カードの画像(gif)が保存されています。back.gifは裏面の画像、diamond1.gifはダイアのAの画像です。サイズは55*81画素です。
    2. クラス
      1. Poker3
        1. 主要データ
          Image Cards[] = new Image[52]; カードの画像を記録します。
          boolean change[] = new boolean[5]; 交換するカードを記録する
          boolean use[] = new boolean[52]; 既に配られているカード番号をtrueとする。
          user,dealer; ユーザとディーラのPlayerクラスのインスタンス。
        2. init()
          カードを読む、
          メディアとラッカーを利用し、すべての画像の読み込みを確認する。
        3. paint()、update
          カードと得点、ボタンを表示する。
          ここでは、ボタンもグラッフィクスで表示している。ボタンのクリックは、mousueDown()で判別している。
        4. change()
          イベントハンドラでなく、mousueDown()から起動される。選択されているカードを乱数を利用して未配布のカードと交換する。
        5. judge()
          双方の役とポイントから、勝者を判定する。
        6. void button1_actionPerformed(ActionEvent e)
          得点計算のチェック用に追加した、一時的なボタン。
          親のカードを指定した番号のカードで交換する。
           testCard[]={5,18,31,44,15}
      2. Player
        1. 変数
          int value[]= new int[5];//手札の番号を記録する
          int usefulValue = 0; //役の種類を記録する
        2. check()
          カードの役やポイントを求める。
          ペアカードは同じ種類のカードの枚数を調べて処理をしている。
  4. 実行
    概要の操作方法を参考にしてください。

  5. ダウンロード
    このプロジェクトをダウンロードできます。次の行をクリックして、poker.exeファイルを適当なフォルダに保存します。
    ダウンロード開始

    このファイルは自己解凍型の圧縮ファイルです。このファイルを実行すると指定したフォルダに必要なファイルが生成されます。

トップに戻る