麻雀のロジックについて研究しませんか?
麻雀ゲームなんかで強いCPUキャラクターとやると
どうしてもプログラムの方で積み込んでいるとしか思えません。
人間の思考に近づくロジックを話し合いませんか?
探検
※麻雀ロジック研究会※
■ このスレッドは過去ログ倉庫に格納されています
11
NGNGNGNG
成人記念2ゲット
NGNG
NGNG
よーし、俺がネタヲ振ってやるぜ
ファジイ推論でルールヲつくって
すべての牌について、それを切ったときの評価をだして
評価の高かった牌を切る
どうよ
ファジイ推論でルールヲつくって
すべての牌について、それを切ったときの評価をだして
評価の高かった牌を切る
どうよ
51
NGNG 今のところ私が考えているのは、
キャラ毎に、ピンフ好き、タンヤオ好きとかにわけるしかないかなぁ
と、考えていますが、それだと上がれないですよね。
つまり強いCPUにはなり得なくなってしまいます。
ただ、前もって積み込みとかにしちゃうと、聴牌状態で
何巡目にリーチを書けて自摸る、とかいう設定になってしまいますし。。。
味気ないキャラクターになってしまいますよね。
ん〜難しいw
キャラ毎に、ピンフ好き、タンヤオ好きとかにわけるしかないかなぁ
と、考えていますが、それだと上がれないですよね。
つまり強いCPUにはなり得なくなってしまいます。
ただ、前もって積み込みとかにしちゃうと、聴牌状態で
何巡目にリーチを書けて自摸る、とかいう設定になってしまいますし。。。
味気ないキャラクターになってしまいますよね。
ん〜難しいw
6デフォルトの名無しさん
NGNG まずは、上がりまでの起こりうる未来を全て列挙して、
その中から一番良いパスを選ぶことを考える。
多分、現在の計算機の能力ではできないので、
1)起きえないであろう選択肢をカットする
・ドラが2枚そろっていたら捨てない。
・終盤で、捨牌に出ていない牌は捨てない
など
2)最後まで読み切れないので、途中の状態で
得点を予測して、そのパスの得点とする。
を考える。
>>4 は 2) の一つの方法
1)でキャラクターの個性を出せるけど、最初は
最強プレーヤーを目指して作成して、機能制限
や評価項目の重み付けの調整で個性を作って
いった方が作りやすい
その中から一番良いパスを選ぶことを考える。
多分、現在の計算機の能力ではできないので、
1)起きえないであろう選択肢をカットする
・ドラが2枚そろっていたら捨てない。
・終盤で、捨牌に出ていない牌は捨てない
など
2)最後まで読み切れないので、途中の状態で
得点を予測して、そのパスの得点とする。
を考える。
>>4 は 2) の一つの方法
1)でキャラクターの個性を出せるけど、最初は
最強プレーヤーを目指して作成して、機能制限
や評価項目の重み付けの調整で個性を作って
いった方が作りやすい
NGNG
NGNG
NGNG
>>6
>まずは、上がりまでの起こりうる未来を全て列挙して、
>その中から一番良いパスを選ぶことを考える。
「良さ」を計る関数の定義が出来ればほぼ終わったようなものな希ガス
関数を考えるに当たって
- 自分の上がりへの近づきとその点数の期待値
- 他家の手を進める、または振り込む期待値
くらいなのかな。
「上がりへの近づき」や「手を進める」というのをどう数値化するかが難しそう。
>まずは、上がりまでの起こりうる未来を全て列挙して、
>その中から一番良いパスを選ぶことを考える。
「良さ」を計る関数の定義が出来ればほぼ終わったようなものな希ガス
関数を考えるに当たって
- 自分の上がりへの近づきとその点数の期待値
- 他家の手を進める、または振り込む期待値
くらいなのかな。
「上がりへの近づき」や「手を進める」というのをどう数値化するかが難しそう。
101
NGNG >まずは、上がりまでの起こりうる未来を全て列挙して、
>その中から一番良いパスを選ぶことを考える。
手牌からその可能性を計算して、
ツモるたびにその可能性を狭めて行くやりかたですかね?
ある程度の前例をデータとして保持し、その型にあったやり方で
進行して行く訳ですか。
人間にも経験というものがありますし、これはいいですね。
記憶として対戦相手の思考もコピーしていくような、
ロジックもいれると面白そうですね。
役が成立するパターンの配牌を記憶し、
自分の配牌をそれにあてはめて、前例だとこの役が成立する予定だから
それを必死に集めるとか。
>その中から一番良いパスを選ぶことを考える。
手牌からその可能性を計算して、
ツモるたびにその可能性を狭めて行くやりかたですかね?
ある程度の前例をデータとして保持し、その型にあったやり方で
進行して行く訳ですか。
人間にも経験というものがありますし、これはいいですね。
記憶として対戦相手の思考もコピーしていくような、
ロジックもいれると面白そうですね。
役が成立するパターンの配牌を記憶し、
自分の配牌をそれにあてはめて、前例だとこの役が成立する予定だから
それを必死に集めるとか。
NGNG
振り込むリスクも考えないといかんなあ…
例えば相手の捨て牌から予想するような。
例えば相手の捨て牌から予想するような。
NGNG
NGNG
もうある
141
NGNG >>12
プログラム自体はあります。
役判定はライブラリとか使ってますが・・・
ただ、決まった打ち方しか出来ないんですよね。
ピンフを中心に構成していくとか、
アンコばかり集めるとか・・・
さらにCPUを強化するには積み込むしかないし・・・
その辺を今後、研究していければいいと思っています。
将棋とか、囲碁と違って運もかなりゲーム要素に影響するので
なかなか難しいところではあります。
プログラム自体はあります。
役判定はライブラリとか使ってますが・・・
ただ、決まった打ち方しか出来ないんですよね。
ピンフを中心に構成していくとか、
アンコばかり集めるとか・・・
さらにCPUを強化するには積み込むしかないし・・・
その辺を今後、研究していければいいと思っています。
将棋とか、囲碁と違って運もかなりゲーム要素に影響するので
なかなか難しいところではあります。
151
05/01/17 10:59:28 牌に積み込む計算は
安全牌を計算しないといけないですね。
実装すると、モッサリしそうですが、
搭載したいきのうです。
安全牌を計算しないといけないですね。
実装すると、モッサリしそうですが、
搭載したいきのうです。
05/01/18 01:45:26
このスレの住人が、ロジックを適当な言語で実装したモノを持ち寄って
対戦させられるような仕組みがあったら面白そう。
>12の言ってるのもそういうことじゃないのかな。
対戦させられるような仕組みがあったら面白そう。
>12の言ってるのもそういうことじゃないのかな。
171
05/01/21 15:01:21 面白いかもしれないけど、みんな暇じゃないですよね。
私も、現在、納期前でいそがすぃし
私も、現在、納期前でいそがすぃし
05/01/21 20:10:05
19デフォルトの名無しさん
05/01/25 23:54:34 こんなの見つけた
ttp://members.jcom.home.ne.jp/hennano/maujong/java/
ttp://members.jcom.home.ne.jp/hennano/maujong/java/
201
05/01/31 19:14:11 ごめんよ。仕事の合間にふと思ってさ。
軽はずみにスレ立てちゃいかんねv(>_<)v
軽はずみにスレ立てちゃいかんねv(>_<)v
05/02/11 04:36:53
麻雀だと将棋スレみたく、最強を目指すと言うわけにはいかないのかな。
確率的に最善の手探しても、結局は運だろうから。
確率的に最善の手探しても、結局は運だろうから。
05/02/11 20:48:40
将棋におけるCSAプロトコルみたいな、ある程度標準となるネットワーク対戦プ
ロトコルみたいのって麻雀ではないの?
ロトコルみたいのって麻雀ではないの?
23デフォルトの名無しさん
05/02/14 19:16:40 誰か、和了チェック関数見せてくれませんか?
漏れの使いかたが悪いのか、
http://www.interq.or.jp/snake/totugeki/mjcom_p0.htm
これを実装するとスタックオーバーフローになってしまいまつ。
漏れの使いかたが悪いのか、
http://www.interq.or.jp/snake/totugeki/mjcom_p0.htm
これを実装するとスタックオーバーフローになってしまいまつ。
05/02/15 02:36:37
ループ終わらずにネストし続けてしまってるんだよね。
ぱっと見ありそうなのは先頭の
>for(;!tehai[i];i++)if(i>=43){return;} //上がっている場合ここが実行される
で i=0とかしてたり?
ぱっと見ありそうなのは先頭の
>for(;!tehai[i];i++)if(i>=43){return;} //上がっている場合ここが実行される
で i=0とかしてたり?
05/02/15 02:41:42
i=0しても下スルーされるから関係無いか。
05/02/15 02:58:24
すまん、やっぱりあるね。
自分の脳内トレーサじゃ >>24しか思い浮かばないや・・・
自分の脳内トレーサじゃ >>24しか思い浮かばないや・・・
05/02/15 16:27:30
05/02/15 17:00:06
その関数は悪くないと思うよ。
どんな使いかたしてるの?
見てあげるからソース貼ってみそ。
どんな使いかたしてるの?
見てあげるからソース貼ってみそ。
05/02/15 17:56:17
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/212.txt
クソコーディングすまそ。
最初、イーシャンテンでテンパイまでの受け入れ枚数を数えるプログラムを
作ってみようと思ったんですけど(鳴き、チートイ、国士はまだ)
どうもagari_checkのところで何かおかしなことになってるっぽいんです。
クソコーディングすまそ。
最初、イーシャンテンでテンパイまでの受け入れ枚数を数えるプログラムを
作ってみようと思ったんですけど(鳴き、チートイ、国士はまだ)
どうもagari_checkのところで何かおかしなことになってるっぽいんです。
05/02/15 18:19:05
そのままコンパイルして実行してみたけど、問題無かったよ。
この状態でスタックオーバーフローになるの?
この状態でスタックオーバーフローになるの?
05/02/15 18:43:48
スタックオーバーフローは、恐らくなんですが・・・
VC++6のデバックモードだと、きちんと表示されるんですが
リリースモードと、BCCでは、最後のprintfが表示されないんです。
何が原因なのかなあ。
VC++6のデバックモードだと、きちんと表示されるんですが
リリースモードと、BCCでは、最後のprintfが表示されないんです。
何が原因なのかなあ。
3228
05/02/15 18:49:23 >>29
tehai[43]で面子を作ろうとして無限ループ(再帰)してるな。
この関数はtehai[43]==0を前提にしているらしい。
tehaiの定義を 1増やして、
int tehai[44]=
{0, 0, 3, 0, 0, 0, 0, 0, 0, 0, //0-9
0, 0, 0, 1, 1, 1, 0, 0, 0, 0, //10-19
0, 2, 1, 1, 1, 1, 1, 1, 0, 0, //20-29
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30-39
0, 0, 0, 0}; //40-43
で、うまくいくかも。
tehai[43]で面子を作ろうとして無限ループ(再帰)してるな。
この関数はtehai[43]==0を前提にしているらしい。
tehaiの定義を 1増やして、
int tehai[44]=
{0, 0, 3, 0, 0, 0, 0, 0, 0, 0, //0-9
0, 0, 0, 1, 1, 1, 0, 0, 0, 0, //10-19
0, 2, 1, 1, 1, 1, 1, 1, 0, 0, //20-29
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //30-39
0, 0, 0, 0}; //40-43
で、うまくいくかも。
05/02/15 19:05:53
34デフォルトの名無しさん
05/02/15 21:36:58 http://www.vector.co.jp/games/review/1013/images_01.html
こんな牌のフリーの絵ってどこかにないですか?
こんな牌のフリーの絵ってどこかにないですか?
35デフォルトの名無しさん
05/02/15 22:17:17 そんなに数無いんだし自分で作れば?
漢字フォント作るより楽だと思うよ。
漢字フォント作るより楽だと思うよ。
36デフォルトの名無しさん
05/02/17 09:56:47 >>35
そんなこといわずに教えてください
そんなこといわずに教えてください
37デフォルトの名無しさん
05/02/17 12:09:45 上がり得点/期待値が最も高い手になるようプログラムすればいいじゃん。
統計的には確実に強い打ち方になるぞ
統計的には確実に強い打ち方になるぞ
38デフォルトの名無しさん
05/02/17 18:09:4705/02/17 18:14:48
05/02/17 18:49:48
1ソーがポイントだなw
05/02/18 09:30:23
05/02/19 17:46:05
あがり判定とか役判定ってどうやんの?
それだけで結構難しくない?
それだけで結構難しくない?
05/02/19 18:07:36
少し上にあるだろ
05/02/21 00:25:39
麻雀のルールって、増築に増築を重ねた「九龍城」みたいなものだからな・・・
実際にさまざまなルールを統合してプログラムを作成しようとすると、
あちらこちらに矛盾点が出てくるんだよね。
実際にゲームをしている時には殆ど発生しない
レアなケースでのみ起こる矛盾点もプログラムにする以上、
ちゃんと解決しなくちゃいけないし。
例えば、「完全先付け」とかさ・・・
あれ考えた奴、脳みそのネジが5,6本、抜け落ちているんじゃないのか?
実際にさまざまなルールを統合してプログラムを作成しようとすると、
あちらこちらに矛盾点が出てくるんだよね。
実際にゲームをしている時には殆ど発生しない
レアなケースでのみ起こる矛盾点もプログラムにする以上、
ちゃんと解決しなくちゃいけないし。
例えば、「完全先付け」とかさ・・・
あれ考えた奴、脳みそのネジが5,6本、抜け落ちているんじゃないのか?
05/02/21 00:56:34
>>44
C++の悪口はやめてください
C++の悪口はやめてください
46デフォルトの名無しさん
05/03/01 14:16:30 麻雀に関してのプログラムの書いてある本
何でもいいので教えてください
何でもいいので教えてください
47デフォルトの名無しさん
05/03/06 21:02:00 age
05/03/06 23:45:51
んとね、テクノポリスに書いてあった。
探すのめんどいから何号かは知らん。
探すのめんどいから何号かは知らん。
05/03/07 00:13:54
05/03/19 18:18:59
05/03/19 18:21:49
5244
05/03/20 20:36:31 >>51
いや、俺が思うに、多分あのルールは
筋者の方々が素人さん相手に勝負をする時に
散々難癖を付けて、カネを搾り取るためのものだと思う。
その理由は・・・
1.ルールの出自が関西であり、今も関西でしか行われていない
2.「完全先付け」には様々なパターンと、それに対する様々な解釈があり、
それら全てをゲームの前に確認しておくのは不可能
3.その後のゲーム中で、事前に確認が取れなかったケースが
発生した場合、間違いなく腕力の強い奴の主張がまかりとおる
まぁ、そんな深読みをしなくても、実際にプログラミングをしてみれば
すぐ分かる。
「完全先付け」がどれほどトチ狂ったルールであるかが・・・
いや、俺が思うに、多分あのルールは
筋者の方々が素人さん相手に勝負をする時に
散々難癖を付けて、カネを搾り取るためのものだと思う。
その理由は・・・
1.ルールの出自が関西であり、今も関西でしか行われていない
2.「完全先付け」には様々なパターンと、それに対する様々な解釈があり、
それら全てをゲームの前に確認しておくのは不可能
3.その後のゲーム中で、事前に確認が取れなかったケースが
発生した場合、間違いなく腕力の強い奴の主張がまかりとおる
まぁ、そんな深読みをしなくても、実際にプログラミングをしてみれば
すぐ分かる。
「完全先付け」がどれほどトチ狂ったルールであるかが・・・
2005/03/24(木) 10:25:10
「完全先付け」というルールの存在自体を無視することをお奨めする
2005/06/08(水) 23:18:22
麻雀AIのロジック。
ツモ麻雀できるロジックを示しす漏れが来ましたよ。
A.総当り式
1、牌を積もる。
・上がっているーー>「ツモ!」
・上がってないーー>2、へ
2.捨てられるパイを仮捨てしてみる(捨てられる牌数分のパターンあり)
・積もる牌がまだ有るかーー>3、へ
・もう可能性ツモがないときは、
_・上がりリストから最良のデータを使い捨て牌を決定し捨てる−−>1,へ
_・上がりリストがない時は、牌評価数値表からいらないのを捨てる。
3、つもり可能性のある牌をつもってみる。(積もれる可能性分のパターンあり)
・上がりかーー>4、へ
・上がらないーー>2、へ
4.上がり評価
待牌の確立と点数の期待値を計算する。上がりリストに登録。
・次の可能性ツモ牌が有る時はーー>3、へ
興味があったらageみて。
ツモ麻雀できるロジックを示しす漏れが来ましたよ。
A.総当り式
1、牌を積もる。
・上がっているーー>「ツモ!」
・上がってないーー>2、へ
2.捨てられるパイを仮捨てしてみる(捨てられる牌数分のパターンあり)
・積もる牌がまだ有るかーー>3、へ
・もう可能性ツモがないときは、
_・上がりリストから最良のデータを使い捨て牌を決定し捨てる−−>1,へ
_・上がりリストがない時は、牌評価数値表からいらないのを捨てる。
3、つもり可能性のある牌をつもってみる。(積もれる可能性分のパターンあり)
・上がりかーー>4、へ
・上がらないーー>2、へ
4.上がり評価
待牌の確立と点数の期待値を計算する。上がりリストに登録。
・次の可能性ツモ牌が有る時はーー>3、へ
興味があったらageみて。
2005/06/15(水) 22:34:30
>>54
まず上がりの判定フローを示せ
まず上がりの判定フローを示せ
2005/06/16(木) 02:45:27
ほい、
BOOL 上がり判定(int 手牌[])
{
if(国士か(手牌)) { return TRUE; }
if(チイトイか(手牌)) { return TRUE; }
for (int i = 0; i < 34; i++) {
if (手牌[i] >= 2) {
手牌[i] -= 2;
if (面子確認(手牌)) {
手牌[i] += 2;
return TRUE;
}
手牌[i] += 2;
}
}
return FALSE;
}
3つの関数は自分で考えろ。
聞くだけなら、もう何も出ない。
BOOL 上がり判定(int 手牌[])
{
if(国士か(手牌)) { return TRUE; }
if(チイトイか(手牌)) { return TRUE; }
for (int i = 0; i < 34; i++) {
if (手牌[i] >= 2) {
手牌[i] -= 2;
if (面子確認(手牌)) {
手牌[i] += 2;
return TRUE;
}
手牌[i] += 2;
}
}
return FALSE;
}
3つの関数は自分で考えろ。
聞くだけなら、もう何も出ない。
2005/06/25(土) 14:06:48
役判定のソース
ttp://software.nikkeibp.co.jp/software/download/down04c.html
ttp://software.nikkeibp.co.jp/software/download/down04c.html
2005/06/25(土) 15:41:13
>>56
お〜い、それじゃフリテンと複数の可能性を考えられないぞ〜
お〜い、それじゃフリテンと複数の可能性を考えられないぞ〜
2005/06/27(月) 23:57:32
>>58
おまえの目は節穴、恥ずかしすぎるぞ。
おまえの目は節穴、恥ずかしすぎるぞ。
60デフォルトの名無しさん
2005/08/23(火) 06:35:38 みんなで麻雀の思考ルーチンを作って、東風荘とかで対決してみたいなあ。
東風荘の画面から牌の情報を読み取ったりするライブラリは >>23のHPで公開されているから、
純粋な思考ルーチンの部分を作るだけでいいし。
age
東風荘の画面から牌の情報を読み取ったりするライブラリは >>23のHPで公開されているから、
純粋な思考ルーチンの部分を作るだけでいいし。
age
2005/08/23(火) 09:38:19
>>57
麻雀のソースずっと探してたんだ、ありがとう
麻雀のソースずっと探してたんだ、ありがとう
62デフォルトの名無しさん
2005/08/23(火) 10:02:16 「振らない」というのはロジックにどう組み込みますか?
というか、捨て牌から手役の高さと待ちを読むロジックは
あまり研究されてない分野と思う
というか、捨て牌から手役の高さと待ちを読むロジックは
あまり研究されてない分野と思う
2005/08/23(火) 10:08:57
板違いすぎ
64デフォルトの名無しさん
NGNG マージャンはルールが不明な部分が多いんだよな。
カンが四つで流れるってルールとスーカンツは両立しないけど、どうなってるんだとか。
・一人でカンを四つの場合は流れない
・カンを四つした時点でスーカンツができてなかったら流れる
・その他
とか、いろいろ考えられるけど、本屋に売ってるマージャンの本なんかには
載ってないし。
(なんとか協会とかのルールには決められてるんだろうけど)
カンが四つで流れるってルールとスーカンツは両立しないけど、どうなってるんだとか。
・一人でカンを四つの場合は流れない
・カンを四つした時点でスーカンツができてなかったら流れる
・その他
とか、いろいろ考えられるけど、本屋に売ってるマージャンの本なんかには
載ってないし。
(なんとか協会とかのルールには決められてるんだろうけど)
65デフォルトの名無しさん
2005/08/23(火) 10:30:26 >>64
仕様(ルール)の振れ幅は決まってるんだから、たいした問題ではないだろう
仕様(ルール)の振れ幅は決まってるんだから、たいした問題ではないだろう
2005/08/23(火) 12:19:22
>>62
真面目に組むんだったら、捨牌戦略は割と簡単に組める
・裏筋チェック
・壁チェック
・自分の手牌と場に出た牌の数え上げ
・染め手系のチェック
・序盤の中張牌(変則待ち)チェック
・・・といろいろあるが、はっきり言って、上の3つ程度を行えば十分だし、
それ以上やったら、かえって弱くなる傾向がある。
(変則待ちや染め手を警戒するあまり、棒テンにぶち当たる)
本当はプレイヤーの待ち牌をチェックして出さないことだが、それはあくまでも反則ということで。
あと、日本プロ麻雀連盟の公式ルール(抜粋)
ttp://www.ma-jan.or.jp/rule.htm
あと、スーカンツは1人で4つのカンをした場合に成立し、その場合5つめのカンの発声および牌の提示とともに流局となる。
それ以外の場合は、全て4つめのカンが成立した時点で流れとなる。
カンの成立は、カンをした人が、リンシャン牌をツモり、手牌の中から不要な牌を打牌した瞬間。
(カンドラありのルールの場合、チャンカン時にはカンを行った人の打牌が行われていないため、新ドラが成立しない)
真面目に組むんだったら、捨牌戦略は割と簡単に組める
・裏筋チェック
・壁チェック
・自分の手牌と場に出た牌の数え上げ
・染め手系のチェック
・序盤の中張牌(変則待ち)チェック
・・・といろいろあるが、はっきり言って、上の3つ程度を行えば十分だし、
それ以上やったら、かえって弱くなる傾向がある。
(変則待ちや染め手を警戒するあまり、棒テンにぶち当たる)
本当はプレイヤーの待ち牌をチェックして出さないことだが、それはあくまでも反則ということで。
あと、日本プロ麻雀連盟の公式ルール(抜粋)
ttp://www.ma-jan.or.jp/rule.htm
あと、スーカンツは1人で4つのカンをした場合に成立し、その場合5つめのカンの発声および牌の提示とともに流局となる。
それ以外の場合は、全て4つめのカンが成立した時点で流れとなる。
カンの成立は、カンをした人が、リンシャン牌をツモり、手牌の中から不要な牌を打牌した瞬間。
(カンドラありのルールの場合、チャンカン時にはカンを行った人の打牌が行われていないため、新ドラが成立しない)
2005/08/23(火) 15:37:30
>>66
日本プロ麻雀連盟の公式ローカルルールな
日本プロ麻雀連盟の公式ローカルルールな
2005/08/23(火) 15:39:48
>>66
手役の高さを推測し、期待値計算して自分の手の期待値と比較して
相手のノミ手より自分のとびまんを優先して 危険牌でも打つ みたいな
そういうロジックを組みたいよな
あと、当然ネットワーク対戦等の 神(サーバ)があり 打ち手(クライアント)
があるという構成での最強を目指したいよな
手役の高さを推測し、期待値計算して自分の手の期待値と比較して
相手のノミ手より自分のとびまんを優先して 危険牌でも打つ みたいな
そういうロジックを組みたいよな
あと、当然ネットワーク対戦等の 神(サーバ)があり 打ち手(クライアント)
があるという構成での最強を目指したいよな
6966
2005/08/23(火) 16:03:00 >>68
実は色々やっているんだが、実は「リーチ一発・裏ドラあり」というルールや、
「カンドラ・カンウラあり」とか「赤五ピン・赤五ソーあり」とか
「ウラドラチップ制」などの、祝儀たくさんのインフレ麻雀になればなるほど・・・
(1)自分から見える情報だけで、もっとも待ち牌がたくさんある面子選択を面前で行う。
(2)字牌を除き9-10枚以上同種牌が無いとチンイツに行かない。(ホンイツは想定外)
(3)聴牌はもっとも残り枚数が多い形(たいていはリャンメン待ちかその変形)
を選択し、リーチを必ずかける(裏ドラが乗るため)
(4)相手のリーチはこちらが2シャンテンより遅い場合は全て無視
・・・という棒テン・即リー・タコツッパリ君AIが強かったりする。
逆に一発ウラドラなしルールだと、AIのウエイト変数を工夫した、
敵側の捨てパイ読み部分のプログラムの作成が楽しくなるのだが。
また同じAIを使っても、棒テン即リー君ばかりのAIx4人の相互対戦の場合とか、
染め屋さんAIが一人入るとか、なんちゃって鳴きの竜AIが入ってくるか、
・・・またそのAIがどこに座るかによって、対戦結果が有意(5%以上)違ってくるので、面白い。
まだまだ研究途上だけどね。
実は色々やっているんだが、実は「リーチ一発・裏ドラあり」というルールや、
「カンドラ・カンウラあり」とか「赤五ピン・赤五ソーあり」とか
「ウラドラチップ制」などの、祝儀たくさんのインフレ麻雀になればなるほど・・・
(1)自分から見える情報だけで、もっとも待ち牌がたくさんある面子選択を面前で行う。
(2)字牌を除き9-10枚以上同種牌が無いとチンイツに行かない。(ホンイツは想定外)
(3)聴牌はもっとも残り枚数が多い形(たいていはリャンメン待ちかその変形)
を選択し、リーチを必ずかける(裏ドラが乗るため)
(4)相手のリーチはこちらが2シャンテンより遅い場合は全て無視
・・・という棒テン・即リー・タコツッパリ君AIが強かったりする。
逆に一発ウラドラなしルールだと、AIのウエイト変数を工夫した、
敵側の捨てパイ読み部分のプログラムの作成が楽しくなるのだが。
また同じAIを使っても、棒テン即リー君ばかりのAIx4人の相互対戦の場合とか、
染め屋さんAIが一人入るとか、なんちゃって鳴きの竜AIが入ってくるか、
・・・またそのAIがどこに座るかによって、対戦結果が有意(5%以上)違ってくるので、面白い。
まだまだ研究途上だけどね。
7060
2005/08/23(火) 20:35:257161
2005/08/25(木) 08:38:59 >>70
おお、ありがとう。思考以前に麻雀動かすだけで四苦八苦ですわ
おお、ありがとう。思考以前に麻雀動かすだけで四苦八苦ですわ
2005/09/01(木) 00:53:18
73東風荘じゃ1600程度
2005/09/01(木) 11:33:02 おまいら教えてください
最強の麻雀ロジックを作るため研究を始めました。
まずポンチーカンロンなし、役もなしですべてのプレイヤーがひたすら上がりに向かうという
シミュレーションを行っているのですが、この状況で誰かが上がる確率が50%にしかなりません。
麻雀そのものにそれほど詳しくないのでこれが妥当なのかよくわからんです
次に今のアルゴリズムを書きます
最強の麻雀ロジックを作るため研究を始めました。
まずポンチーカンロンなし、役もなしですべてのプレイヤーがひたすら上がりに向かうという
シミュレーションを行っているのですが、この状況で誰かが上がる確率が50%にしかなりません。
麻雀そのものにそれほど詳しくないのでこれが妥当なのかよくわからんです
次に今のアルゴリズムを書きます
74東風荘じゃ1600程度
2005/09/01(木) 11:36:55 >>73
一枚引いて14枚になったら・・・
IF 聴牌
return どの牌を捨てたら一番待ちが多くなるか()
FOREACH hai IN 手牌
仮想手牌 = 手牌からhaiを取り除く
評価(仮想手牌)
return 一番評価の高かったhai
一枚引いて14枚になったら・・・
IF 聴牌
return どの牌を捨てたら一番待ちが多くなるか()
FOREACH hai IN 手牌
仮想手牌 = 手牌からhaiを取り除く
評価(仮想手牌)
return 一番評価の高かったhai
75東風荘じゃ1600程度
2005/09/01(木) 11:42:30 >>74
評価関数は・・・
評価(牌の配列)
int SCORE
WHILE 順子 がある
配列から取り除いて、SCOREに順子値をプラス
WHILE 刻子 がある
配列から取り除いて、SCOREに刻子値をプラス
WHILE 両面 がある
配列から取り除いて、SCOREに両面値をプラス
・・・
という感じで重要な構成要素から点をつけています。
この両面値などを適当に調整しているのですが、この方法ではパラメータがプログラマの
マージャンの知識に依存してしまうし、仮定のような簡単な状況(役なしなど)でなくなった
場合に応用が利きません。
なにかよい方法はないでしょうか?
評価関数は・・・
評価(牌の配列)
int SCORE
WHILE 順子 がある
配列から取り除いて、SCOREに順子値をプラス
WHILE 刻子 がある
配列から取り除いて、SCOREに刻子値をプラス
WHILE 両面 がある
配列から取り除いて、SCOREに両面値をプラス
・・・
という感じで重要な構成要素から点をつけています。
この両面値などを適当に調整しているのですが、この方法ではパラメータがプログラマの
マージャンの知識に依存してしまうし、仮定のような簡単な状況(役なしなど)でなくなった
場合に応用が利きません。
なにかよい方法はないでしょうか?
2005/09/01(木) 12:21:23
77東風荘じゃ1600程度
2005/09/01(木) 13:03:24 >>76
>詰め将棋のように今の手配から上がるまでを総当りで調べる
これをやってしまうと10000回とかのシミュレーションが行えず(時間がかかりすぎるため)
悩んでいます。
しかし50%が妥当なのであれば、そろそろ次のステップに行こうかと思います
・ロンできるようにする
・捨て牌を見る
・役判定をいれる
くらいからはじめようかなと思っています
>詰め将棋のように今の手配から上がるまでを総当りで調べる
これをやってしまうと10000回とかのシミュレーションが行えず(時間がかかりすぎるため)
悩んでいます。
しかし50%が妥当なのであれば、そろそろ次のステップに行こうかと思います
・ロンできるようにする
・捨て牌を見る
・役判定をいれる
くらいからはじめようかなと思っています
7876
2005/09/01(木) 16:28:14 枝狩り。理想は総当りだが、実際には時間に合わせて読むようにする
それか、数牌だけとか抽象化したモデルで先にデータベース化(定跡)するとか
さらに、こちらの番やアニメーション+音声の再生時に読むとか
これが難しいなら、積み込みや手牌透視ができるインチキ対戦CPUを作る
それか、数牌だけとか抽象化したモデルで先にデータベース化(定跡)するとか
さらに、こちらの番やアニメーション+音声の再生時に読むとか
これが難しいなら、積み込みや手牌透視ができるインチキ対戦CPUを作る
2005/09/01(木) 18:45:41
>>78
それだととんぷうそうで勝てないんだよね・・・
それだととんぷうそうで勝てないんだよね・・・
80デフォルトの名無しさん
2005/09/05(月) 20:11:02 >>白木
それは違うぞ
それは違うぞ
2005/09/05(月) 22:09:10
白木って誰
2005/09/06(火) 20:30:20
>>78
あと、すり替えも。
あと、すり替えも。
2005/09/08(木) 01:49:37
ブッコぬk(ry
2005/09/08(木) 11:47:39
コンピュータ対戦も可能なネット麻雀を作ったら面白いな。
対戦相手はランダムな選出だけど、運良く二人以上が選ばれたら
通しもしていいというルールで。
まあ同一IPからの接続は二人まで、と縛っとけば
CATV以外の人はそう困らんでしょう。
山に対する仕掛けが出来なければそれなりにフェアだし。
対戦相手はランダムな選出だけど、運良く二人以上が選ばれたら
通しもしていいというルールで。
まあ同一IPからの接続は二人まで、と縛っとけば
CATV以外の人はそう困らんでしょう。
山に対する仕掛けが出来なければそれなりにフェアだし。
2005/09/08(木) 22:53:10
>>78
手牌透視とかはアーケードの某ネット対戦麻雀でも大々的にやってるらしいな
315 名前:焼き鳥名無しさん[sage] 投稿日:2005/09/07(水) 03:54:12 ID:???
金突っ込まないと上がれないようにする。これ当然の話。
MJは知らないが、以前組んだオンラインマージャンシステムだと・・・
まずは、リーチをかけようがポンしてもチーしてもツモ牌は変わらないようにする。
すなわち配牌グループ13枚x4,ツモグループ17枚x4程度を事前に作る。
投入資金をパラメータ化しておき、高額支払い者が比較的有利になるように
乱数を使って、ほどほどに偏りのある有利度補正値を適宜決定する。
有利度補正値によって、配牌グループでは、(1)(2)(3)(4),ツモグループでは(1),(2)を作る。
(1)中張牌の出現頻度を10,20,30,40%多いグループを作る
(2)特定の柄(ピンズ、ソーズ、マンズ)が10,20,30,40%多い割合で選択されるグループを作る。
(3)場風と字風と三元牌を2枚もしくは3枚含むグループを作る
(4)ドラ牌を2枚もしくは3枚含むグループを作る。
なお、何も補正を加えなくてもいい場合は、完全ランダムで牌を選ぶ。
テストプレイでは、中張牌が20%程度多い配牌で、同様のツモグループにするだけで、
飛躍的に得点が伸びるし、リーチ一発も多くなる。
しかも、一見して細工しているのがわからない。
役満(三元牌を5枚以上積み込む)などの露骨な細工は、(露骨過ぎるので)あまりしないでほしいといわれた。
(ただ一色手方向の補正が大きくなると、大車輪・九連宝灯・緑一色などの出現頻度が高くなる...四暗刻も増える)
手牌透視とかはアーケードの某ネット対戦麻雀でも大々的にやってるらしいな
315 名前:焼き鳥名無しさん[sage] 投稿日:2005/09/07(水) 03:54:12 ID:???
金突っ込まないと上がれないようにする。これ当然の話。
MJは知らないが、以前組んだオンラインマージャンシステムだと・・・
まずは、リーチをかけようがポンしてもチーしてもツモ牌は変わらないようにする。
すなわち配牌グループ13枚x4,ツモグループ17枚x4程度を事前に作る。
投入資金をパラメータ化しておき、高額支払い者が比較的有利になるように
乱数を使って、ほどほどに偏りのある有利度補正値を適宜決定する。
有利度補正値によって、配牌グループでは、(1)(2)(3)(4),ツモグループでは(1),(2)を作る。
(1)中張牌の出現頻度を10,20,30,40%多いグループを作る
(2)特定の柄(ピンズ、ソーズ、マンズ)が10,20,30,40%多い割合で選択されるグループを作る。
(3)場風と字風と三元牌を2枚もしくは3枚含むグループを作る
(4)ドラ牌を2枚もしくは3枚含むグループを作る。
なお、何も補正を加えなくてもいい場合は、完全ランダムで牌を選ぶ。
テストプレイでは、中張牌が20%程度多い配牌で、同様のツモグループにするだけで、
飛躍的に得点が伸びるし、リーチ一発も多くなる。
しかも、一見して細工しているのがわからない。
役満(三元牌を5枚以上積み込む)などの露骨な細工は、(露骨過ぎるので)あまりしないでほしいといわれた。
(ただ一色手方向の補正が大きくなると、大車輪・九連宝灯・緑一色などの出現頻度が高くなる...四暗刻も増える)
86デフォルトの名無しさん
2005/09/09(金) 00:49:19 おまえら、PS2の麻雀やろうぜ!2でも参考にしろ
87デフォルトの名無しさん
2005/09/09(金) 20:22:09 白木、出て来い
2005/09/09(金) 23:20:10
89デフォルトの名無しさん
2005/10/31(月) 00:35:54 age
90名前は開発中のものです。
2005/11/25(金) 19:01:36ID:/aObainy2005/11/25(金) 19:29:39ID:ixk95QjQ
(´・ω・`)
92名前は開発中のものです。
2006/06/16(金) 15:06:48ID:gys/BJwI age
93名前は開発中のものです。
2006/06/22(木) 04:21:40ID:2BUVy0Re age
2006/07/04(火) 12:32:40ID:RtEqyIQY
AI同士を対戦させるプログラムを作ってみようかなあ。
し よ う
基本は、>>7のMJSimと同じ。
・AI同士のみの対戦。
・東風荘ルール。
・東風荘のログを出す。
・AIは、.netで作る。作るの楽だし、開発環境無料だし。
・勝敗は、東風戦200回以上の合計得点で決める。
・「勝敗」にほとんど関係のない(めったに現れない)ルールは無しにする(役満、チャンカンなど)。
MJSimは、AIに「普通の麻雀」をさせようとして作るのが難しくなっている気がする。
麻雀のルールを、AIが作りやすい形に変えてしまえばいいのではないか。
まあ、できるかどうかわからん。
1ヶ月たって音沙汰が無ければ頓挫したと思ってくれ。
し よ う
基本は、>>7のMJSimと同じ。
・AI同士のみの対戦。
・東風荘ルール。
・東風荘のログを出す。
・AIは、.netで作る。作るの楽だし、開発環境無料だし。
・勝敗は、東風戦200回以上の合計得点で決める。
・「勝敗」にほとんど関係のない(めったに現れない)ルールは無しにする(役満、チャンカンなど)。
MJSimは、AIに「普通の麻雀」をさせようとして作るのが難しくなっている気がする。
麻雀のルールを、AIが作りやすい形に変えてしまえばいいのではないか。
まあ、できるかどうかわからん。
1ヶ月たって音沙汰が無ければ頓挫したと思ってくれ。
2006/08/05(土) 12:24:30ID:huHp86V8
1月経った訳だが
96名前は開発中のものです。
2006/11/11(土) 10:51:40ID:bfMsKF2A 東風荘の代打プログラムを作って、100試合ほど打たせてみた。
安定Rが1100しかなかった(´・ω・`)
実装した機能は以下の通り。
・普段は単純に聴牌一直線。具体的には、シャンテン数を落とさずに
受け入れが広くなるように切る。ドラおよびドラ付近は評価を高めに。
・鳴きは役牌のみ。
・残り山枚数が20枚以下になると、形式聴牌を取りにいく。
・相手から先制リーチが入ると、現物→字牌→筋の順でベタオリ。
安定Rが1100しかなかった(´・ω・`)
実装した機能は以下の通り。
・普段は単純に聴牌一直線。具体的には、シャンテン数を落とさずに
受け入れが広くなるように切る。ドラおよびドラ付近は評価を高めに。
・鳴きは役牌のみ。
・残り山枚数が20枚以下になると、形式聴牌を取りにいく。
・相手から先制リーチが入ると、現物→字牌→筋の順でベタオリ。
2006/11/11(土) 11:45:38ID:z2w53djY
ベタオリ機能外した方がよくねえか?
9896
2006/11/11(土) 14:19:21ID:bfMsKF2A2006/11/11(土) 20:49:33ID:GfQHFT1U
ベタオリする条件を先制リーチと別に、もういくつか設定してみたらどう?
たとえば残り山数が少なく、シャンテン数が高いとか
切れる牌が危険牌だらけとか上がれそうもなかったら、ベタオリ。
まだ、山数が十分あるとか、シャンテン数が低いとか、切れる牌の危険度が
低かったら続行するとか。
たとえば残り山数が少なく、シャンテン数が高いとか
切れる牌が危険牌だらけとか上がれそうもなかったら、ベタオリ。
まだ、山数が十分あるとか、シャンテン数が低いとか、切れる牌の危険度が
低かったら続行するとか。
10096
2006/11/13(月) 09:22:52ID:duDFKbMP101名前は開発中のものです。
2006/11/13(月) 19:32:23ID:/l9lVeym 勝ちが安定しないって、ようは運任せで、アルゴリズム関係なしなんでは?
102名前は開発中のものです。
2006/11/13(月) 23:38:07ID:BdVR9VSj シャンテン数が高いときはベタオリにして、
それ以外のときは
ゆるくオリるような打ち方がいいんではないかと。
つまり、現物、字牌、筋、
リーチ者が序盤に切った牌の周りなどを
安全そうな牌としといて、
安全そうな牌かつシャンテン数を落とさない牌を打つようにする。
さらに精密にやるなら安全度を点数化するといいかも。
それ以外のときは
ゆるくオリるような打ち方がいいんではないかと。
つまり、現物、字牌、筋、
リーチ者が序盤に切った牌の周りなどを
安全そうな牌としといて、
安全そうな牌かつシャンテン数を落とさない牌を打つようにする。
さらに精密にやるなら安全度を点数化するといいかも。
103名前は開発中のものです。
2006/11/14(火) 19:32:08ID:MANy7Ws5 やっぱりベタオリは改善の余地があると思う。
勝ってるときはベタオリ、負けてるときは、続行とか。
あとは鳴きが役牌のみってところかな?
チンイツとかホンイツとかトイトイとか、いくつかの役に対して、シャンテン数計算して、
いくつ以下ならその手を目指してチーポンを積極的に行うとかはどうだろうか。
勝ってるときはベタオリ、負けてるときは、続行とか。
あとは鳴きが役牌のみってところかな?
チンイツとかホンイツとかトイトイとか、いくつかの役に対して、シャンテン数計算して、
いくつ以下ならその手を目指してチーポンを積極的に行うとかはどうだろうか。
10496
2006/11/19(日) 22:34:00ID:t1T5Qf2N みなさんレスありがとうございます。
平日は忙しい上に、PCがつかえない環境にいるため、
返事ができなくてすみません。
ところで、他にも東風で代打プログラムを
動かしてみたいという方はいらっしゃいませんか?
もし、代打プログラムを作ってみたいが、とつげき東北さんが配布されている
MJexeIO.dllを使ってもスキルが足らずに作成できない・めんどくさいという方が
おられましたら、僕が作成したプログラムでよければ公開させていただきます。
今のところ搭載している機能・特徴は以下のとおりです。
1.とつげき東北さんが配布されているMJexeIO.dllに皮をかぶせて使いやすくしています。
具体的には、
○画面から情報を取得する関数を自作の関数の中で適切によびだしているため、
プログラマ自身が画面から情報を取得する関数を呼び出すタイミングに頭を悩ませる必要はありません。
画面から取得された情報は、自作の構造体(手牌構造体やプレイヤー構造体など)に格納されます。
○自分の順番が回って来た時にどの牌を切るかを返す関数、チーやポンをするかどうか尋ねられた時に
鳴くかどうかを決定する関数のみを実装すれば、自分の思い通りに動く代打プログラムが作れます。
2.一度起動すれば、プログラムを終了するか、東風が回線落ちするまで、延々と打ち続ける機能を搭載しています。
3.自分の手牌のシャンテンを計算する機能、場に見えている牌の枚数を数える機能、有効牌を計算する機能
(ここでいう有効牌とは、自分の手牌のシャンテン数を下げる牌を意味します)、4人の捨て牌を時間順に並べる機能
(この機能により、MJexeIO.dllのSimulateOrder関数に付きまとっていた、切られた牌の順序決定不可能性の問題
を回避できます)など、代打プログラムを作成する上で、必要と思われる機能を搭載しています。
(時間があれば、自分の手牌の役を認識する機能を搭載する予定です。)
4.僕自身はプログラミングを趣味としているただの学生ですので、スキル的な問題により、ソースコードは汚いですし、
上記機能の処理速度も速くはありません。デバッグは十分に繰り返したつもりですが、バグがないことを保障できません。
平日は忙しい上に、PCがつかえない環境にいるため、
返事ができなくてすみません。
ところで、他にも東風で代打プログラムを
動かしてみたいという方はいらっしゃいませんか?
もし、代打プログラムを作ってみたいが、とつげき東北さんが配布されている
MJexeIO.dllを使ってもスキルが足らずに作成できない・めんどくさいという方が
おられましたら、僕が作成したプログラムでよければ公開させていただきます。
今のところ搭載している機能・特徴は以下のとおりです。
1.とつげき東北さんが配布されているMJexeIO.dllに皮をかぶせて使いやすくしています。
具体的には、
○画面から情報を取得する関数を自作の関数の中で適切によびだしているため、
プログラマ自身が画面から情報を取得する関数を呼び出すタイミングに頭を悩ませる必要はありません。
画面から取得された情報は、自作の構造体(手牌構造体やプレイヤー構造体など)に格納されます。
○自分の順番が回って来た時にどの牌を切るかを返す関数、チーやポンをするかどうか尋ねられた時に
鳴くかどうかを決定する関数のみを実装すれば、自分の思い通りに動く代打プログラムが作れます。
2.一度起動すれば、プログラムを終了するか、東風が回線落ちするまで、延々と打ち続ける機能を搭載しています。
3.自分の手牌のシャンテンを計算する機能、場に見えている牌の枚数を数える機能、有効牌を計算する機能
(ここでいう有効牌とは、自分の手牌のシャンテン数を下げる牌を意味します)、4人の捨て牌を時間順に並べる機能
(この機能により、MJexeIO.dllのSimulateOrder関数に付きまとっていた、切られた牌の順序決定不可能性の問題
を回避できます)など、代打プログラムを作成する上で、必要と思われる機能を搭載しています。
(時間があれば、自分の手牌の役を認識する機能を搭載する予定です。)
4.僕自身はプログラミングを趣味としているただの学生ですので、スキル的な問題により、ソースコードは汚いですし、
上記機能の処理速度も速くはありません。デバッグは十分に繰り返したつもりですが、バグがないことを保障できません。
105名前は開発中のものです。
2006/11/20(月) 03:34:26ID:flZCi+aK106名前は開発中のものです。
2006/11/20(月) 21:10:36ID:8qCQQBvr うちは、代打ちじゃなくて全部オリジナルで作ってるんで、
プログラム自体は必要ないけど、アルゴリズムとか、
どんなことをやってるかソース中にコメントとかあれば見てみたい。
作ってるのはエロゲなんで、強い思考ルーチンはいらないんだけど。
プログラム自体は必要ないけど、アルゴリズムとか、
どんなことをやってるかソース中にコメントとかあれば見てみたい。
作ってるのはエロゲなんで、強い思考ルーチンはいらないんだけど。
107名前は開発中のものです。
2006/11/24(金) 22:26:28ID:WoA2EPYX しかし、こんなにいるんや。
こんなこと考える人!
やっぱ、パラメタ、重みつけ。
あと、ひたすら統計になるんかなー?
こんなこと考える人!
やっぱ、パラメタ、重みつけ。
あと、ひたすら統計になるんかなー?
108名前は開発中のものです。
2006/12/12(火) 23:21:53ID:svbHb3hn 統計取るなら聴牌思考の指向性についても考えたほうがいいんじゃないかな
具体的には棒聴即リールーチンと期待値計算して遠回りしても高い手を和了るルーチンのどちらが強いか
ってのを東風かなにかで実戦に投入しながら統計をとるってことで
でも、麻雀の統計として具体的に何局ほどサンプルをとればいいんだろうか…
20万局ぐらい?
具体的には棒聴即リールーチンと期待値計算して遠回りしても高い手を和了るルーチンのどちらが強いか
ってのを東風かなにかで実戦に投入しながら統計をとるってことで
でも、麻雀の統計として具体的に何局ほどサンプルをとればいいんだろうか…
20万局ぐらい?
10996
2006/12/28(木) 20:24:12ID:IWNuZXZH >>100からさらに改良を加えて、200試合ほど打たせてみたところ、
安定Rが1600付近まで上昇しました。
特に、好調だった80試合を見ると、安定Rが1900強に。
改良点は以下のとおり。
<聴牌に向かっているとき>
今まで:面子手のみ。
↓
改良版:チートイツも組み込んだ。
<ベタオリ時>
今まで:2人が同時に攻めてきた場合、自分から反時計に見て
近い方しか警戒していなかった。
↓
改良版:他家それぞれに警戒係数という指標を導入し、
複数他家の攻撃にも正確にベタオリできるようにした。
<状況判断>
今まで:他家からリーチがかかったときのみベタオリ
↓
改良版:他家のリーチだけでなく、食い仕掛けにも対応。
また、自分の手がよければ、先制されても攻めるようにした。
<牌効率>
今まで:シャンテン数を下げない牌を一枚切る。
その際に、内側の牌・ドラ・ドラソバに高評価を与えていた。
改良版:一打一打ごとにモンテカルロシミュレーションを行い、もっとも手牌のあがりへの
寄与が低い牌を切るようにした。
安定Rが1600付近まで上昇しました。
特に、好調だった80試合を見ると、安定Rが1900強に。
改良点は以下のとおり。
<聴牌に向かっているとき>
今まで:面子手のみ。
↓
改良版:チートイツも組み込んだ。
<ベタオリ時>
今まで:2人が同時に攻めてきた場合、自分から反時計に見て
近い方しか警戒していなかった。
↓
改良版:他家それぞれに警戒係数という指標を導入し、
複数他家の攻撃にも正確にベタオリできるようにした。
<状況判断>
今まで:他家からリーチがかかったときのみベタオリ
↓
改良版:他家のリーチだけでなく、食い仕掛けにも対応。
また、自分の手がよければ、先制されても攻めるようにした。
<牌効率>
今まで:シャンテン数を下げない牌を一枚切る。
その際に、内側の牌・ドラ・ドラソバに高評価を与えていた。
改良版:一打一打ごとにモンテカルロシミュレーションを行い、もっとも手牌のあがりへの
寄与が低い牌を切るようにした。
110名前は開発中のものです。
2006/12/29(金) 18:27:19ID:sGXeTFgC カルネージハート(或いは、FF12のカンビット)のように
みんながアルゴリズムを組みやすいアプリケーションがあればいいと思った。
麻雀がうまくてもプログラムなんて組めないって人多いだろうし。
みんながアルゴリズムを組みやすいアプリケーションがあればいいと思った。
麻雀がうまくてもプログラムなんて組めないって人多いだろうし。
111名前は開発中のものです。
2006/12/29(金) 18:38:40ID:J1Q+yA/u 麻雀は、カルネージと違って、サブサンプション的にどうこうするってものでないからな
アルゴリズムというよりむしろ統計処理か
まあ、パネルプログラミング的なインターフェイスはあったら面白いかも
アルゴリズムというよりむしろ統計処理か
まあ、パネルプログラミング的なインターフェイスはあったら面白いかも
112名前は開発中のものです。
2006/12/29(金) 19:27:02ID:XZsMB63t >>109
研究用にソース欲しいんですけどオープンソースですか?
研究用にソース欲しいんですけどオープンソースですか?
11396
2006/12/29(金) 21:53:15ID:DWfKfu8r114名前は開発中のものです。
2006/12/29(金) 22:12:09ID:XZsMB63t11596
2006/12/29(金) 22:17:26ID:DWfKfu8r116高島易者のつぶやき
2006/12/30(土) 02:07:11ID:6keB+Ie9 そんなことより、ちょいと聞いてくれよ、>>1よ。
昨日、あるホテルで高島易断の鑑定会やったんです。鑑定会。
そしたらなんか人がめちゃくちゃ少なくガラガラなんです。
で、よく見たらなんか貧乏臭い客がいて、「運勢鑑定3000円ですよね」、とかほざいてるんです。
もうね、アホかと。馬鹿かと。
お前らな、運勢鑑定如きで普段来てない高島易断に来てんじゃねーよ、ボケが。
御祈祷だよ、御祈祷。
なんか親子連れとかもいるし。一家4人で高島易断か。おめでてーな。
よーしパパ運勢鑑定頼んじゃうぞー、とか言ってるの。もう見てらんない。
お前らな、3000円やるから帰ってくれと。
高島易断ってのはな、もっと金持ちが来るべきなんだよ。
テーブルの向かいに座った奴に因縁話吹っかけてもおかしくない、
乗せるか逃げられるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと別の客が来たと思ったら、そのうちの一人がまた、3000円ですよね、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、3000円の鑑定なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、3000円の、だ。
お前は本当に3000円の鑑定を受けに来たのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、3000円の鑑定って言いたいだけちゃうんかと。
高島易者の俺から言わせてもらえば今、高島易者の間での最新流行はやっぱり、
年間36万円の因縁切りの御祈祷、これだね。
2年分72万円。これが通の頼み方。
御祈祷ってのは金がまとまって入る。そん代わり手間が掛からない。これ。
で、それに1年分100万円の特別祈祷。これ最強。
しかしこれを勧めるとと次からカモ(客)に警戒されるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前ら貧乏人は、近所の神社でオミクジでも引いてなさいってこった。
高島易断について■part3
http://hobby8.2ch.net/test/read.cgi/uranai/1155287091/l50
昨日、あるホテルで高島易断の鑑定会やったんです。鑑定会。
そしたらなんか人がめちゃくちゃ少なくガラガラなんです。
で、よく見たらなんか貧乏臭い客がいて、「運勢鑑定3000円ですよね」、とかほざいてるんです。
もうね、アホかと。馬鹿かと。
お前らな、運勢鑑定如きで普段来てない高島易断に来てんじゃねーよ、ボケが。
御祈祷だよ、御祈祷。
なんか親子連れとかもいるし。一家4人で高島易断か。おめでてーな。
よーしパパ運勢鑑定頼んじゃうぞー、とか言ってるの。もう見てらんない。
お前らな、3000円やるから帰ってくれと。
高島易断ってのはな、もっと金持ちが来るべきなんだよ。
テーブルの向かいに座った奴に因縁話吹っかけてもおかしくない、
乗せるか逃げられるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと別の客が来たと思ったら、そのうちの一人がまた、3000円ですよね、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、3000円の鑑定なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、3000円の、だ。
お前は本当に3000円の鑑定を受けに来たのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、3000円の鑑定って言いたいだけちゃうんかと。
高島易者の俺から言わせてもらえば今、高島易者の間での最新流行はやっぱり、
年間36万円の因縁切りの御祈祷、これだね。
2年分72万円。これが通の頼み方。
御祈祷ってのは金がまとまって入る。そん代わり手間が掛からない。これ。
で、それに1年分100万円の特別祈祷。これ最強。
しかしこれを勧めるとと次からカモ(客)に警戒されるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前ら貧乏人は、近所の神社でオミクジでも引いてなさいってこった。
高島易断について■part3
http://hobby8.2ch.net/test/read.cgi/uranai/1155287091/l50
11796
2006/12/31(日) 06:46:41ID:57FmFyf5 風邪のため作業が捗らず、遅くなりましたが、
東風荘代打プログラムのソースコードです。
http://kasamatu.o0o0.jp/pochi/src/hajime7610.zip.html
受信パス:hebo_vip
解凍パス:hebohebo_vip
東風荘代打プログラムのソースコードです。
http://kasamatu.o0o0.jp/pochi/src/hajime7610.zip.html
受信パス:hebo_vip
解凍パス:hebohebo_vip
118名前は開発中のものです。
2006/12/31(日) 07:27:55ID:kaT/o5X3 ありがとうございます ノ
11996
2006/12/31(日) 14:39:40ID: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
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
120名前は開発中のものです。
2006/12/31(日) 17:59:56ID:JPe3tcsE 乙
12196
2007/01/07(日) 01:59:23ID:GOuBSiwa 全然反応がないです・・・(´;ω;`)ブワッ
122名前は開発中のものです。
2007/01/07(日) 07:49:18ID:cR1YsYdq12396
2007/01/07(日) 08:39:12ID:GOuBSiwa >>123
現時点の僕のプログラムは安定Rが1600程度ですが、
まだ高校数学以上の数学は一切用いてないです。
数学よりも、バックトラッキングや再帰関数といった
プログラミングの知識の方がはるかに重要じゃないかと思います。
もちろん、強いプログラムにしていく過程で数学の壁にあたることに
なるとは思いますが、ひとまず動かしてみて、思考ルーチン部分の
パラメータをいじるなどして感覚をつかめばソースコードの理解も
早まるんじゃないかと思います。
ちなみに、前からの課題であった役認識・点数計算プログラムを実装しました。
次はこのプログラムをいかに思考ルーチンに組み込むかが課題です。
このプログラムによって期待値の概念を思考ルーチンに導入することが
可能になるので、上手に組み込めば飛躍的に強くなるんじゃないかと期待してます。
現時点の僕のプログラムは安定Rが1600程度ですが、
まだ高校数学以上の数学は一切用いてないです。
数学よりも、バックトラッキングや再帰関数といった
プログラミングの知識の方がはるかに重要じゃないかと思います。
もちろん、強いプログラムにしていく過程で数学の壁にあたることに
なるとは思いますが、ひとまず動かしてみて、思考ルーチン部分の
パラメータをいじるなどして感覚をつかめばソースコードの理解も
早まるんじゃないかと思います。
ちなみに、前からの課題であった役認識・点数計算プログラムを実装しました。
次はこのプログラムをいかに思考ルーチンに組み込むかが課題です。
このプログラムによって期待値の概念を思考ルーチンに導入することが
可能になるので、上手に組み込めば飛躍的に強くなるんじゃないかと期待してます。
124名前は開発中のものです。
2007/01/07(日) 12:44:33ID:cR1YsYdq >>123
高校数学すらおぼつかないので・・・
また、うぷしてもらったソースを理解して改造していくのは難しそうだし、悪いけどそれはあまり楽しそうでない。
まずは、もっと単純なところから、
例えば、1人麻雀でテンパイに向かうだけのプログラムとかからはじめようかと思う。
車輪の再発明って言われるかもしれないが、この場合はプログラミング自体が「遊び」なので。
みんながスーパーマリオの1面をプレイするように、みんなが通っていいかなと。
その後で、参考にさせてもらうとおもう。
高校数学すらおぼつかないので・・・
また、うぷしてもらったソースを理解して改造していくのは難しそうだし、悪いけどそれはあまり楽しそうでない。
まずは、もっと単純なところから、
例えば、1人麻雀でテンパイに向かうだけのプログラムとかからはじめようかと思う。
車輪の再発明って言われるかもしれないが、この場合はプログラミング自体が「遊び」なので。
みんながスーパーマリオの1面をプレイするように、みんなが通っていいかなと。
その後で、参考にさせてもらうとおもう。
125名前は開発中のものです。
2007/01/18(木) 22:19:21ID:JqheaSzi 今日初めてここ着たけど、とりあえずソース読ませてもらったよー
別の麻雀ソフトでも対応できるようにデータ取得部分と思考部分が分離されてると思ってたから、
あんまり分離されてなさそうなのが意外だったかも。
ぶっちゃけデータ取得部を流用させてもらおうと思ってたから残念
ちなみに、正直Cで変数いじりしかまともにできない俺にはいまいちわからんw
もうしばらくしたらAI作りはじめられると思うからその時はよろしくっ
別の麻雀ソフトでも対応できるようにデータ取得部分と思考部分が分離されてると思ってたから、
あんまり分離されてなさそうなのが意外だったかも。
ぶっちゃけデータ取得部を流用させてもらおうと思ってたから残念
ちなみに、正直Cで変数いじりしかまともにできない俺にはいまいちわからんw
もうしばらくしたらAI作りはじめられると思うからその時はよろしくっ
12696
2007/02/12(月) 15:20:17ID:IDAaCxE5 やっと修論を書き終えることができました!
三徹の影響で頭がぼーっとしているため、日本語が変かもしれませんが、ご容赦くださいw
>>124
確かに趣味で行う以上は「楽しさ」が最優先ですもんね。
僕も作る作業自体が楽しいので、車輪の再発明だらけです。
実際、MJexeIO.exeで提供されている機能以外は全部一から実装しましたし。
>>117でソースを公開した後、シャンテン数計算のルーチンを改良したのですが、
その結果、今までの5倍くらい計算時間を短縮することができ、
あらのHPやcomjong.comで紹介されているアルゴリズムよりも高速化することができました。
こういう些細なことでも進歩が見られると楽しいものです。
>>125
こちらこそよろしくです!
データ取得部は関数単位で分けてあるので、ある程度分離されてはいると思うのですが・・・
少なくとも、データ取得部と思考部がごちゃまぜになっているということはないはずです。
まあ正直な話、僕自身も変数いじりくらいしかできないので、そこら辺のことはよく分からないんですけどね(笑)
もう少し具体的に意見を頂ければ、修正もできるかと思います。
三徹の影響で頭がぼーっとしているため、日本語が変かもしれませんが、ご容赦くださいw
>>124
確かに趣味で行う以上は「楽しさ」が最優先ですもんね。
僕も作る作業自体が楽しいので、車輪の再発明だらけです。
実際、MJexeIO.exeで提供されている機能以外は全部一から実装しましたし。
>>117でソースを公開した後、シャンテン数計算のルーチンを改良したのですが、
その結果、今までの5倍くらい計算時間を短縮することができ、
あらのHPやcomjong.comで紹介されているアルゴリズムよりも高速化することができました。
こういう些細なことでも進歩が見られると楽しいものです。
>>125
こちらこそよろしくです!
データ取得部は関数単位で分けてあるので、ある程度分離されてはいると思うのですが・・・
少なくとも、データ取得部と思考部がごちゃまぜになっているということはないはずです。
まあ正直な話、僕自身も変数いじりくらいしかできないので、そこら辺のことはよく分からないんですけどね(笑)
もう少し具体的に意見を頂ければ、修正もできるかと思います。
127名前は開発中のものです。
2007/02/13(火) 06:51:43ID:gYGMMXlO128名前は開発中のものです。
2007/03/25(日) 17:39:09ID:/+ddsj91 おまいら最強の麻雀プログラムしてみろよ
http://pc11.2ch.net/test/read.cgi/tech/1169642436/
http://pc11.2ch.net/test/read.cgi/tech/1169642436/
129名前は開発中のものです。
2007/03/25(日) 18:32:15ID:UqHs+UFp 見にいったけどひどくレベルが低くないか?
テンパイチェックすら組めなそうな人ばっかりに見える
テンパイチェックすら組めなそうな人ばっかりに見える
130名前は開発中のものです。
2007/03/27(火) 18:23:15ID:AcanRDec >>94
「MJSim」の最新版って有る?
「MJSim」の最新版って有る?
131名前は開発中のものです。
2007/06/17(日) 16:57:24ID:rBhd2fbQ132名前は開発中のものです。
2007/08/10(金) 22:29:37ID:/4P+OHAU aaa
133リンク
2007/09/30(日) 19:03:23ID:IMLVX+zLなぜ最近の犬学生は麻雀できない奴が多いの?
http://ex23.2ch.net/test/read.cgi/campus/1191128147/l10
★★★ 学校で麻雀を教えるべきだ ♪♪♪
http://school7.2ch.net/test/read.cgi/edu/1190440186/l10
なんで最近の若者は麻雀できない奴が多いの?
http://money6.2ch.net/test/read.cgi/mj/1159088315/l10
134名前は開発中のものです。
2007/10/04(木) 21:01:57ID:HFnYJuJ5 せのたんは仮性包茎だったけど太めで包皮の上からカリが分かるプックリ型で良チンだったよ
135名前は開発中のものです。
2008/04/18(金) 23:45:53ID:ZXDlZmWL まだこのスレがあったwww
136名前は開発中のものです。
2008/04/27(日) 15:51:10ID:7kUIsgPs おまいら最強の麻雀プログラムしてみろよ Part2
http://pc11.2ch.net/test/read.cgi/tech/1185540470/
http://pc11.2ch.net/test/read.cgi/tech/1185540470/
137名前は開発中のものです。
2008/07/27(日) 01:30:55ID:FAVGJPP8 あげ
138名前は開発中のものです。
2008/07/29(火) 00:08:41ID:z7Yquf9f さげ
139名前は開発中のものです。
2008/10/19(日) 00:59:04ID:7mqKFfWk オープンネットワーク麻雀
http://sourceforge.jp/projects/openmj/wiki/FrontPage
http://sourceforge.jp/projects/openmj/wiki/FrontPage
140名前は開発中のものです。
2009/02/25(水) 01:01:10ID:B3OIG4R1 純粋に役判定だけしてくれるライブラリって無いですかね。
141名前は開発中のものです。
2009/02/25(水) 15:38:50ID:O2MoAZ4b >>140
作ってうp
作ってうp
142名前は開発中のものです。
2009/03/12(木) 21:59:56ID:zQ85wj82 作った
143名前は開発中のものです。
2009/03/31(火) 11:17:50ID:8CzZ1Tdw >>139
面白そうなことしてますね、HP見たけどどこまで進んでるか不明だった。
麻雀AI持ってるから、その上で動くAI作ってもいいけど。
いつ頃そのようなことができる?
ただし、C++のみRubyは覚える気ないのよ〜〜、 Winにも入れる気がなかったりして・・・
面白そうなことしてますね、HP見たけどどこまで進んでるか不明だった。
麻雀AI持ってるから、その上で動くAI作ってもいいけど。
いつ頃そのようなことができる?
ただし、C++のみRubyは覚える気ないのよ〜〜、 Winにも入れる気がなかったりして・・・
144名前は開発中のものです。
2009/08/18(火) 20:45:23ID:O344lzLj あげてみる
145名前は開発中のものです。
2010/07/04(日) 10:22:21ID:5u/6soF2 天鳳shirou_0のタメツモタメロン逆切れ粘着ストーカー最強
146名前は開発中のものです。
2010/07/04(日) 18:40:43ID:StqxSj8Y まだやってんのかこのスレ(w
真面目にロジック組もうとすると、
すぐ組合せ的爆発を起こすんだよな。
最近はリソースが豊富なだけに、
落ちるまでが長いからけっこう始末が悪い。
しかも定跡らしき手法がないんだコレが。
ジン・ラミーなんか麻雀よりだいぶ簡略化されてるが、
SE研修で「ジン・ラミーの上がり判定」を課題にしたら、
けっこう高給取りのはずの中級SEが二人掛りで二日かかっても
論理設計すらできずにギブアップした(w
プロダクション・システムを適当にでっち上げて
学習で鍛えるのがまだしも現実的だが、
所ジョージが言うように
『麻雀の必勝法は 素早いチョンボである
人が見てないうちに 勝手に自模っちゃう』
が結局いちばん効果的だと思う。
真面目にロジック組もうとすると、
すぐ組合せ的爆発を起こすんだよな。
最近はリソースが豊富なだけに、
落ちるまでが長いからけっこう始末が悪い。
しかも定跡らしき手法がないんだコレが。
ジン・ラミーなんか麻雀よりだいぶ簡略化されてるが、
SE研修で「ジン・ラミーの上がり判定」を課題にしたら、
けっこう高給取りのはずの中級SEが二人掛りで二日かかっても
論理設計すらできずにギブアップした(w
プロダクション・システムを適当にでっち上げて
学習で鍛えるのがまだしも現実的だが、
所ジョージが言うように
『麻雀の必勝法は 素早いチョンボである
人が見てないうちに 勝手に自模っちゃう』
が結局いちばん効果的だと思う。
147名前は開発中のものです。
2010/07/04(日) 18:50:13ID:MFQ3orwH サマをするAIとか、AIの意味ねえから…w
148名前は開発中のものです。
2010/07/04(日) 22:29:50ID:StqxSj8Y >>147
いいこと言った(w
だけど、AIって基本「相手が誰か分からない」っつー
前提があるじゃん?
相手の癖とか考慮できないわけだし、
コンビ打ちとかされたら、
不完全記憶ゲームだから解がない可能性だってあるわけだ。
AIで特定の条件で有効なシステムが組めたとして、
それって本当に意味あんのか?っつー話になんねぇ?
いいこと言った(w
だけど、AIって基本「相手が誰か分からない」っつー
前提があるじゃん?
相手の癖とか考慮できないわけだし、
コンビ打ちとかされたら、
不完全記憶ゲームだから解がない可能性だってあるわけだ。
AIで特定の条件で有効なシステムが組めたとして、
それって本当に意味あんのか?っつー話になんねぇ?
149名前は開発中のものです。
2010/07/05(月) 03:40:35ID:hJG4Gafv >>148
そういう人間っぽい戦略をするAIはある意味夢だよねw
でも、無作為な相手を対象としたAIでも価値はあると思う。
もし無作為な相手を対象として、平均的に強いAIが組めたら、
それより強いAIを組むために使えるじゃないかw
そういう人間っぽい戦略をするAIはある意味夢だよねw
でも、無作為な相手を対象としたAIでも価値はあると思う。
もし無作為な相手を対象として、平均的に強いAIが組めたら、
それより強いAIを組むために使えるじゃないかw
150名前は開発中のものです。
2010/07/05(月) 20:46:50ID:KmfV60ed >>149
> そういう人間っぽい戦略をするAIはある意味夢だよねw
待て待て。まず、
・プレイヤーの個人認証をする(過去の対戦記録から
対策を練ってくる)。
・戦略に名前とキャラを与える(プレイヤー側のハンデに
ならないように、条件を同じにする)。
つーところから始めたらどうだろう。
> そういう人間っぽい戦略をするAIはある意味夢だよねw
待て待て。まず、
・プレイヤーの個人認証をする(過去の対戦記録から
対策を練ってくる)。
・戦略に名前とキャラを与える(プレイヤー側のハンデに
ならないように、条件を同じにする)。
つーところから始めたらどうだろう。
151名前は開発中のものです。
2010/07/06(火) 00:53:05ID:Y3oGudsH 一人のAIをこのスレの住人でフルボッコにするシステムを作って、
住人の打ち筋から学習するわけですな。
でも、まず戦略上の有意で重要なパラメータが何かが分からないと思うんだ。
ベタ降り 早上がり 大物狙い
ぐらい大雑把なのは思いつくけどさ。
住人の打ち筋から学習するわけですな。
でも、まず戦略上の有意で重要なパラメータが何かが分からないと思うんだ。
ベタ降り 早上がり 大物狙い
ぐらい大雑把なのは思いつくけどさ。
152名前は開発中のものです。
2010/07/06(火) 06:23:43ID:kxHaNFod ジン・ラミーは
・半端なカードがあっても合計十点以下なら上がれる
・逆ノックというルールがある
とかでゲーム性を高めているんだが、
麻雀では
・手が揃わないと上がれない
・とにかく他の奴より早く、あるいは同時に上がらないと点にならない
の二点をめぐる攻防がキモになってくる。
そこから、
・基本は早上がり
・早すぎても安かったらおいしくないので、
どこまで待ってどこまで点数を上げるかが重要
・誰かが牌を抱えてたり底に沈んでたりするとダメだから
待ちを拡げるかどうかも配慮する必要があるし、
相手の手を読むことも考えたほうがいい(ヒッカケも
この一種)。
・役に対する好みは確率にも相性にもかかわってくるので、
どう利いてくるか今のところ不明
あたりを念頭に大雑把に組んでみりゃ
プロトとしてはよさそうに思う。
・半端なカードがあっても合計十点以下なら上がれる
・逆ノックというルールがある
とかでゲーム性を高めているんだが、
麻雀では
・手が揃わないと上がれない
・とにかく他の奴より早く、あるいは同時に上がらないと点にならない
の二点をめぐる攻防がキモになってくる。
そこから、
・基本は早上がり
・早すぎても安かったらおいしくないので、
どこまで待ってどこまで点数を上げるかが重要
・誰かが牌を抱えてたり底に沈んでたりするとダメだから
待ちを拡げるかどうかも配慮する必要があるし、
相手の手を読むことも考えたほうがいい(ヒッカケも
この一種)。
・役に対する好みは確率にも相性にもかかわってくるので、
どう利いてくるか今のところ不明
あたりを念頭に大雑把に組んでみりゃ
プロトとしてはよさそうに思う。
153名前は開発中のものです。
2010/08/11(水) 16:30:46ID:NAUDnXxM 上げる
154名前は開発中のものです。
2010/09/15(水) 23:47:50ID:aG+O5gjD おまいら最強の麻雀プログラムしてみろよ Part3
http://hibari.2ch.net/test/read.cgi/tech/1239684329/
http://hibari.2ch.net/test/read.cgi/tech/1239684329/
155名前は開発中のものです。
2010/10/17(日) 01:57:31ID:2TPZ9K5W 麻雀プログラムWiki
http://www26.atwiki.jp/mjpro/
麻雀シミュレータ MJSim
http://www26.atwiki.jp/mjpro?cmd=upload&act=open&pageid=14&file=MJsim.zip
http://www26.atwiki.jp/mjpro/
麻雀シミュレータ MJSim
http://www26.atwiki.jp/mjpro?cmd=upload&act=open&pageid=14&file=MJsim.zip
156名前は開発中のものです。
2011/01/22(土) 01:12:24ID:oi0iQAjA ここまで反応なしw
157名前は開発中のものです。
2011/02/09(水) 15:27:36ID:516SVfzt158名前は開発中のものです。
2011/06/12(日) 08:11:26.10ID:PMFpryTR >>146
>SE研修で「ジン・ラミーの上がり判定」を課題にしたら、
>けっこう高給取りのはずの中級SEが二人掛りで二日かかっても
>論理設計すらできずにギブアップした(w
それSEの能力が足りないだけじゃん
>SE研修で「ジン・ラミーの上がり判定」を課題にしたら、
>けっこう高給取りのはずの中級SEが二人掛りで二日かかっても
>論理設計すらできずにギブアップした(w
それSEの能力が足りないだけじゃん
159名前は開発中のものです。
2011/06/13(月) 02:53:05.59ID:IP0E3i88 できるだけ、自然に見えるようにイカサマする。
レベルによって1〜5個ほど島からツモり、必要な牌を1つとり、もどす。
レベルによって1〜5個ほど島からツモり、必要な牌を1つとり、もどす。
160名前は開発中のものです。
2011/06/20(月) 18:56:03.38ID:zP5I0UGQ 最も必要な牌がわかるならイカサマ無しでも強いと思う
161名前は開発中のものです。
2011/06/21(火) 13:22:13.75ID:ET4j6FRl たしかにw
162名前は開発中のものです。
2011/06/21(火) 21:29:32.36ID:YX7p+Rwp 最も必要な牌が分からなくても、必要な牌は分かるよね。
シャンテン数が上がるか否かの判定だけでも十分。
点数の期待値とか一切考えず、シャンテン数が上がればその中からランダムで決めるって操作だけでも、
>>159のイカサマをされれば十分きつい。
上がってしまえば、相手がどんなに高めを狙おうと関係ないし。
シャンテン数が上がるか否かの判定だけでも十分。
点数の期待値とか一切考えず、シャンテン数が上がればその中からランダムで決めるって操作だけでも、
>>159のイカサマをされれば十分きつい。
上がってしまえば、相手がどんなに高めを狙おうと関係ないし。
163名前は開発中のものです。
2011/07/03(日) 17:02:58.19ID:39f+tRWY そのイカサマが何の役に立つの?
164名前は開発中のものです。
2011/07/03(日) 22:04:24.89ID:qY4R3eSD んなもの知らんよ。
最も必要な牌が分かるならイカサマ無しでも強いって言ってたから、
イカサマするのに最も必要な牌が分かる必要はないと反論しただけ。
最も必要な牌が分かるならイカサマ無しでも強いって言ってたから、
イカサマするのに最も必要な牌が分かる必要はないと反論しただけ。
165名前は開発中のものです。
2011/07/05(火) 00:56:37.41ID:+NpHHO4E シャンテン数判断を組み込めるってのが十分高いハードルだからなー
イカサマいらなくなるでしょ
イカサマいらなくなるでしょ
166名前は開発中のものです。
2011/07/05(火) 23:21:47.38ID:PC/+TWgq >シャンテン数判断を組み込めるってのが十分高いハードルだからなー
お前にとってシャンテン数の判定が高いハードルなら、麻雀ロジックを考える上で何なら出来るんだよ…。
自分で作れなかったとしても、シャンテン数判定プログラムなんてググればソース付きで見つかるだろ。
お前にとってシャンテン数の判定が高いハードルなら、麻雀ロジックを考える上で何なら出来るんだよ…。
自分で作れなかったとしても、シャンテン数判定プログラムなんてググればソース付きで見つかるだろ。
167名前は開発中のものです。
2011/07/27(水) 21:47:51.55ID:gNsRmOz6 上がり判定アルゴリズムが正しく作れるなら
普通シャンテン数判定も出来るわなぁ
普通シャンテン数判定も出来るわなぁ
168名前は開発中のものです。
2011/07/28(木) 10:09:07.44ID:2bUtDyJG それは別だと思うが
169名前は開発中のものです。
2012/07/18(水) 00:41:15.42ID:gqYFb15W あ
170名前は開発中のものです。
2013/01/20(日) 15:45:30.96ID:x/ZxDQc7 い
171名前は開発中のものです。
2013/09/16(月) 10:12:11.07ID:VxCxAcyw 役判定の高速化法でこいいよ。。
これとモンテカルロ法を組み合わせたら強いと思う。
役が揃ってない13枚に対し、ランダムに牌を追加していき役が揃った時に、元の牌に得点づけする。
これを繰り返すと、役が揃いやすい(=和了型に残りのやすい)牌が求まる。
14枚の和了型を基本に、包含で大小関係をいれれば、15枚以上のとき和了型を含むかわかるだろう。
麻雀 和了判定(役の判定)アルゴリズム 連続した牌の数をインデックスにする方法
http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html
これとモンテカルロ法を組み合わせたら強いと思う。
役が揃ってない13枚に対し、ランダムに牌を追加していき役が揃った時に、元の牌に得点づけする。
これを繰り返すと、役が揃いやすい(=和了型に残りのやすい)牌が求まる。
14枚の和了型を基本に、包含で大小関係をいれれば、15枚以上のとき和了型を含むかわかるだろう。
麻雀 和了判定(役の判定)アルゴリズム 連続した牌の数をインデックスにする方法
http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html
172名前は開発中のものです。
2014/10/04(土) 09:44:54.36ID:bkEdK/cy age
173名前は開発中のものです。
2014/10/04(土) 14:12:30.47ID:csngvuvA 0.優劣判定の準備
param[][14]を用意
1.今のシャンテン数、アガリチェック
tehai[14]に対して、シャンテン数計算。
-1ならアガリ役チェックに移る。
2.打牌毎のシャンテン数チェック
ある牌を切ったtehai[13](14通り)それぞれに対して、シャンテン数計算。
基本的には1のシャンテン数から変化しない打牌が正着。
1のシャンテン数との差をparamに保存。
マイナスならシャンテン戻しになる打牌。
3.受け入れ、有効牌チェック
さらに、34通りの牌をツモった時を想定したtehai[14]それぞれに対して、シャンテン数を計算。
シャンテン数が減る牌種がいわゆる有効牌。
有効牌の種類数をparamに保存。
また、実際の数を数え上げ、paramに保存。
また、シャンテン数が-1の時(受け入れ=待ちの時)、
そのアガリ翻数(MAX)を計算し、paramに保存。
さらに、アガリ翻数*枚数を足し合わせ、paramに保存。
4.安全度
完全安全牌>ノーチャンスアンコ牌>…
それぞれ該当するなら1,該当しないなら0を入れて、paramに次々に保存。
5.総合判断
できたparam行列に対して、係数により重み付けを行う。
シャンテン数は最重要なので20倍、など。順目やリーチ者の数が増えていくと安全度の重みが増し、
危険な場面ではシャンテン数の重要度を超えるようにする。
param[][14]を用意
1.今のシャンテン数、アガリチェック
tehai[14]に対して、シャンテン数計算。
-1ならアガリ役チェックに移る。
2.打牌毎のシャンテン数チェック
ある牌を切ったtehai[13](14通り)それぞれに対して、シャンテン数計算。
基本的には1のシャンテン数から変化しない打牌が正着。
1のシャンテン数との差をparamに保存。
マイナスならシャンテン戻しになる打牌。
3.受け入れ、有効牌チェック
さらに、34通りの牌をツモった時を想定したtehai[14]それぞれに対して、シャンテン数を計算。
シャンテン数が減る牌種がいわゆる有効牌。
有効牌の種類数をparamに保存。
また、実際の数を数え上げ、paramに保存。
また、シャンテン数が-1の時(受け入れ=待ちの時)、
そのアガリ翻数(MAX)を計算し、paramに保存。
さらに、アガリ翻数*枚数を足し合わせ、paramに保存。
4.安全度
完全安全牌>ノーチャンスアンコ牌>…
それぞれ該当するなら1,該当しないなら0を入れて、paramに次々に保存。
5.総合判断
できたparam行列に対して、係数により重み付けを行う。
シャンテン数は最重要なので20倍、など。順目やリーチ者の数が増えていくと安全度の重みが増し、
危険な場面ではシャンテン数の重要度を超えるようにする。
174173
2014/10/04(土) 14:13:38.26ID:csngvuvA ポイントは、オリの局面で安全度で同点首位の2択になったような場合、
自然と手牌をぐちゃぐちゃにしない打牌が選ばれるところ。
例
2件リーチ
456mの5mと6mが完全安牌で100ポイント
受け入れポイント的に微差で6mが高得点
パラメータの調整にあたって、今後、機械学習を導入する方針。
少しずつパラメータを変えたAI同士を戦わせて、成績が良いほうを残していく方法を考案中。
何かご意見あればお願いします。
自然と手牌をぐちゃぐちゃにしない打牌が選ばれるところ。
例
2件リーチ
456mの5mと6mが完全安牌で100ポイント
受け入れポイント的に微差で6mが高得点
パラメータの調整にあたって、今後、機械学習を導入する方針。
少しずつパラメータを変えたAI同士を戦わせて、成績が良いほうを残していく方法を考案中。
何かご意見あればお願いします。
175名前は開発中のものです。
2014/10/11(土) 20:29:14.49ID:YpszWTxL 捨て牌選択時の役判定はかなり重要
特に鳴いた後
混一色一択で鳴いたのに形テン狙いのまま字牌を切りまくるクソAIとかw
あるいは手が確定できる鳴きしかやらないというのもゲーム的にはアリだけど
終盤になると有効牌の残り枚数も無視できない
もひとつ、振りテンチェックも地味に効く…見逃ししないならそれほどでもないか
特に鳴いた後
混一色一択で鳴いたのに形テン狙いのまま字牌を切りまくるクソAIとかw
あるいは手が確定できる鳴きしかやらないというのもゲーム的にはアリだけど
終盤になると有効牌の残り枚数も無視できない
もひとつ、振りテンチェックも地味に効く…見逃ししないならそれほどでもないか
176名前は開発中のものです。
2016/07/05(火) 17:36:13.32ID:k6tcQJSy177名前は開発中のものです。
2017/12/31(日) 22:44:16.98ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
R664ZOAJOL
グーグル検索⇒『来島のモノノリウエ』
R664ZOAJOL
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★2 [ニョキニョキ★]
- 人生初黒星の神童、那須川天心がリング上で土下座 [牛丼★]
- 中国人「『日本は危ないから行かないように』と言われたが、日本に来たらとても安全だった」 [お断り★]
- 石破前総理「どうすれば台湾有事にならないかを考えるべき」★2 [1ゲットロボ★]
- 毛寧(もう・ねい)報道官 「日本は実際の行動で対話への誠意を示すべき」 中国、高市首相に改めて発言撤回を要求 [ぐれ★]
- 【社会】毎月引き落とされるなんて…高齢者が理解しづらい「サブスク」 「解約できない」と不満も [シャチ★]
- 【愛国者悲報】高市早苗、ガイキチスマイルwwwwwww [856698234]
- 【号外】習近平、米大統領のトランプと首脳会談を行う!日本のの武力による台湾脅しついて共有の追及をする意思統一でおこなう [339712612]
- 【高市悲報】トランプおやびん「偉大な指導者である習近平首席、米国は中国にとっての台湾問題の重要性を理解しています」 [115996789]
- まったりおじゃる丸待機スレ🏡
- 「琉球有事は中国有事」 中国のネトウヨが拡散 これには日本のネトウヨ叩きのめされる [241672384]
- 【速報】高市「アタシぜっったい謝らないからッ!!」→中国焦る [308389511]
