September 27, 2014

Shinosaka.rbのペアプロに参加しました。 AEの5チームに別れて、それぞれのお題で発表しました。

各チームのお題はこちら

A 自動販売機
B 自動販売機
C 自動販売機
D ブラックジャック
E ブラックジャック

クレオ大阪北の1階の会議室は、ネットワークが繋がらないというトラブルで開始が遅れて 1時間30分程度のコーディングでしたが、楽しくペアプロができました。

RubyKaigi 2014のグッズとGroongaのステッカーを頂きました。 (来年は行きたいです。)

rubykaigi2014

ペアプロ

自動販売機

Ritoさん、ogomTeamBは自動販売機のお題でした。

まず、作る物をユースケース図で話し合い。

vm_usecase

次に、アクティビティー図で作るパートを分けました。

vm_activity

bundle gem autosaleでベースを作り、テストを書く予定でいたが 動くソフトウェアを作って終了しました。(コードはGitHubで公開しています。)

ブラックジャック

別チームのお題ですが、ユースケース図とアクティビティー図を描いてみました。

Use Case

Code

@startuml

:Dealer:
:Prayer:

Dealer -> (カードが配られる)
(カードが配られる) <- Prayer

Dealer --> (合計値を21に近づける)
(合計値を21に近づける) <-- Prayer

Dealer ---> (合計値が21を超えると負け)
(合計値が21を超えると負け) <--- Prayer

(合計値を17以上にする) <- Dealer
(合計値が17以上はカードを引けない) <-- Dealer

@enduml

Draw

bj_usecase

Activity

Code

@startuml

(*) --> "賭ける"

"賭ける" -> "1枚目を表で配る"

"1枚目を表で配る" --> "プレイヤーの2枚目を表で配る"

"プレイヤーの2枚目を表で配る" -> "ディーラーの2枚目は裏で配る"

"ディーラーの2枚目は裏で配る" --> "プレイヤーはヒットかスタンドを選択する"

"プレイヤーはヒットかスタンドを選択する" --> "ディーラーは17以上になるまでカードを引く"

if "プレイヤーの全員がスタンドになる" then
  --> [YES] "判定する"
else
  --> [NO] "プレイヤーはヒットかスタンドを選択する"
endif

"判定する" --> (*)

@enduml

Draw

bj_activity

Tips

ユースケース図やアクティビティー図はPlantUMLを使いました。