最初にカードを出すプレーヤーを変更する

新しいゲームが始まったら最初にカードを出せるプレーヤーも変えたいものです。そこでライバルのターンに関するメソッドを一部変更します。

RivalsTurnAsyncメソッドの変更

新しいゲームがスタートするとき、以下の処理が行なわれます。最後のRivalsTurnAsyncメソッドを少し変えます。

これまで使用してきたRivalsTurnAsyncメソッドには引数がありませんでした。これを変更します。ゲームの最初にカードを出すプレイヤーを変更するためには引数firstRivalをRivalsTurnメソッドに渡します。

それからRivalsTurnAsyncメソッドを引数ありに変更した以上、panelSouth_MouseDownメソッドも最後の部分が変更になります。

RivalsTurnメソッドの変更

これは引数ありのRivalsTurnメソッドです。最初にカードを出す人を変更するには

for(int i = 0; i < count; i++) { // 省略 } としている部分の0を適切な値に変更すればよいということになります。 引数が1のときはこれまでどおりの処理が行なわれます。また最初に自分がカードを出す場合は引数を0にします。

ライバルターンが終わったときに自分のターンになるのですが、最後にカードを出したライバルがAを出している場合はスキップさせられますし、2を出していた場合は2を出すかカードを取らされることになるのでその判定が必要です。 また出せるカードがない場合は自動的に処理がおこなわれます。