« 至上最弱?のアルゴリズム完成 | トップページ | 有効牌数え上げアルゴリズム作成中その2 »

2004/11/23

有効牌数え上げアルゴリズム作成中

有効牌(向聴数を下げることができる牌)の種類と枚数を数える処理を作成中。

有効牌を数える方法としては2通りのやり方を考えている。

1.順番に牌を追加して作成済みの向聴数チェックアルゴリズムに掛け向聴数が改善された場合有効牌とする。
2.現状の手牌を向聴数が最善になるような面子、ターツ、対子、浮き牌の組み合わせするパターンをリストアップし、その組むあわせをベースに4面子1雀頭に向かう牌をピックアップし有効牌とする。

とりあえず1は今まで作ったアルゴリズムの組み合わせで簡単に出来るので処理速度を計測してみた。
私が開発に使っているマシン[DELL Dimension 8400(Pentium4の2.8GHz)]で2秒から3秒かかるので麻雀ゲームとしては残念ながら微妙に遅い。2の処理のための下準備の処理を作成中。こっちはややプログラムが面倒だが果たして高速化されるだろうか。理屈上は1のやり方より早いはずだがちょっと心配。これでだめだったら他にいい方法が思いつかない。

2の方法をやる前に面子、ターツ、トイツの数とシャンテン数の関係を調べておく必要があったので調べてみた。
結果は以下のとおり。


向,面,タ,対
1,3,0,2
1,3,1,1
1,4,0,0
2,2,0,3
2,2,1,2
2,2,2,1
2,3,0,1
2,3,1,0
2,3,2,0
3,1,0,4
3,1,0,5
3,1,1,3
3,1,1,4
3,1,2,2
3,1,2,3
3,1,3,1
3,1,3,2
3,1,4,1
3,2,0,2
3,2,1,1
3,2,2,0
3,2,3,0
3,3,0,0
4,0,0,5
4,0,0,6
4,0,1,4
4,0,1,5
4,0,2,3
4,0,2,4
4,0,3,2
4,0,3,3
4,0,4,1
4,0,4,2
4,0,5,1
4,1,0,3
4,1,1,2
4,1,2,1
4,1,3,0
4,1,4,0
4,1,5,0
4,2,0,1
4,2,1,0
5,0,0,4
5,0,1,3
5,0,2,2
5,0,3,1
5,0,4,0
5,0,5,0
5,0,6,0
5,1,0,2
5,1,1,1
5,1,2,0
5,2,0,0
6,0,0,3
6,0,1,2
6,0,2,1
6,0,3,0
6,1,0,1
6,1,1,0
7,0,0,2
7,0,1,1
7,0,2,0
7,1,0,0
8,0,0,1
8,0,1,0
9,0,0,0

向:向聴数+1(聴牌なら1,一向聴なら2)/面:面子の数/タ:ターツの数/対(対子の数)

総ステップ数:4093

|

« 至上最弱?のアルゴリズム完成 | トップページ | 有効牌数え上げアルゴリズム作成中その2 »

コメント

コメント失礼します。
このプログラムは一人麻雀のみを考慮したものでしょうか?

投稿: 匿名希望 | 2017/11/02 17:01

向聴数や有効牌は、一人麻雀に限った話ではないので4人麻雀でも同様のことができると思います。

投稿: kmo2 | 2017/11/04 02:58

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/61182/2047469

この記事へのトラックバック一覧です: 有効牌数え上げアルゴリズム作成中:

« 至上最弱?のアルゴリズム完成 | トップページ | 有効牌数え上げアルゴリズム作成中その2 »