« 2005年8月 | トップページ | 2005年10月 »

2005/09/29

混一決め打ちモードほぼ完成

混一決め打ちモードの作成がほぼ完成。字牌の鳴きについて若干おかしいところがあるのでそれについては明日にでも修正するつもりだが、それ以外ほぼ、自然に打てている感じがする。

字牌なきについて微調整をしたあと、今までデータを取っていながらアルゴリズムに入れてなかった、待ち牌種別、引っ掛けありの場合の和了率の違いについて評価値に考慮するように修正していく。

その後は、(鳴き仕掛けについても含めて)ベタオリの判断について見直しを行なう予定。

| | コメント (0) | トラックバック (0)

2005/09/26

混一決め打ちモード作成中

混一狙いのモード作成中。打牌選択についてはほぼ完了。

染め色+字牌が10枚以上
&メンツ候補(塔子、対子、メンツ)が4つ
&非染め色に完成メンツが無い
&非染め色に塔子+対子が2つ無い
&ドラが2つ以上無い

という条件で混一決め打ちに入るようにしてる。
若干消極的な気もするし、役牌対子やドラの無い2000点混一が出来る可能性もあるけど、まあこんなものかな。明日以降、鳴くか鳴かないかの判断について作成する。

それと、私+CPU雀士3人でためし打ちしているが、やはりCPUはまだ弱い。
今のところ私の成績は以下のような感じ。
順位 回数
1位 25
2位 14
3位 23
4位 22


ぱっと目に付く弱点をあげておくと

一向聴の時、他者からリーチが掛かったときの攻防の判断(現状オリ過ぎている)
ラス確定和了など、高い手を狙わなければいけないシーンでノミ手で仕掛けている。
何でもかんでもリーチしてる

確率X得点のバランスで得点の方に傾いている。
形式聴牌を取ってない。
ミエミエの染め手に振り込む。
ドラポンなどの高い仕掛けに対する防御。
孤立ドラの重要度の判断。

始める前はもう少し計算づくで強いアルゴリズムを作れるものと思い込んでいたが、結構難しいな強い麻雀ゲームをつくるのは。


総ステップ数:10959

| | コメント (0) | トラックバック (0)

2005/09/19

参考文献!?購入

麻雀は思考ゲームのクセに2,3秒しか考えてはいけないという変なゲーム。混一狙いのように序盤で何らかの判断を下さなければいけない場合、どうしても、コンピュータに全パターンを網羅した探索をやらせるのは無理があり、人間の経験を元にしたアルゴリズムが必要になる。

で、買ってきたのが以下の2冊。

岩波講座の「知識と推論」

打姫オバカミーコの3巻

なんていうかすごい組み合わせだけど、麻雀ゲームを作るってのはそんなものです。

知識と推論の方はブックオフで105円で売ってたのでついつい買ってしまった。
中身は情報系の学部生向けの本って感じですな。っていうか、ホントに学生が教科書として使ってたらしくあちこちにアンダーラインが引いてあったりする。
書いてあることはそれほど難しくない。3段論法とか、逆裏対偶などの論理、ハノイの塔や宣教師と人食い人が河を渡るパズル、最短経路探索、Min-Max、αβ法とかの解説。いかにも大学の教科書って感じ。もうちょっとヒューリスクティクスを生かす方法について突っ込んだ内容を期待して買ったんだけど……まあ仕方ない100円だし。定価で買うなら、結城浩さんのプログラマの数学の方がやさしく書いてあっていいんじゃないかな。

で、オバカミーコの方は、ちょうど今私が基準をどうしようか悩んでいた混一狙いについて書いてある。個人的には1巻2巻とあまりこの本のセオリーには納得して無いんだけど、混一決め打ちはこの本で紹介している染め手のメンツ候補数を基準とするやり方をベースにしてプログラムを組むことにする。


| | コメント (0) | トラックバック (0)

2005/09/18

効果音をつけてみる

最近ためしに作成中の麻雀ゲームと真剣勝負をするケースが増えてきているが、どうも効果音が付いていない為にでリーチに気が付かなかったりするケースがある。
 そこで、染め手を意識したアルゴリズム作成中だけど、ちょっとわき道にそれて効果音をつける作業を先にやってみた。操作感がかなり向上した気がする。やっぱ音って大切だな。
 なお、効果音は、Web Wave Libのサイトに登録されていることねさんの声を利用させてもらってます。

総ステップ数:10489

今までの真剣勝負結果
順位 回数
1位 7
2位 4
3位 15
4位 8

| | コメント (0) | トラックバック (0)

2005/09/15

配牌時の染め色の枚数と染め手和了割合

和了したときの、配牌で、一番多い数牌の色と字牌の枚数の合計値と、
その和了が清一、混一になった割合を調べてみた。
結果は以下の通り、
flash_rate
9/30追記:
 標本はいつものごとく、東風荘のログです。今作ってるゲームの結果ではないです。

意外と低い感じがする。

私は大体第一ツモの段階で10枚程度あれば混一を意識して普段と違う選択をすることが多い。なので10枚くらいあれば50%程度いくものかと思ってたけど実際は27%程度しか無いらしい。
まあ、確かに、混一を意識するといっても、いきなり将来危険になる可能性があるからと非染め手のど真ん中の塔子を落としていったりはしない。様子見で、端っこの方の非染め手の孤立パイを切ったり、場に出たオタ風牌を切ったりしながら手の進行具合を判断しつつ、どこかの段階で混一に決め打ちにするかを判断する感じで打っている。

コンピュータに同じ事をやらそうとすると、様子見の段階の孤立牌の優先度の評価関数と、どこかで決め打ちして向聴数を落としてでも非染め手の塔子を落とす(or数牌から鳴いていく)決定をする評価関数がいるのだろうが、どうやってプログラム組めばいいのか……

| | コメント (2) | トラックバック (0)

2005/09/13

それほど弱くも無かった

混一狙いのために必要なこまごまとした関数を作成中。

向聴数が大きい状態ではどうしても期待値を計算しきれないので、自分の経験ベースでセオリーを点数化することにする。
現在考慮しているのは、ドラの数(=染め手を狙わなくても十分手が高ければ狙わない)、染め色の牌と字牌の総数、非染め色の塔子数(メンツ数)

今まで私は自分で麻雀を打つときは上記の条件にプラスして手牌中の役牌の数なども考慮してたけど、最近考え方が変わって、チップ無し赤無しのアリアリ麻雀だったら、2000点にしかならない混一でも別にかまわない気がしてきた。まずは、考慮しない方向でやってみる。

13回ほど真剣勝負してみたが結果は私の負け越し。
1位 3回
2位 1回
3位 5回
4位 4回

本来1000回くらいやってみないとなんともいえないのだが、それほど弱くは無い感じはする。
ただし、先日書いたように、オーラスで鳴いてラス確定和了とか、ミエミエの役満とか清一への振込みとか人間ではありえないことをやらかすので印象が悪い。ここら辺はいずれ修正したい。

| | コメント (0) | トラックバック (0)

2005/09/05

まだまだ弱い

序盤から両面でチーしないように修正して1000番やってみた。若干強くはなっていたがほぼ誤差の範囲内ともいえる内容。鳴きの細部を詰めるより、まずは染め手関係をやるべきだろう。
また、ためしに私が打ってみたけれど、CPUはまだまだ弱い。
鳴きへの警戒、やたら降りすぎる、染め手の攻防、形式テンパイ狙い、フリテン回避、単騎待ちするパイの選択、オーラス、ラス前の状況判断、等々。
まだまだ先は長いな。

| | コメント (0) | トラックバック (1)

2005/09/02

門前雀士VS鳴きあり雀士1000番勝負

結構雑ながら鳴きのアルゴリズムを組み込んだので、今まで鳴き無しアルゴリズム2人と、鳴きありアルゴリズム2人で東南戦1000回をやらせてみた。結果は以下の通り。

鳴きあり雀士1 +1361
鳴きなし雀士1 -2213
鳴きあり雀士2 +2415
鳴きなし雀士2 -1563

ベタオリを組み込んだときほどではないけど確実に強くなっている模様。
欲を言えばもう少し差が出て欲しいところだったが、今のなき方ならこの程度なものかもしれない。
打ってるのをみて不自然な箇所をもう少し、補正し、それから染め手狙いのアルゴリズムを作る予定。
総ステップ数:10323

| | コメント (0) | トラックバック (0)

2005/09/01

鳴き評価、ボチボチ作成中

鳴き判断の再作成中。先日ボツにした評価関数も各部品は再利用ができているので、捨てたコードは案外少ない。

いまはまだタコ鳴き状態だが、そこそこ動くようになってきた。鳴いて上がったパターンをいくつかUPしておく。

toitoi


haitei

問題点はまだいっぱいある。
- ベタオリモードを覚えていないので降りた後鳴いてる。
- 早い段階で両面塔子を鳴いてチー聴をとるケースがある。
- 2向聴から1向聴になる鳴きは、きちんと期待値計算を行なえるはずだが行なっていない。
- 染め手を狙う鳴きが出来ていない。

| | コメント (0) | トラックバック (0)

« 2005年8月 | トップページ | 2005年10月 »