Java講座: オブジェクト指向演習 ~ポーカーゲームを作ろう~
目的
- ポーカーゲームの作成を通して、オブジェクト指向構文に慣れる&新しい概念を理解する
- MVCモデルを利用したアプリ設計について知る
ゲームの概要
今回作るポーカーゲームの仕様です。
- GUIで動作する。
- ゲームのルールはドローポーカーを採用(ドローポーカーのルールについてはこちら)
- 1対1形式
- 手札の交換は1回のみ
MVCモデルとは?
主にWebシステムなどでよく使われる開発手法です。システム全体をModel、View、Controllerの3つに分けて役割分担を行うことで、仕様変更やバグ修正に強い開発を行うことができます。Webシステムでよく使われるものではありますが、今回のようなGUIアプリにもこの手法を当てはめることができます。
- Model: データの取得や操作・計算などのロジックを担当する。ゲームの見た目などには一切関与しない。
- View: 見た目を担当する。データの操作などには一切関与しない
- Controller: ユーザーの操作(テキストの入力やボタンのクリックなど)を監視し、Modelに処理を依頼する。その後、Modelの計算結果をViewに伝える。

これが理想的なMVCモデルの設計ではありますが、これを忠実に再現すると抽象性が上がりすぎてしまい、コードを書く難易度が跳ね上がってしまうため、今回はもう少し初心者でも扱いやすい設計をします。今回のプログラムにおけるMVCの各役割は以下の通りです。
- Model: ポーカーを構成するオブジェクト(Card, Deck、Userなど)の設計図をまとめたもの。
- View: ゲームの見た目を担当する。一般的なMVCモデルと同じ
- Controller: Modelが持つメソッドを利用してゲームの進行を担当し、ゲーム進行に応じてViewを更新させる。
もっと簡潔に言います。Modelはオブジェクトの設計図、Viewはゲーム画面、Controllerはそれ以外全てです。
こういうのは習うより慣れろというのが筆者の持論です。早速ゲームの実装に移っていきましょう。