点数はどうするのか?

ドボンは1回で終わりではなく、時間や回数を決めて何回か繰り返してプレイします。そこで必要になるのが「点数計算」です。これはさまざまなルールがあるのですが、今回はこれを採用することにします。

ドボンのゲームルール – トランプスタジアム

これによると各カードは

役札(A, 2, 8, J)は20点
絵札(Q, K)は10点
その他(3, 4, 5, 6, 7, 9, 10)は数字通りの点数

となっています。

ゲームが終了したときに上がったプレイヤー以外は手札のカードの得点を合計した分だけマイナスとなり、上がったプレイヤーには他のプレイヤーのマイナスの合計分がプラスとして与えられるわけです。

ではそのように作りかえましょう。

Scoreプロパティ

まず点数を管理するためにはPlayerクラスに新しいプロパティを追加します。

点数計算のタイミング

誰かが上がる、またはドボン(ドボン返しを含む)をしたときはRivalsTurnメソッドがfalseを返します。そこで

となっているのを

と変更します。

また自分が上がったときのことも考える必要があります。

GameCountプロパティ

また何回続けるのかも指定する必要があります。

ひとつのゲームが終わったときの処理

ひとつのゲームが終わったら自作メソッドのOnFinishOneOfGamesを実行します。ここで点数計算とその結果の表示をおこないます。またGameCountMaxとGameCountが等しくなったらゲームは終わりです。

OnFinishAllGamesはすべてのゲームが終了したときに呼ばれます。テーブルの上にあるカードを消去してメッセージボックスを表示させます。

点数計算と結果の表示

ゲームが終了したときにカードをもっている人が敗者、もっていない人が勝者です。

まず敗者がもっているカードを調べます。そしてその合計を勝者の得点とします。点数計算が終わったらShowScoreメソッドを呼んで結果を表示します。

これは結果を表示するフォームです。

点数が一番高い人と低い人がわかるように表示色を変えています。