[過去ログ]
※麻雀ロジック研究会※ (177レス)
※麻雀ロジック研究会※ http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
96: 名前は開発中のものです。 [] 2006/11/11(土) 10:51:40 ID:bfMsKF2A 東風荘の代打プログラムを作って、100試合ほど打たせてみた。 安定Rが1100しかなかった(´・ω・`) 実装した機能は以下の通り。 ・普段は単純に聴牌一直線。具体的には、シャンテン数を落とさずに 受け入れが広くなるように切る。ドラおよびドラ付近は評価を高めに。 ・鳴きは役牌のみ。 ・残り山枚数が20枚以下になると、形式聴牌を取りにいく。 ・相手から先制リーチが入ると、現物→字牌→筋の順でベタオリ。 http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/96
98: 96 [] 2006/11/11(土) 14:19:21 ID:bfMsKF2A >>97 そうかなあ。 ベタオリ機能を実装してから、成績がだいぶ安定したから 必須機能だと思ってたけど・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/98
100: 96 [] 2006/11/13(月) 09:22:52 ID:duDFKbMP >>96からさらに100試合ほど打たせてみた。 すると、その100試合の安定Rが1650で、 >>96の100試合と合わせた計200試合の安定Rが1450に。 まだまだ試合数が少ないから断言はできないけど、 今までは運が悪すぎたのかなあ。 とりあえずは旧上ランの入り口である、R1600を目指して がんばります(`・ω・´) http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/100
104: 96 [] 2006/11/19(日) 22:34:00 ID:t1T5Qf2N みなさんレスありがとうございます。 平日は忙しい上に、PCがつかえない環境にいるため、 返事ができなくてすみません。 ところで、他にも東風で代打プログラムを 動かしてみたいという方はいらっしゃいませんか? もし、代打プログラムを作ってみたいが、とつげき東北さんが配布されている MJexeIO.dllを使ってもスキルが足らずに作成できない・めんどくさいという方が おられましたら、僕が作成したプログラムでよければ公開させていただきます。 今のところ搭載している機能・特徴は以下のとおりです。 1.とつげき東北さんが配布されているMJexeIO.dllに皮をかぶせて使いやすくしています。 具体的には、 ○画面から情報を取得する関数を自作の関数の中で適切によびだしているため、 プログラマ自身が画面から情報を取得する関数を呼び出すタイミングに頭を悩ませる必要はありません。 画面から取得された情報は、自作の構造体(手牌構造体やプレイヤー構造体など)に格納されます。 ○自分の順番が回って来た時にどの牌を切るかを返す関数、チーやポンをするかどうか尋ねられた時に 鳴くかどうかを決定する関数のみを実装すれば、自分の思い通りに動く代打プログラムが作れます。 2.一度起動すれば、プログラムを終了するか、東風が回線落ちするまで、延々と打ち続ける機能を搭載しています。 3.自分の手牌のシャンテンを計算する機能、場に見えている牌の枚数を数える機能、有効牌を計算する機能 (ここでいう有効牌とは、自分の手牌のシャンテン数を下げる牌を意味します)、4人の捨て牌を時間順に並べる機能 (この機能により、MJexeIO.dllのSimulateOrder関数に付きまとっていた、切られた牌の順序決定不可能性の問題 を回避できます)など、代打プログラムを作成する上で、必要と思われる機能を搭載しています。 (時間があれば、自分の手牌の役を認識する機能を搭載する予定です。) 4.僕自身はプログラミングを趣味としているただの学生ですので、スキル的な問題により、ソースコードは汚いですし、 上記機能の処理速度も速くはありません。デバッグは十分に繰り返したつもりですが、バグがないことを保障できません。 http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/104
109: 96 [] 2006/12/28(木) 20:24:12 ID:IWNuZXZH >>100からさらに改良を加えて、200試合ほど打たせてみたところ、 安定Rが1600付近まで上昇しました。 特に、好調だった80試合を見ると、安定Rが1900強に。 改良点は以下のとおり。 <聴牌に向かっているとき> 今まで:面子手のみ。 ↓ 改良版:チートイツも組み込んだ。 <ベタオリ時> 今まで:2人が同時に攻めてきた場合、自分から反時計に見て 近い方しか警戒していなかった。 ↓ 改良版:他家それぞれに警戒係数という指標を導入し、 複数他家の攻撃にも正確にベタオリできるようにした。 <状況判断> 今まで:他家からリーチがかかったときのみベタオリ ↓ 改良版:他家のリーチだけでなく、食い仕掛けにも対応。 また、自分の手がよければ、先制されても攻めるようにした。 <牌効率> 今まで:シャンテン数を下げない牌を一枚切る。 その際に、内側の牌・ドラ・ドラソバに高評価を与えていた。 改良版:一打一打ごとにモンテカルロシミュレーションを行い、もっとも手牌のあがりへの 寄与が低い牌を切るようにした。 http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/109
113: 96 [] 2006/12/29(金) 21:53:15 ID:DWfKfu8r >>112 僕のしょぼいソースでよければ公開させて頂きますよ。 言語はCです。 ただ、あくまで東風代打ツールとして作ってるんで、 研究用には使えないかと思います。 >>104で書いたんですけど、反応が薄かったんで、放置してました(笑) http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/113
115: 96 [] 2006/12/29(金) 22:17:26 ID:DWfKfu8r >>115 いろいろ改良を重ねているうちに、ソースが汚くなってきたので、 ちょっと整理に時間がかかるかと思います。 明日の夜には間に合うと思いますので、 申し訳ありませんが、それまでお待ちください。 http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/115
117: 96 [sage] 2006/12/31(日) 06:46:41 ID:57FmFyf5 風邪のため作業が捗らず、遅くなりましたが、 東風荘代打プログラムのソースコードです。 http://kasamatu.o0o0.jp/pochi/src/hajime7610.zip.html 受信パス:hebo_vip 解凍パス:hebohebo_vip http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/117
119: 96 [] 2006/12/31(日) 14:39:40 ID:57FmFyf5 すいません、バグがあったので、修正をお願いします。 strategy.cppの176行目、SelectDiscardTile_SevenPairsOriented関数の 最初の変数宣言部で、max_effective_tile_number = DBL_MAX; と なっているところを、 max_effective_tile_number = DBL_MIN; に修正して下さい。 なお、本プログラムの成績は下図をご参照下さい。 http://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi67644.jpg http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/119
121: 96 [] 2007/01/07(日) 01:59:23 ID:GOuBSiwa 全然反応がないです・・・(´;ω;`)ブワッ http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/121
123: 96 [] 2007/01/07(日) 08:39:12 ID:GOuBSiwa >>123 現時点の僕のプログラムは安定Rが1600程度ですが、 まだ高校数学以上の数学は一切用いてないです。 数学よりも、バックトラッキングや再帰関数といった プログラミングの知識の方がはるかに重要じゃないかと思います。 もちろん、強いプログラムにしていく過程で数学の壁にあたることに なるとは思いますが、ひとまず動かしてみて、思考ルーチン部分の パラメータをいじるなどして感覚をつかめばソースコードの理解も 早まるんじゃないかと思います。 ちなみに、前からの課題であった役認識・点数計算プログラムを実装しました。 次はこのプログラムをいかに思考ルーチンに組み込むかが課題です。 このプログラムによって期待値の概念を思考ルーチンに導入することが 可能になるので、上手に組み込めば飛躍的に強くなるんじゃないかと期待してます。 http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/123
126: 96 [] 2007/02/12(月) 15:20:17 ID:IDAaCxE5 やっと修論を書き終えることができました! 三徹の影響で頭がぼーっとしているため、日本語が変かもしれませんが、ご容赦くださいw >>124 確かに趣味で行う以上は「楽しさ」が最優先ですもんね。 僕も作る作業自体が楽しいので、車輪の再発明だらけです。 実際、MJexeIO.exeで提供されている機能以外は全部一から実装しましたし。 >>117でソースを公開した後、シャンテン数計算のルーチンを改良したのですが、 その結果、今までの5倍くらい計算時間を短縮することができ、 あらのHPやcomjong.comで紹介されているアルゴリズムよりも高速化することができました。 こういう些細なことでも進歩が見られると楽しいものです。 >>125 こちらこそよろしくです! データ取得部は関数単位で分けてあるので、ある程度分離されてはいると思うのですが・・・ 少なくとも、データ取得部と思考部がごちゃまぜになっているということはないはずです。 まあ正直な話、僕自身も変数いじりくらいしかできないので、そこら辺のことはよく分からないんですけどね(笑) もう少し具体的に意見を頂ければ、修正もできるかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1105332492/126
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s