TCP通信を使って、P2Pのトランプカードゲーム(15点というゲーム)を制作
ルールは子→親の順にトランプを任意の数だけ引き、15点に近い人が勝利するゲーム
尚、15点を超えた場合は負けとなる。両者とも15点を超えるか、同じ点数の場合は引き分けとなる
ニックネーム、ポート番号、Server/Clientを選択し、通信開始
Serverで対戦部屋をインスタンス化し、ゲーム進行
複数回対戦可能
*この後にServer側のドローがあるが、同じ挙動であるため割愛
通信開始前の名前、ポート番号、Server/Clientの登録やゲーム終了後のもう一度対戦など、ゲーム外の機能も充実させた点。
ゲーム内での表示を工夫した。例えば、ゲーム内で自分と相手のニックネームが呼ばれたり、トランプの1,11,12,13はそれぞれA,J,Q,Kの表示にした点など。
ポート番号や選択肢が不適なものが入力された時のエラー処理をした点。
通信クラスと対戦部屋クラスの間で相互依存しないようにするために、UMLのデザインパターンを参考に仲介者クラスを用意した点。これにより、通信クラスは通信関連のことのみ、対戦部屋クラスはゲーム進行のことのみのように、各クラスの役割が明確になった。
UI(インターフェース)→仲介者、通信 (コントローラー)→ 対戦部屋、山札、手札(エンティティ)のような依存関係を意識して開発した点。
将来のUI拡張を意識して、出力はUIクラスのみで行い、他クラスではSystem.out.prntln()などの出力処理をしないようにした点。
継承、抽象クラス、Setter、Getterなどのオブジェクト指向を活用し、情報の隠蔽などのメリットを利用した点。






