課題5 課題4を利用し、ほかのトランプゲームを作成せよ(フレームワーク)
作成するトランプゲーム 【ブラックジャック】
ブラックジャックルール
・マスター1人
・プレイヤー1人
・カードはジョーカーなしの52枚
・カードの数字の合計が21に近いほうが勝ち
・10~13はすべて10としてカウント
・エースは1か11で選べる
・カード2枚で21になったらブラックジャック
・ブラックジャックの場合、相手も同じでなければ、すべて勝ちとなる。
・最初にプレイヤー2枚分けて公開
・次にマスターが2枚引いて1枚だけ公開
・プレイヤーは数字の合計が21に近づくようにカードを引く
・プレイヤーは21を越えたらバースト→プレイヤーの負けゲーム終了
・次にマスターは17以上になるまで引き続ける
・21を越えたらバースト→プレイヤーの勝ちゲーム終了
・より21に近かった人が勝ち
・同じだったら引き分け
プログラムの説明
あらかじめユーザーの名前と所持金額を設定し、インスタンス化。
次にディーラークラスの名前を決めてインスタンス化。この時ディーラーの種類を決めることができる。
・Dealer 普通のディーラークラス。引く手もランダム。
・BeginnerDealer 新米ディーラークラス。比較的バーストしやすい。
・VeteranDealer ベテランディーラークラス。絶対にバーストしない。
・FakeDealer イカサマディーラークラス。絶対にブラックジャックになる。
プログラム実行時
最初にいくら賭けるか標準入力で受け付ける。
そのあとにユーザーに2枚、ディーラーに2枚カードが分けられる。
ユーザーは2枚とも手札を公開、ディーラーは1枚のみ公開する。
ユーザーはヒットするかを標準入力で受け付け、ステイまたはバーストするまで続ける。
21を越えなかった場合、ディーラーの番となり、ディーラーは17以上になるまで引き続ける。
ディーラーがバーストした場合、ユーザーの勝ちとなる。21以下の場合、比較し勝敗を決める。
より21に近かったものが勝ちとなる。
ユーザーが勝った場合は、賭けたチップの2倍、負けた場合はなし、引き分けは等倍のチップがもらえる。
その後、再戦するかを標準入力で受け付け、Yesなら以上の処理を繰り返し、
Noならゲーム終了、または所持金が0になったときにゲームが終了する。