BLACK JACKの作成 - 船舶海洋工学コース ―大阪

BLACK JACKの作成
• ブラックジャックのルール
• 概要
• 勝敗の判定
• 開発中の問題点
•
Aの扱いについて
•
配り直し(DEAL)
• 工夫した点
•
コンピュータの思考
• 課題点
ブラックジャックのルール
・カードを二枚づつ配り、
1枚目は伏せる。(DEAL)
・子から数字が足して21に
近づくように山からカードをひく。(HIT)
・21を超えたら負け(BURST)
・HITし終えたら勝負(STAND)
・互いにオープンし、数字が21に近いほうが
勝ち!
特殊ルール
• ただし、JACK,QUEEN,KING,は10とし
て計算する。
• また、Aはプレイヤーの意思で1と11を
選択可能。
• 子が手札が5枚になって21以下の時は
5カードで、勝ちとする。
概要
• JAVAでBlackJackをプ
ログラミングした。
• 実際に人を相手に
ゲームをしている感覚
に近づくようにした。
勝敗の判定
•
•
•
•
•
•
以下の順に判定する。
プレイヤーが5枚カードを持っていて、21以下
ならプレイヤーの勝ち
プレイヤーが21を超えたらプレイヤーの負け
COMが21を超えたらプレイヤーの勝ち
プレイヤーがCOMより数が多ければ勝ち
同じ時は引き分け
少ない時はプレイヤーの負け
開発中の問題点
Aの扱いについて
• 基本的には11として
計算する。
• 手札の合計が21を超
えてしまった時はAを
1として考える。
• 複数Aを持っている時
は先に引いたカードを
1とする。
配り直しについて
• 変数宣言の場所が問
題だった。DEALボタ
ンを押すたびに、すべ
ての変数を初期化し
なくてはいけないので、
ローカル変数を気軽
に宣言できないことが
わかった。
工夫した点
コンピューターの思考回路
• まず、自分のカードの
合計が15以下の時
は、黙って引く。
思考回路2
明らかにプレイヤーが強いとき
• プレイヤーのカードの見えてる部分(2枚目以
降)の合計が11や10の時は、おおざっぱに
18以上ないと5割以上の確率で負ける。
• 見えてるカードが10のとき
プレイヤーは19以上になっている確率が5割
以上なので、バーストを考えてもHITしたほう
が得になる。
思考回路3
プレイヤーの手の推測
• 見えてる部分の合計
が同じ10や11でも、
HITの回数が少ない
ほうが強いと推測でき
る。特にHITなしでA
が見えているときは18
では不安。
思考回路4
相手が弱そうなとき
• プレイヤーの手の見
えている部分が7以下
の時は無理せず15
あったらSTAND。
• ただし、三枚見えてい
る時は16がライン。
課題点
やりのこした事
COMの戦略性をもっと上げたかった。
COM、またはPLAYERを複数にした
かった。
BETボタンがないと・・・