11

Click here to load reader

TDD Boot Camp Tokyo for C++ 2014-01 課題

Embed Size (px)

DESCRIPTION

TDD Boot Camp Tokyo for C++ 2014-01 で使用した課題です。ブラックジャックを作ります。 反省点としては、課題2以降が抽象度を上げすぎたので、もう少し具体化しておいたあげた方が良かったなぁと思いました。

Citation preview

Page 1: TDD Boot Camp Tokyo for C++ 2014-01 課題

TDD Boot Camp Tokyo for C++ 2014-01 課題

@imagire

Page 2: TDD Boot Camp Tokyo for C++ 2014-01 課題

• ペアプログラミング – Aさん:実装 – Bさん:先の実装方法を考える(あげあし取りで

は無い) • 課題の小項目をクリアしたらペアの内容を

交代してください • 課題が終わったら、次の課題を取りに来て

下さい • 最初に自己紹介しましょう

課題の進め方

Page 3: TDD Boot Camp Tokyo for C++ 2014-01 課題

• ディーラーは2枚のカードを配る – プレイヤーには2枚のカードを表向き – ディーラーには一枚を表向き、もう一枚を裏向き

• 配られた後でプレイヤーは行動を選べる – ヒット:追加で引く(何枚でも引ける) – スタンド:行動終了

• プレイヤーの合計値が確定した後ディーラーが引く – 合計値が16以下である限り、追加でカードを引く – 合計値が17以上の場合はカードを引くことができない

• カードの合計値が21に近い方が勝ち – 「2」~「10」は、その数字をそのまま数える – 絵札は10として計算 – Aは1としても11(ソフトハンド)としても計算できる – 合計値が21を超えた時点(バースト)で負け – 同じ数の時は引き分け

お題説明: ブラックジャック

Page 4: TDD Boot Camp Tokyo for C++ 2014-01 課題

1-1. 2~10は、数字をそのまま数える 1-2. 絵札(J, Q, K)は、10として計算 1-3. 複数枚の合計値を数える 1-4. Aは、1か11として数える

なるべく21を超えない21に近い値として計算

課題1: 得点計算

Page 5: TDD Boot Camp Tokyo for C++ 2014-01 課題

2-1. プレイヤーには最初にカードが2枚配られる

2-2. プレイヤーは、ヒットすることでカードを追加でもらうことができる

2-3. スタンドを選択すると、プレイヤーはゲーム終了まで何もできない

2-4. プレイヤーのカードの合計値が21を超えると負け(バースト)

課題2: プレイヤー

Page 6: TDD Boot Camp Tokyo for C++ 2014-01 課題

3-1. ディーラーには最初にカードが表裏一枚ずつ配られる

3-2. プレイヤーが行動を終えると、ディーラーの裏のカードが表向きとなる

3-3. ディーラーは、カードの合計値が16以下の場合は、引き続けなくてはならない

3-4. ディーラーは、カードの合計値が17以上の場合は、それ以上カードを引くことができない

3-5. ディーラーのカードの合計値が21を超えた場合はディーラーの負け(バースト)

課題3: ディーラー

Page 7: TDD Boot Camp Tokyo for C++ 2014-01 課題

5-1. ユーザーの入力によって、ゲームをプレイしてみよう

課題5: あそぶ

Page 8: TDD Boot Camp Tokyo for C++ 2014-01 課題

• ルールの説明が足りていませんでした – ブラックジャック:合計値が21の場合に、

Aと「10」または絵札の組み合わせが最も強い 課題6-1. 所持カードがブラックジャックか判

定する 課題6-2. 勝敗にブラックジャックを考慮する

課題6: ブラックジャック

Page 9: TDD Boot Camp Tokyo for C++ 2014-01 課題

A-1. AIプレイヤーはAを1と数えた場合に、17点以上あれば常にスタンド、11点以下では必ずヒットする

A-2. ディーラーのアップカードが3~6の場合は12点以上、16点以下でもスタンドする

A-3.ディーラーのアップカードがAや7以上の場合は積極的にヒットする

補題A: AIプレイヤー

Page 10: TDD Boot Camp Tokyo for C++ 2014-01 課題

• ルール – 最初にプレイヤーが掛け金を賭ける – 最後に賭け金を清算する

• プレイヤーがバーストした場合は、賭け金を没収 • ディーラーがバーストした場合は賭け金の2倍を受け取る • プレイヤーがブラックジャックで勝った時には、賭け金の2.5倍

が戻る B-1. プレイヤーがバーストした場合には賭け金没収 B-2. プレイヤーがブラックジャックで勝った時には、

賭け金の2.5倍が戻る B-3. プレイヤーがブラックジャック以外で勝った時に

は、賭け金の2倍が戻る

補題B: オッズ

Page 11: TDD Boot Camp Tokyo for C++ 2014-01 課題

B-1. 複数人でも遊べるようにしてみよう

補題C: マルチプレイヤー