開発日記⑲ CPUの手番を自動で進める

前回までの進捗

前回は、手牌から牌を選んで捨て、河へ表示できるようにした。
今回は、自分以外のプレイヤーをCPUとして動かし、自分の手番まで自動で対局を進められるようにする。

CPUもツモして打牌する

これまでは、自分が牌を捨てると次の席へ手番が移るところまでだった。
ただ、その先を人間が操作するわけにはいかないので、CPUの手番では自動でツモと打牌を行うようにした。
流れとしては、

CPUの手番
↓
牌山から1枚ツモる
↓
ツモ牌をそのまま捨てる
↓
次の席へ進む

というシンプルなもの。
まだCPUが手牌を考えて切るわけではなく、まずは対局を進行させることを優先している。

自分の手番まで自動で進める

CPUを1人だけ動かして終わりではなく、自分の席になるまで連続して処理するようにした。
例えば自分が南家なら、

北家
↓
東家
↓
南家

と進み、南家がツモした状態で止まる。
そこからは自分で捨てる牌を選べる。

自分が親ならそのまま操作する

南4局では北家が親なので、自分が北家なら最初から自分の手番になる。
この場合はCPU処理を挟まず、そのまま第一ツモから打牌できるようにした。
逆に、自分の席を変えた場合は、その席までCPUの手番を進めてから操作を始める。

自分が打った後もCPUが動く

自分が1枚捨てると、そこからまたCPUの手番を自動で進める。
そのため、

自分が打牌
↓
CPUがツモ・打牌
↓
CPUがツモ・打牌
↓
CPUがツモ・打牌
↓
自分がツモ

という流れを繰り返せるようになった。
これで、少なくともツモと打牌だけなら1局をかなり先まで進められる。

今回できたこと

今回の進捗は以下のとおり。

  • CPUが牌山からツモできるようにした
  • CPUが自動で打牌するようにした
  • CPUの河へ捨て牌を追加するようにした
  • 自分の手番まで自動で進めるようにした
  • 自分の席に応じて開始位置を調整した
  • 自分の打牌後もCPU処理を続けるようにした

まだCPUの打牌は単純だが、対局を止めずに進めるための基本的な流れができた。

今回の進捗のキャプチャ
打牌前
今回の進捗のキャプチャ
打牌後、CPUも打牌し、自分の番が回ってくる

次回は、牌山がなくなったときに局を終了し、流局として扱えるようにする。

難易度もあり、ロジックというかライブラリの使い方という部分もあり、
「記事でこういう風に実装してます」という書き方ができなくて、記事がすごく淡泊に感じる…。
牛一。

コメント

タイトルとURLをコピーしました