開発日記⑯ 4人分の配牌を作って親の第一ツモまで進める

前回までの進捗

前回は、麻雀ライブラリを導入して牌山を作り、そこから1枚ツモできるところまで確認した。
今回は、その牌山を使って実際の対局開始に近い形まで進める。

4人分の手牌を用意する

まずは東家・南家・西家・北家それぞれの手牌を用意する。
最初は全員空の状態から始めて、牌山から順番に牌を取り出し、4人へ13枚ずつ配る形にした。

東家 13枚
南家 13枚
西家 13枚
北家 13枚

これで合計52枚が配られる。

親だけ第一ツモを追加する

今回は南4局を想定しているので、親は北家として扱っている。
4人へ13枚ずつ配ったあと、親だけさらに1枚ツモする。
そのため、

東家 13枚
南家 13枚
西家 13枚
北家 13枚 + 第一ツモ1枚

という状態になる。
これで、実際に親が最初の打牌を選べる直前まで進められるようになった。

配牌が正しいかテストする

配牌処理は、ぱっと見では正しく動いているか判断しづらい。
そこでテストでは、

  • 4人全員が13枚持っている
  • 親の第一ツモが1枚ある
  • 配牌された牌が有効な牌コードになっている
  • 同じ種類の牌が5枚以上存在しない
  • ドラ表示牌が1枚ある

といった点を確認している。
さらに、配牌52枚と親の第一ツモ1枚を取り出したあと、残り牌数が69枚になっていることも確認した。

配牌をひとまとまりで扱う

今回、配牌結果は

  • 4人分の手牌
  • 親の席
  • 親の第一ツモ
  • 残り牌数
  • ドラ表示牌

をひとつのデータとして返すようにした。
こうしておけば、このあと画面へ表示したり、打牌処理へ渡したりするときにも扱いやすい。

少しずつ「対局」らしくなってきた

これまでは点数条件を計算する処理が中心だった。
今回からは、

牌山を作る
↓
4人に配る
↓
親が1枚ツモる

という、実際の麻雀の流れが少しずつ形になってきた。
まだプレイヤーが牌を切るところまではできていないが、対局開始時の状態は作れるようになった。

今回できたこと

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

  • 4人分の手牌を用意した
  • 各プレイヤーへ13枚ずつ配牌した
  • 親の第一ツモを追加した
  • 残り牌数を取得できるようにした
  • 配牌内容が正しいかテストを追加した

次回は、この手牌を画面で扱いやすくするために、牌コードを「一萬」「東」「赤五筒」のような表示へ変換し、麻雀らしい順番に並べられるようにする。

ライブラリの仕様を把握するのに時間がかかって、進捗牛歩。でも一歩。
牛一。

コメント

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