ドボンのローカルルールのなかにはドボンでしか上がりを認めないというものもあります。カードを1枚しか持っていないときに順番が回ってきたら積み札から1枚引かないといけません。ドボン以外では上がることが許されないのです。

ではそのようなルールを設定することもできるようにしてみましょう。(ドボンシリーズだけでけっこう引っ張れそうな気がしてきたと思うのは私だけ?)

まず設定のクラスに新しいメンバーを加えます。

それから設定のダイアログとダイアログのクラスに書き加える必要があります。

設定をファイルとして保存するときも追加が必要な箇所があります。

まずはプレイヤーがカードを出すメソッドについて書き直す必要がありそうです。

これまでのルールではプレイヤーがカードを取らなければならないときは限定されていました。これからはそうでもないので積み札がなくなっている可能性があるときにはそのときの処理が必要です。

ライバルのターンの動作を定義しているRivalsTurnのなかでPutCardメソッドがnullを返すことがあるので適切な処理をする必要があるというのは前回とおなじです。

C#でドボンをつくる カードが出せないときは1枚?ローカルルール

またRivalsTurnが終わったら自分のカードを調べて出せるカードがあるか確認して、ない場合は自動で処理をしています。これがCheckPrevMyTurnメソッドです。