開発日記⑱ 手牌から牌を捨てて河に表示する

前回までの進捗

前回は、配牌した手牌を画面に表示し、牌コードを日本語表記へ変換して見やすく並べられるようにした。
今回は、表示した牌を実際に選んで捨てられるようにする。

手牌をクリックして打牌する

これまでは手牌を見るだけだったが、自分の手番では牌をクリックできるようにした。
クリックした牌を手牌から取り除き、捨て牌として河へ移動する。
親の第一ツモについても同じように扱い、右端のツモ牌をそのまま切ることもできる。

対局中の状態をまとめて管理する

打牌を入れると、

  • 各プレイヤーの手牌
  • ツモ牌
  • 河
  • 現在の手番
  • 残っている牌山
  • ドラ表示牌

など、管理する情報が一気に増える。
そこで、これらを対局中の状態としてまとめて扱うようにした。配牌だけを持っていた段階から、少しずつ「1局を進行させるための状態」に変わってきた。

捨てた牌を河に並べる

4人それぞれに河を用意し、打牌した牌を表示するようにした。
まだ本格的な麻雀卓の配置ではないが、

東家の河
南家の河
西家の河
北家の河

という形で、それぞれの捨て牌を確認できる。
河が空の場合も分かるようにしている。

自分の手番だけ操作できるようにする

どの席でも自由に牌を捨てられる状態では対局にならないので、現在の手番も管理する。
自分の手番でツモ牌を持っているときだけ牌を選択でき、それ以外では操作できないようにした。
牌にマウスを重ねたときは少し浮くようにして、クリックできる牌だと分かりやすくしている。

打牌したら次の席へ

牌を1枚捨てると、その席の手番は終了する。
その後、

北 → 東 → 南 → 西 → 北

という順番で次の席へ手番を移す。
まだこの段階では他家の手番を自動で最後まで処理するところまでは進めていないが、まずは「1枚切って次の人へ進む」という基本部分ができた。

今回できたこと

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

  • 手牌をクリックできるようにした
  • ツモ牌も打牌できるようにした
  • 捨てた牌を手牌から取り除くようにした
  • 4人分の河を追加した
  • 捨て牌を河へ表示するようにした
  • 現在の手番を管理するようにした
  • 打牌後に次の席へ手番を進めるようにした

これで、配牌を見るだけだった画面から、実際に牌を切れるところまで進んだ。

今回の進捗のキャプチャ
河
今回の進捗のキャプチャ
打牌
他家の進行がまだないため、1度打牌したら詰み。

次回は、自分以外の席をCPUとして自動でツモ・打牌させ、自分の手番まで対局を進められるようにする。

実装の難易度の割に見える進捗が少ない。
けど進んではいる。牛一。

コメント

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