※麻雀ロジック研究会※ at GAMEDEV
[2ch|▼Menu]
[前50を表示]
100:96
06/11/13 09:22:52 duDFKbMP
>>96からさらに100試合ほど打たせてみた。
すると、その100試合の安定Rが1650で、
>>96の100試合と合わせた計200試合の安定Rが1450に。

まだまだ試合数が少ないから断言はできないけど、
今までは運が悪すぎたのかなあ。

とりあえずは旧上ランの入り口である、R1600を目指して
がんばります(`・ω・´)

101:名前は開発中のものです。
06/11/13 19:32:23 /l9lVeym
勝ちが安定しないって、ようは運任せで、アルゴリズム関係なしなんでは?


102:名前は開発中のものです。
06/11/13 23:38:07 BdVR9VSj
シャンテン数が高いときはベタオリにして、
それ以外のときは
ゆるくオリるような打ち方がいいんではないかと。

つまり、現物、字牌、筋、
リーチ者が序盤に切った牌の周りなどを
安全そうな牌としといて、
安全そうな牌かつシャンテン数を落とさない牌を打つようにする。

さらに精密にやるなら安全度を点数化するといいかも。

103:名前は開発中のものです。
06/11/14 19:32:08 MANy7Ws5
やっぱりベタオリは改善の余地があると思う。
勝ってるときはベタオリ、負けてるときは、続行とか。

あとは鳴きが役牌のみってところかな?
チンイツとかホンイツとかトイトイとか、いくつかの役に対して、シャンテン数計算して、
いくつ以下ならその手を目指してチーポンを積極的に行うとかはどうだろうか。


104:96
06/11/19 22:34:00 t1T5Qf2N
みなさんレスありがとうございます。
平日は忙しい上に、PCがつかえない環境にいるため、
返事ができなくてすみません。

ところで、他にも東風で代打プログラムを
動かしてみたいという方はいらっしゃいませんか?

もし、代打プログラムを作ってみたいが、とつげき東北さんが配布されている
MJexeIO.dllを使ってもスキルが足らずに作成できない・めんどくさいという方が
おられましたら、僕が作成したプログラムでよければ公開させていただきます。

今のところ搭載している機能・特徴は以下のとおりです。
1.とつげき東北さんが配布されているMJexeIO.dllに皮をかぶせて使いやすくしています。
  具体的には、
  ○画面から情報を取得する関数を自作の関数の中で適切によびだしているため、
   プログラマ自身が画面から情報を取得する関数を呼び出すタイミングに頭を悩ませる必要はありません。
   画面から取得された情報は、自作の構造体(手牌構造体やプレイヤー構造体など)に格納されます。
  ○自分の順番が回って来た時にどの牌を切るかを返す関数、チーやポンをするかどうか尋ねられた時に
   鳴くかどうかを決定する関数のみを実装すれば、自分の思い通りに動く代打プログラムが作れます。
2.一度起動すれば、プログラムを終了するか、東風が回線落ちするまで、延々と打ち続ける機能を搭載しています。
3.自分の手牌のシャンテンを計算する機能、場に見えている牌の枚数を数える機能、有効牌を計算する機能
  (ここでいう有効牌とは、自分の手牌のシャンテン数を下げる牌を意味します)、4人の捨て牌を時間順に並べる機能
  (この機能により、MJexeIO.dllのSimulateOrder関数に付きまとっていた、切られた牌の順序決定不可能性の問題
  を回避できます)など、代打プログラムを作成する上で、必要と思われる機能を搭載しています。
  (時間があれば、自分の手牌の役を認識する機能を搭載する予定です。)
4.僕自身はプログラミングを趣味としているただの学生ですので、スキル的な問題により、ソースコードは汚いですし、
  上記機能の処理速度も速くはありません。デバッグは十分に繰り返したつもりですが、バグがないことを保障できません。

105:名前は開発中のものです。
06/11/20 03:34:26 flZCi+aK
>>104
興味あり。公開してほしいな。

まあ、俺は代打プログラムを作れるような頭は持ち合わせていないが。

106:名前は開発中のものです。
06/11/20 21:10:36 8qCQQBvr
うちは、代打ちじゃなくて全部オリジナルで作ってるんで、
プログラム自体は必要ないけど、アルゴリズムとか、
どんなことをやってるかソース中にコメントとかあれば見てみたい。

作ってるのはエロゲなんで、強い思考ルーチンはいらないんだけど。


107:名前は開発中のものです。
06/11/24 22:26:28 WoA2EPYX
しかし、こんなにいるんや。
こんなこと考える人!

やっぱ、パラメタ、重みつけ。
あと、ひたすら統計になるんかなー?

108:名前は開発中のものです。
06/12/12 23:21:53 svbHb3hn
統計取るなら聴牌思考の指向性についても考えたほうがいいんじゃないかな
具体的には棒聴即リールーチンと期待値計算して遠回りしても高い手を和了るルーチンのどちらが強いか
ってのを東風かなにかで実戦に投入しながら統計をとるってことで

でも、麻雀の統計として具体的に何局ほどサンプルをとればいいんだろうか…
20万局ぐらい?

109:96
06/12/28 20:24:12 IWNuZXZH
>>100からさらに改良を加えて、200試合ほど打たせてみたところ、
安定Rが1600付近まで上昇しました。
特に、好調だった80試合を見ると、安定Rが1900強に。

改良点は以下のとおり。
<聴牌に向かっているとき>
今まで:面子手のみ。
   ↓
改良版:チートイツも組み込んだ。
<ベタオリ時>
今まで:2人が同時に攻めてきた場合、自分から反時計に見て
     近い方しか警戒していなかった。
   ↓
改良版:他家それぞれに警戒係数という指標を導入し、
     複数他家の攻撃にも正確にベタオリできるようにした。
<状況判断>
今まで:他家からリーチがかかったときのみベタオリ
   ↓
改良版:他家のリーチだけでなく、食い仕掛けにも対応。
     また、自分の手がよければ、先制されても攻めるようにした。
<牌効率>
今まで:シャンテン数を下げない牌を一枚切る。
     その際に、内側の牌・ドラ・ドラソバに高評価を与えていた。
改良版:一打一打ごとにモンテカルロシミュレーションを行い、もっとも手牌のあがりへの
     寄与が低い牌を切るようにした。

110:名前は開発中のものです。
06/12/29 18:27:19 sGXeTFgC
カルネージハート(或いは、FF12のカンビット)のように
みんながアルゴリズムを組みやすいアプリケーションがあればいいと思った。
麻雀がうまくてもプログラムなんて組めないって人多いだろうし。

111:名前は開発中のものです。
06/12/29 18:38:40 J1Q+yA/u
麻雀は、カルネージと違って、サブサンプション的にどうこうするってものでないからな
アルゴリズムというよりむしろ統計処理か

まあ、パネルプログラミング的なインターフェイスはあったら面白いかも

112:名前は開発中のものです。
06/12/29 19:27:02 XZsMB63t
>>109
研究用にソース欲しいんですけどオープンソースですか?

113:96
06/12/29 21:53:15 DWfKfu8r
>>112
僕のしょぼいソースでよければ公開させて頂きますよ。
言語はCです。
ただ、あくまで東風代打ツールとして作ってるんで、
研究用には使えないかと思います。

>>104で書いたんですけど、反応が薄かったんで、放置してました(笑)

114:名前は開発中のものです。
06/12/29 22:12:09 XZsMB63t
>>113
ありがとうございます。
リアルでも使える代打ちプログラムを作りたいと思ってるので助かります。

115:96
06/12/29 22:17:26 DWfKfu8r
>>115
いろいろ改良を重ねているうちに、ソースが汚くなってきたので、
ちょっと整理に時間がかかるかと思います。
明日の夜には間に合うと思いますので、
申し訳ありませんが、それまでお待ちください。

116:高島易者のつぶやき
06/12/30 02:07:11 6keB+Ie9
そんなことより、ちょいと聞いてくれよ、>>1よ。
昨日、あるホテルで高島易断の鑑定会やったんです。鑑定会。
そしたらなんか人がめちゃくちゃ少なくガラガラなんです。
で、よく見たらなんか貧乏臭い客がいて、「運勢鑑定3000円ですよね」、とかほざいてるんです。
もうね、アホかと。馬鹿かと。
お前らな、運勢鑑定如きで普段来てない高島易断に来てんじゃねーよ、ボケが。
御祈祷だよ、御祈祷。
なんか親子連れとかもいるし。一家4人で高島易断か。おめでてーな。
よーしパパ運勢鑑定頼んじゃうぞー、とか言ってるの。もう見てらんない。
お前らな、3000円やるから帰ってくれと。
高島易断ってのはな、もっと金持ちが来るべきなんだよ。
テーブルの向かいに座った奴に因縁話吹っかけてもおかしくない、
乗せるか逃げられるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと別の客が来たと思ったら、そのうちの一人がまた、3000円ですよね、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、3000円の鑑定なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、3000円の、だ。
お前は本当に3000円の鑑定を受けに来たのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、3000円の鑑定って言いたいだけちゃうんかと。
高島易者の俺から言わせてもらえば今、高島易者の間での最新流行はやっぱり、
年間36万円の因縁切りの御祈祷、これだね。
2年分72万円。これが通の頼み方。
御祈祷ってのは金がまとまって入る。そん代わり手間が掛からない。これ。
で、それに1年分100万円の特別祈祷。これ最強。
しかしこれを勧めるとと次からカモ(客)に警戒されるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前ら貧乏人は、近所の神社でオミクジでも引いてなさいってこった。

高島易断について■part3
スレリンク(uranai板)l50

117:96
06/12/31 06:46:41 57FmFyf5
風邪のため作業が捗らず、遅くなりましたが、
東風荘代打プログラムのソースコードです。

URLリンク(kasamatu.o0o0.jp)
受信パス:hebo_vip
解凍パス:hebohebo_vip

118:名前は開発中のものです。
06/12/31 07:27:55 kaT/o5X3
ありがとうございます ノ

119:96
06/12/31 14:39:40 57FmFyf5
すいません、バグがあったので、修正をお願いします。
strategy.cppの176行目、SelectDiscardTile_SevenPairsOriented関数の
最初の変数宣言部で、max_effective_tile_number = DBL_MAX; と
なっているところを、  max_effective_tile_number = DBL_MIN; に修正して下さい。

なお、本プログラムの成績は下図をご参照下さい。
URLリンク(kasamatusan.sakura.ne.jp)

120:名前は開発中のものです。
06/12/31 17:59:56 JPe3tcsE


121:96
07/01/07 01:59:23 GOuBSiwa
全然反応がないです・・・(´;ω;`)ブワッ

122:名前は開発中のものです。
07/01/07 07:49:18 cR1YsYdq
>>121
難しい分野だから仕方ないね。
俺も面白そうと思ってやろうとしたけど、すぐに(数学的な?)壁にあたってしまった。
面白そうではあるけど、敷居が高いねえ。

123:96
07/01/07 08:39:12 GOuBSiwa
>>123
現時点の僕のプログラムは安定Rが1600程度ですが、
まだ高校数学以上の数学は一切用いてないです。
数学よりも、バックトラッキングや再帰関数といった
プログラミングの知識の方がはるかに重要じゃないかと思います。
もちろん、強いプログラムにしていく過程で数学の壁にあたることに
なるとは思いますが、ひとまず動かしてみて、思考ルーチン部分の
パラメータをいじるなどして感覚をつかめばソースコードの理解も
早まるんじゃないかと思います。



ちなみに、前からの課題であった役認識・点数計算プログラムを実装しました。
次はこのプログラムをいかに思考ルーチンに組み込むかが課題です。
このプログラムによって期待値の概念を思考ルーチンに導入することが
可能になるので、上手に組み込めば飛躍的に強くなるんじゃないかと期待してます。

124:名前は開発中のものです。
07/01/07 12:44:33 cR1YsYdq
>>123
高校数学すらおぼつかないので・・・
また、うぷしてもらったソースを理解して改造していくのは難しそうだし、悪いけどそれはあまり楽しそうでない。
まずは、もっと単純なところから、
例えば、1人麻雀でテンパイに向かうだけのプログラムとかからはじめようかと思う。

車輪の再発明って言われるかもしれないが、この場合はプログラミング自体が「遊び」なので。
みんながスーパーマリオの1面をプレイするように、みんなが通っていいかなと。
その後で、参考にさせてもらうとおもう。

125:名前は開発中のものです。
07/01/18 22:19:21 JqheaSzi
今日初めてここ着たけど、とりあえずソース読ませてもらったよー
別の麻雀ソフトでも対応できるようにデータ取得部分と思考部分が分離されてると思ってたから、
あんまり分離されてなさそうなのが意外だったかも。
ぶっちゃけデータ取得部を流用させてもらおうと思ってたから残念
ちなみに、正直Cで変数いじりしかまともにできない俺にはいまいちわからんw
もうしばらくしたらAI作りはじめられると思うからその時はよろしくっ

126:96
07/02/12 15:20:17 IDAaCxE5
やっと修論を書き終えることができました!
三徹の影響で頭がぼーっとしているため、日本語が変かもしれませんが、ご容赦くださいw

>>124
確かに趣味で行う以上は「楽しさ」が最優先ですもんね。
僕も作る作業自体が楽しいので、車輪の再発明だらけです。
実際、MJexeIO.exeで提供されている機能以外は全部一から実装しましたし。
>>117でソースを公開した後、シャンテン数計算のルーチンを改良したのですが、
その結果、今までの5倍くらい計算時間を短縮することができ、
あらのHPやcomjong.comで紹介されているアルゴリズムよりも高速化することができました。
こういう些細なことでも進歩が見られると楽しいものです。

>>125
こちらこそよろしくです!
データ取得部は関数単位で分けてあるので、ある程度分離されてはいると思うのですが・・・
少なくとも、データ取得部と思考部がごちゃまぜになっているということはないはずです。
まあ正直な話、僕自身も変数いじりくらいしかできないので、そこら辺のことはよく分からないんですけどね(笑)
もう少し具体的に意見を頂ければ、修正もできるかと思います。

127:名前は開発中のものです。
07/02/13 06:51:43 gYGMMXlO
>>126
あれ、今見てみたらちゃんと分離されてますね、何勘違いしたんだろw
とりあえず入試が終わるまで全然手つけられなさそうな今日この頃ですorz
明日入試なんだけど受かる気しないやorz

128:名前は開発中のものです。
07/03/25 17:39:09 /+ddsj91
おまいら最強の麻雀プログラムしてみろよ
スレリンク(tech板)

129:名前は開発中のものです。
07/03/25 18:32:15 UqHs+UFp
見にいったけどひどくレベルが低くないか?
テンパイチェックすら組めなそうな人ばっかりに見える

130:名前は開発中のものです。
07/03/27 18:23:15 AcanRDec
>>94
「MJSim」の最新版って有る?

131:名前は開発中のものです。
07/06/17 16:57:24 rBhd2fbQ
>>117のソース、興味ある。
誰か上げてくれないか。


132:名前は開発中のものです。
07/08/10 22:29:37 /4P+OHAU
aaa

133:リンク
07/09/30 19:03:23 IMLVX+zL

なぜ最近の犬学生は麻雀できない奴が多いの?
スレリンク(campus板)l10

★★★ 学校で麻雀を教えるべきだ ♪♪♪
スレリンク(edu板)l10

なんで最近の若者は麻雀できない奴が多いの?
スレリンク(mj板)l10

134:名前は開発中のものです。
07/10/04 21:01:57 HFnYJuJ5
せのたんは仮性包茎だったけど太めで包皮の上からカリが分かるプックリ型で良チンだったよ

135:名前は開発中のものです。
08/04/18 23:45:53 ZXDlZmWL
まだこのスレがあったwww

136:名前は開発中のものです。
08/04/27 15:51:10 7kUIsgPs
おまいら最強の麻雀プログラムしてみろよ Part2
スレリンク(tech板)

137:名前は開発中のものです。
08/07/27 01:30:55 FAVGJPP8
あげ

138:名前は開発中のものです。
08/07/29 00:08:41 z7Yquf9f
さげ

139:名前は開発中のものです。
08/10/19 00:59:04 7mqKFfWk
オープンネットワーク麻雀
URLリンク(sourceforge.jp)

140:名前は開発中のものです。
09/02/25 01:01:10 B3OIG4R1
純粋に役判定だけしてくれるライブラリって無いですかね。

141:名前は開発中のものです。
09/02/25 15:38:50 O2MoAZ4b
>>140
作ってうp

142:名前は開発中のものです。
09/03/12 21:59:56 zQ85wj82
作った

143:名前は開発中のものです。
09/03/31 11:17:50 8CzZ1Tdw
>>139
面白そうなことしてますね、HP見たけどどこまで進んでるか不明だった。
麻雀AI持ってるから、その上で動くAI作ってもいいけど。
いつ頃そのようなことができる?
ただし、C++のみRubyは覚える気ないのよ〜〜、 Winにも入れる気がなかったりして・・・


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5327日前に更新/44 KB
担当:undef