HSPで麻雀のソフトを作っています。ある数牌Aを3枚(暗刻とは限らない)持った状態で立直したあと、4枚目のAをツモったとします。ここで、このAが暗槓できるかどうかを調べたいのですが、どのように実装すればよいのでしょうか。但し、Aが「暗刻であると言い切れる(どのような見方をしても順子の一部や雀頭には絶対にならない)」状態であるならAは暗槓できる、とします。また、立直後なので送り槓はできないものとします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/01/01 11:45:21
  • 終了:2009/01/03 04:40:12

ベストアンサー

id:frkw2004 No.3

ふるるP回答回数192ベストアンサー獲得回数212009/01/01 23:28:08

ポイント40pt

待ちが変わらなくても槓してはいけないパターンは、槓する前後で、牌視が変わらないことでもあるので、牌の組み合わせが2パターンある場合(例に挙げられた1113444のような場合)、そのどちらのパターンも満足させないといけません。1を雀頭してもいいし、4を雀頭としてもいいので、槓をした後も1と4の両方を雀頭にできるようでなければ行けません。つまり、

(1) 待ちが変わらないこと

(2) 牌の組み合わせ上、雀頭とみなされていないかどうか

の2つの条件で槓ができるかどうかがわかるでしょう。

http://end

id:MihailJP

ありがとうございます。

待ち牌のチェックに加えて、雀頭になりうる牌かどうかを

チェックすればよさそうですね。

向聴数をチェックするためのコード(とデータベース)もあるので、

それをなんとか利用できそうです。

2009/01/02 02:01:13

その他の回答(3件)

id:rafile No.1

rafile回答回数662ベストアンサー獲得回数242009/01/01 19:54:13

ポイント10pt

槓前の上がり牌と槓後の上がり牌に変化がないこと。

http://end

id:MihailJP

回答ありがとうございます。

ただ、たとえば1113444m東東東発発発のような場合、一萬を暗槓してもしなくても

二五待ちと三萬の単騎の三門張ですが、この場合

「一萬の雀頭・1_3の嵌張・四萬の暗刻」と見ることもできるので、

このような場合も除外したいのですが。

2009/01/01 21:26:34
id:frkw2004 No.2

ふるるP回答回数192ベストアンサー獲得回数212009/01/01 21:13:37

ポイント20pt

ルールでは、リーチをした後、待ち牌が変化してはいけません。

同じ牌が3枚ある状態とそれをカンした場合に、待ち牌が変化しているならば、それはカンしてはいけません。

たとえば

3334567

の23578の待ちで、3がきてもアンカンしてはいけません。待ちが47だけに変化するからです。


http://www.net

URLはダミーです。

id:MihailJP

ありがとうございます。

ただ、上に書いた1113444の場合ように

「待ちが変わらないのに面子構成が変わる」(この場合1_3の嵌張と見ても成り立つ)

という場合もあるので、それらも除外できる方法もあればいいのですが。

2009/01/01 21:32:30
id:frkw2004 No.3

ふるるP回答回数192ベストアンサー獲得回数212009/01/01 23:28:08ここでベストアンサー

ポイント40pt

待ちが変わらなくても槓してはいけないパターンは、槓する前後で、牌視が変わらないことでもあるので、牌の組み合わせが2パターンある場合(例に挙げられた1113444のような場合)、そのどちらのパターンも満足させないといけません。1を雀頭してもいいし、4を雀頭としてもいいので、槓をした後も1と4の両方を雀頭にできるようでなければ行けません。つまり、

(1) 待ちが変わらないこと

(2) 牌の組み合わせ上、雀頭とみなされていないかどうか

の2つの条件で槓ができるかどうかがわかるでしょう。

http://end

id:MihailJP

ありがとうございます。

待ち牌のチェックに加えて、雀頭になりうる牌かどうかを

チェックすればよさそうですね。

向聴数をチェックするためのコード(とデータベース)もあるので、

それをなんとか利用できそうです。

2009/01/02 02:01:13
id:rafile No.4

rafile回答回数662ベストアンサー獲得回数242009/01/02 00:25:37

ポイント30pt

依然として待ちの変化でいけると思いますが。

嵌張の2と、両面の2・5、そして単騎の3から、両面の2・5、そして単騎の3に変化してますよね。

結果の見た目は同じですが、プログラムで容易に見分けられるのではないですか?

http://end

id:MihailJP

回答ありがとうございます。

内部的に「ある牌が当たり牌であるかどうか」の判定コードはあるのですが

「それが両面・嵌張・辺張・双ポン・単騎のいずれであるか」のコードは

加符点と平和の判定のところにしか組んでいなかったので

そこのところを改良する必要がありそうです。

2009/01/02 02:01:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません