殺されたカードは使えない

殺しの七並べでは殺されたカードは使うことができません。ところが前回までに作成したゲームでは殺されたカードも使えてしまいます。これではよくないのでルールに対応するように作り直します。

実際のルールでは殺されたカードは自分の下に置く
(相手に死んだカードの枚数がわかるようにする)

というルールと殺されたことを申告しなくてよいというルールがあります。

また死んだカードがなにか見えるように置くルールと伏せた状態で置くというルールがあります。このあたりはローカルルールです。

今回は殺されたカードは伏せて本来あるべき位置におくことにします。またどのプレーヤーが何枚殺されたのかも表示させます。

殺されたカードをテーブルのうえに表示させる

まず殺されたカードをテーブルのうえに表示させます。カードの表示はイベントハンドラ Form1_Paintで以下のようにしていました。

CardクラスのShowCardメソッドはこのようになっています。isExistsプロパティがtrueかfalseで表示するかどうか決めていました。

そこでCardクラスに少し手を加えて、カードが生きているかどうかを示すプロパティを作ります。

そして裏の状態でテーブルに出すためのメソッドを作成します。

これでイベントハンドラ Form1_Paintのなかで以下のようにすれば、殺されてしまったカードが裏向きに表示されます。

カードのIsLiveプロパティを切り替えるのはカードの死が確定したときでよいと思われます。

殺されたカードを裏向きでテーブルの上に出すとともに、殺した数と殺された数をカウントさせます。

それから新しく作ったカードのプロパティを変更した場合はもう一度ゲームを開始するときはリセットしなければなりません。

プレーヤー情報を表示させる

ShowPlayerInfoで各プレイヤーの情報を表示するのですが、残りのカード数、パスの回数のほかにも表示させることがあるのでステータスバーに表示するのはやめます。またカードが大きすぎるので小さめのサイズに変更しました。

カードサイズを変更

プレイヤー情報はデザイナで作成したラベルに表示させます。

見やすくするために黒字で表示されていますが、アプリをスタートさせるとフォームの背景が緑色になるので、プレイヤー情報は白地で表示させます。

コンストラクタが実行されるときに白地にします。

以下はプレーヤーの情報を表示するメソッドです。