日付はかわっていませんが本日出た不具合

平和で不具合です。
1122334567899 で、9自摸の場合は、平和、一通、一盃口になるわけですが、99が雀頭で、自摸牌==雀頭の場合は平和非成立という余計な処理をしていたために5567 5自摸の場合なんかも同様に、平和判定されていませんでした。
点数計算の場合は、高い符を優先にするため、567-5 5自摸、単騎として判定したほうが2符付くのでいいのですが、平和の場合は、55-67 5自摸で両面としなければならないのです。


役判定、聴牌判定のプログラムの不具合を集計すると、国士、七対子、平和が多いようです。他の役と比べて条件が複雑なため不具合が出やすいものなのですが、全体的に役判定、聴牌判定の不具合の発生傾向を分析すると、高速化を行うために追加した特殊な条件を追加して判定処理をキャンセルするというような実装があだになって不具合を引き起こしているケースが多いです。
国士、七対子、平和も、この特殊な条件が多く含まれています。



不具合の傾向は、高速化で追加した処理であるこを示しています。
見直しの観点としては、高速化の処理が妥当であるかという点を静的チェックで調べ、高速化の対象となる判定処理を網羅するテストケースで検証することが必要です。
逆にUIでは不要な処理を何度も行っているために軽快にUIが動かなかったりしていることがあるような気がするので、そのへんも見直す必要があります。



・・・と、とりあえず、UIちょこっときれいにして、七対子と平和修正版アップさせていただきます。すでにダウンロードしてくださっている皆様にはほんとうにご迷惑をおかけしてすみません。正式版完成まで、お付き合いいただけたらとても幸いに思います。