前回まで七並べゲームを作成してきました。他のカードゲームもつくってみます。今回はババ抜きを作ります。

参加者は自分以外はコンピュータです。前回同様、コンピュータには一台で複数役をやってもらいます。

使用するカードはスペード、ハート、ダイヤ、クラブをそれぞれ13枚とジョーカーを使います。

ゲーム開始の準備

まずカードをつくる必要があります。ただ七並べのようにすべてのカードをテーブルのうえに置く必要はありません。フォームに表示されるカードは自分のカードと自分が引こうとしている相手のカードだけでよいのではないでしょうか? あと他のライバルがカードを何枚持っているかがわかれば充分であると考えます。

今回もカードクラスを作成します。カードに必要なことは記号、番号……くらいでよいと思います。トランプに書かれているマークのことをスート(英語: suit)というそうです。以降は「スート」という言葉を使います。

七並べゲームではプレイヤークラスは最後まで作りませんでしたが、今回は先につくります。プレイヤークラスはプレイヤーの名前、自分がもっているカード、カードがなくなったときの順位などを管理します。

Cardクラスをつくる

Playerクラスをつくる

次にプレイヤーに関するクラスを作成します。それぞれのプレイヤーの名前や持っているカードを管理させます。

カードを生成する

ではゲームを開始するまえにカードをつくりましょう。

カードがないとゲームにならないので、コンストラクタのなかでカードを作ってしまいます。そして生成された53枚のカードをフィールド変数 Cardsに格納します。

プレイヤーの生成

つぎにこれをプレイヤーたちに配るのですが、そのまえにプレイヤーの人数を決める必要があります。七並べでは4人で固定でしたが、ババ抜きゲームでは変更できるようにします。

とりあえず5人にしました。ここに新しいプレイヤーに適当な名前をつけて参加させることができます。名前は日本人の名字を多い順にならべただけです。

5位  伊藤
6位  渡辺
7位  山本
8位  中村
9位  小林
10位  加藤

と続きます。以上、どうでもいい話でした。

プレイヤーの生成もコンストラクタのなかでやってしまいましょう。

カードを配るためのメソッド

出場者が決まったらカードを配ります。メニューの[ゲームスタート]がクリックされたらゲーム開始になるのですが、2回目を続けて行なう場合、持っているカードを初期化しなければなりません。

カードを配るメソッドはGameStartというメソッドをつくってそのなかで実行するのが適切ではないでしょうか?

実験してみると正しく配られていることがわかります。