おまいら最強の麻雀プログラムしてみろよ Part2at TECH
おまいら最強の麻雀プログラムしてみろよ Part2 - 暇つぶし2ch237:デフォルトの名無しさん
07/07/30 22:36:36
プログラムくみやすいようにルールまとめたよ

単純化したオリジナルルール
URLリンク(kansai2channeler.hp.infoseek.co.jp)

トンプウ荘ルール
URLリンク(mj.giganet.net)

238:349 ◆XrG.ETMFv6
07/07/30 22:38:14
>>232-233
詳しい説明ありがとうございます。

私は特に、次の点が実際と合わないと考えています。
あら氏の一人麻雀では、相手がいません。
したがって4人いる場合明らかに計算式が違います。
あら氏
期待値=自分の牌を見ただけの期待値。
4人麻雀
期待値=自分の期待値 ー 遅れた上がり順目分の他人の上がり期待値。
こらが本当の期待値です。あら氏のは一人麻雀での数値です。

いわゆる、0と3では、平均テンパイ順目が 0=11.56 3=11.76
3の方がテンパイが遅い、そして何より平均和了順目が 13.82 14.46と
0.64順ほど遅いのです。これは私にとっては大きなマイナス要員です。

コンピューター麻雀の場合、手の雰囲気が似てきます。だからこそ
こちらが上がりそうなら、他の3人もあがりそうだと考えるのが普通でしょう。
その場合の0.64順遅れは、最強を作る上でマイナスだと考えます。

AI対戦の場合、他より少しでも速く和了する事が重要だと考えているからです。
その考えからすると、和了が速い0の方がいいのかもしれません。

239:デフォルトの名無しさん
07/07/30 22:40:39
まずは、
数字19、2~8、白発中、東南西北のコーツとトイツは同一視したときに
正しい飜数を返すプログラムを作ろうぜ

これで多くは判定できるよ
なぜならば、2のコーツと3のコーツを同一視しても、
それは別物であることは枚数から明らかだからだ

240:デフォルトの名無しさん
07/07/30 22:44:42
自牌だけ見ても駄目だぞ
なぜならば、敵は3人いるからだ
自分のあがる確率より、他人のあがる確率は3倍も多い
防御は重要

241:202
07/07/30 22:48:44
その上がりの早いAIは、上記のような塔子分解で有効牌が多いものを選んでいく方法で
とりあえず形になるのですが、理想とするシャンテン数には届かないです。
(理想←手牌+ツモる予定の16牌(17牌)でのシャンテン数)
理想が高すぎるのもあるのですが平均1シャンテン位は低いです(中盤12~14巡目辺り)

242:デフォルトの名無しさん
07/07/30 22:49:39
自分のプログラム、ひたすら上がり判定と先読みを枝切り高速化しまくって
3シャンテンくらいから期待値計算で考える子にしてみたんだけど、
2シャンテンから考える子は正常に動いたのに、3シャンテンまでがんばらせてみたら
なんか動かなくなっちゃった。これだからバグはいくないorz

243:デフォルトの名無しさん
07/07/31 00:22:30
>>235=>>237=>>239=>>240の無視られっぷりにワラた

244:デフォルトの名無しさん
07/07/31 00:34:37
>>243
だってもう飽きたんだもんww

245:デフォルトの名無しさん
07/07/31 00:39:08
>>242
2手先まで読めてて、さらに1シャンテン下げるのは流石にムリでは・・・
鳴いてもなんでもいいから形だけシャンテン下げるだけならなんとか。

246:デフォルトの名無しさん
07/07/31 00:56:18
>>235=>>237=>>239=>>240

犬のフンは無視するのが一番

247:デフォルトの名無しさん
07/07/31 01:06:32
>>245
あれ?自分なんか間違えてるかな?
2シャンテンから考える子は大体10ms以内とかだった気がするんだけど

248:245
07/07/31 01:15:47
アンカーミスった・・・スマソ
>>241

249:202
07/07/31 01:26:29
>>241ん?俺かw
いや、これは一手先読みだけですね。1牌切った状態でのシャンテン数が良くなる
候補の牌枚数をカウントして(有効牌数)、枚数が一番優秀な時の牌を切っていくだけ。
理想のシャンテン数というか究極が、引く予定の牌を含めた30枚でのシャンテン数として考えてます。
当たり前ですが究極には近づけませんw(エスパー能力があれば・・w)
有効牌数がそのまま塔子構成にも関わるので、そっちの評価は入れてないですね

250:デフォルトの名無しさん
07/07/31 01:51:17
おぉ、そっちかw

251:デフォルトの名無しさん
07/07/31 02:08:04
役牌って英語でなんて言うのかな?

252:202
07/07/31 02:19:04
ちなみに、>>249はそのまま積めません、遅すぎて。(面子候補で爆発します)

253:デフォルトの名無しさん
07/08/01 13:59:26
URLリンク(www.excite.co.jp)
役→Post
牌→Tile
役牌→Yacpai

ううむ・・

254:デフォルトの名無しさん
07/08/01 14:06:49
数牌のときはスートとシーケンスでいいと思うよ。
あと、役牌よりは字牌だろうね。

255:デフォルトの名無しさん
07/08/01 18:40:17
自分で分からない言葉を使うよりは、ローマ字表記にした方がマシな場合が
多々あります。辞書を引きながら決めるなら↑の表記にした方が楽です。

256:デフォルトの名無しさん
07/08/01 18:52:10
自分だけならな。
人が書いたソースでTaitoruとか使ってたら、そいつのコードは1行たりとも信用しない。

257:255
07/08/01 19:22:04
上の役牌なら(翻牌?字牌?)ならYakuHaiでも良いとは思うが>>253を使って
PostTileなんて変にやられると逆に可読性が落ちそう。命名規則だけは保って欲しいな
>>256
それは流石に同意w


258:デフォルトの名無しさん
07/08/01 19:27:34
>>256
奴の事か

259:デフォルトの名無しさん
07/08/01 19:46:51
大体ローマ字表記で統一してるなぁ・・・
なんか幼稚っぽく見えるかもだがorz

260:デフォルトの名無しさん
07/08/01 20:15:43
サンレンコが一般的な役じゃないことが非常に美しくないということについ最近気づいた

261:255
07/08/01 20:17:27
半端英語とローマ字混ざるのが一番辛くないか?

262:デフォルトの名無しさん
07/08/01 20:22:30
私の場合変数名は 変数型1字+ローマ字に統一してる

あがりの際の翻数を入れるint型変数なら IAgariHon

263:デフォルトの名無しさん
07/08/01 20:29:26
自分の場合ある程度の長さの変数名にして、後々気になったら置換してしまうw
この時にある程度の整合性を考える。ソースは上げるまでは自分だけのもんだしw

264:デフォルトの名無しさん
07/08/01 20:36:11
スレリンク(tech板)

265:デフォルトの名無しさん
07/08/01 20:35:53
Hon・・・?

266:デフォルトの名無しさん
07/08/01 20:42:17
>>265
今気づいた正しくするなら IAgariHan だな
翻を変換するときに「はん」ではなく「ほん」で変換してるから
間違えてしまったみたい

267:デフォルトの名無しさん
07/08/01 20:49:32
>>264らじゃw
今実際に組んでる人どれ位いるのかな?
自分は今忙しくて凍結中 orz。ネタだけが増えていく・・・

268:デフォルトの名無しさん
07/08/01 20:51:07
一応組んでるけどあんまり強いのできないかも

269:デフォルトの名無しさん
07/08/01 21:37:27
調べてみたところ、「役牌」は英語で value honros と表記するようです。
(ちなみに、 honors は「字牌」のことです)

あと、プログラムを作成する上でわからない用語が、「捨て牌」です。
Table が真っ先に浮かんだのですが、なんかしっくりこないし・・・

270:デフォルトの名無しさん
07/08/01 21:51:01
たしか国によってルールが違うし、専門用語だし無理に訳す必要はないと思うんだけど、
ローマ字はなんか抵抗があるんだよなあ

271:デフォルトの名無しさん
07/08/01 21:54:24
もうある程度特別なケースは無視しても問題ない気しかしなくなってきた

272:349 ◆XrG.ETMFv6
07/08/01 23:06:04
今ごろが帰宅時間だ・・・orz
ゆっくり作ってるが何時出来る事か、完成したら面白い話が出来るかもしれない。
誰かAIをUPしませんか? 78さんAIをUPしませんか?
過去のAIならUP出来るけど、何処まで何を修正していたか、全然覚えて無い。
最終ビルドしたDLLならUP可能。

273:デフォルトの名無しさん
07/08/01 23:28:04
お疲れ様です。
個人的に燃料投下(DLLUP)して欲しいです。

274:349 ◆XrG.ETMFv6
07/08/01 23:58:21
では、明日にでもUPしよう。
>>72さん >>211の構造間違えてます。調べて最UPしまつ、申し訳ない。数年前の話なので。
ネタ投下してみる。
構造の分析について
正確な点数計算は総ての手牌構造を出す必要が有る。
ちょっとだけめんどう。
テンパイして無い手をターツまで含めた手牌構造の総てのパターンで出そうと試みる。
とても大変。
手が染まっている手では、爆発的にパターンが増え、同じ構造を何度も検出する。
私のAIでは、考えられる総ての切り口で構造を取り出しているため、同じ構造を
何度も検出していまう。これの重複を検出するため、構造のキーデータを計算し
ソートして有効な構造のみ取り出している。
>>209に有る int getKey(int * st); // キーの作成   これがそう
一種の枝狩りかな。
また、まじめにプログラムでターツを取り出すと、多分とても大変。
したがって、パターンデーターを持って、高速化している。
高速のために極一部の構造までは検出できない欠点ももっている。
事実上問題はないと判断したため、省いた。

私のAIの実装内容その1 でした。

275:349 ◆XrG.ETMFv6
07/08/02 00:05:13
追記
・パターンデーターでの分析は、とても高速だった。(参考までに)
その実装方法は説明せず。皆さんに疑問を投げつけて、もっといい方法が出るのを期待。
実は欠点があってね、あの時はそれしかなかった。

276:273
07/08/02 00:24:19
パターンデータの実証は自分もしましたけど、なかなか有効でした
ただ、塔子などを考えるとまだまだ隙の多い気がしますね。自分のものは

277:349 ◆XrG.ETMFv6
07/08/02 23:55:36
>>273
パターンデーターはいい方法論だと思うね、もっともっと良くなると思う。
標準化するほど一般化するかも。まあ、実装方法はいろいろ出てきていいと思う。
その中で、色々なアイデアが出たほうがいい。

ネタ投下その2
高速化の一つとして実装したのが。前分析データーの再利用。
私の分析ツリーは総てデーターでツーリー構造のまま残っている。
したがって、次のツモの先の分析データーが存在している。
それを再利用している。毎回既に広がったツリーの一手先を読むだけで
数手先を詠む事と等しい。しかし、多少スピードUP程度かな。

そうそう
明らかに関係しない牌をツモった場合は、前分析ツリーで簡単に意味が
無いと判断できるので、ツモ捨てしている。この方が高速化にはとても効いている。
単発の字牌とか、手牌より意味も無く離れたパイとかね。
手の重みでその辺も固まってくるし、前の分析データが利用可能なので。
この枝狩りは大きいかも。

278:349 ◆XrG.ETMFv6
07/08/02 23:59:52
今話しているのは過去のAIの話で、方法論のひとつにすぎません。
もちろん、もっといい方法は多々あるでしょう。無ければ新しいAIを作ろうとは思わないし。
ネタになるか参考にだしているにすぎない。ウザかったら言って、辞めるから。

279:349 ◆XrG.ETMFv6
07/08/03 00:13:27
追記。
物凄いメモリーの確保と廃棄が行われているのが理解できると思う。
オブジェクトの生成と廃棄では遅いと思い。高速メモリー管理ツール
を最初は使用していたが、それでも遅いかと思い、完全にそれ専用の
メモリー管理を実装した。これ以上の速さは無理なほど速くなったと思う。
メモリーの廃棄は1ステップ、確保は最短で確保。
どんなに良い物でも、専用にガリガリにチュンナップしたものが早いのは
当たり前と言う事で。
この辺は正直、趣味に走ってます、あははははは・・・・暇人だ・・・・
データーツリー構造の管理も趣味だよな~・・・・orz
趣味が理解できる人だけ読んでちょ。

280:349 ◆XrG.ETMFv6
07/08/03 00:29:10
注意!
しかしだ、そんなに強くないAIであった(泣き
(実はもっと色々組み込んであるんだよ、戦術の話一言も触れて無いし・・・・・・orz)
私の落ち込みは、想像できるだろうか・・・・・・・・・
だって、結果が最速が強そうだったから。今度は最速でGOだ。

281:349 ◆XrG.ETMFv6
07/08/03 00:30:48
×戦術
○戦略

282:デフォルトの名無しさん
07/08/03 00:33:12
ゴタクはいらんから早くあげろ

283:349 ◆XrG.ETMFv6
07/08/03 00:40:13
正直、こんなに話したAIをUPするのは恥ずかしい。失敗作としてみてちょ

URLリンク(uproda11.2ch-library.com)
PW=MJSimAI

284:349 ◆XrG.ETMFv6
07/08/03 00:41:44
>>282
うざかったか、じゃもう解説は止める。

285:デフォルトの名無しさん
07/08/03 00:43:10
ウザイ
手短に3行でまとめろ

286:デフォルトの名無しさん
07/08/03 00:51:55
他にネタもなく何か有益な事書くわけでもないのに止めるなよ

287:デフォルトの名無しさん
07/08/03 00:53:40
>>284
いや、自分は面白いと思って読んでる。
だらだらでも何でもいいから好きなように書いてくれ。

288:273=286
07/08/03 00:59:52
で、落とせません orz
それぞれの牌種は独立なので牌種ごとに捨て候補の牌と評価値を保持(上位2つずつ位)させて
引いた牌の種類の所だけ更新する。
と言う方法も浮かんだが、手役を絡むと面倒かも。
捨て牌を選ぶ時に有効牌のリストを用意させてしまうと言う手もあるかな?(それ以外は計算せずに、
もしくは切り上げた計算をして、ツモ切りとか。←自分の思考に近い方法)

289:デフォルトの名無しさん
07/08/03 03:04:25
麻雀英語に関するいいHPを見つけた。

URLリンク(reachmahjong.com)

>>349
落とせません><

290:78 ◆7rnrw5KbzE
07/08/03 03:33:28
>>349
2chのような平均的に「できの悪い」人間が多く集まる空間では
著しくできの良い人間を貶めようと働くことがしばしばあります。
>>282>>285のような者がそうです。彼らは「できの良さ」を披露されると
怨恨感情を発火させて反発し、呪詛を垂らします。
このような連中の発言を真に受けることは愚行に他なりません。
いったい氏の書き込みと>>282のウザいとの感情に、なんの関係がありましょう。

>>280で語ってきたことは、我々にとって役に立つ・おもしろいものだと
判断されたからこそ書き込んでくださったのでしょう。
その判断は正しい。この水準での具体的なコーディング上の工夫を
詳細に説明した記載はいったいどこにあるというのでしょうか。
かのまったり麻雀のブログですら無かったことです。

氏は麻雀AIの分野について現時点で世界一「ためになる」レスをしてくれていた。
これは自覚されてもよいことかと。

そしてAIをDLしそこねた・・・再UPを!(泣)

291:デフォルトの名無しさん
07/08/03 03:58:10
全く同感だ

292:デフォルトの名無しさん
07/08/03 05:35:49
ためにはなるかもしれんが、
2chで自分語りする奴ほどうざいのもいないぞ。

293:78 ◆7rnrw5KbzE
07/08/03 06:13:49
>>292
確かに、君のような無能な人間が際限なく自分語りを繰り返してきたのが
君にとっての2ch像なら、この類ほどうざいものはないだろうね。

ところで、君が抱く個人的心情(=2chで自分語りする奴はうざい)を吐露する
ことそれ自体が、「無能の自分語り」に帰着してしまっていることに自覚的かな?
君は「自分語りはうざい」という見地から見てうざいし、ためにならない発言をする
奴はうざいという見地からも輪をかけてうざいし、識者に対する怨恨が垣間見られて
醜くうざいね。

349氏のような優秀な人材が、君のような無能の心情や能力水準に合わせる必要が
どこにあるというのだね?むしろ、2chや君にしてはいささかレベルが高くなった
このスレにおいて、『うざい』と形容されがちなのは君のような立場だということを自覚したまえ。

294:特に「自覚したまえ」の辺り
07/08/03 07:37:24
どうでもいいが、確かにうざい。

295:デフォルトの名無しさん
07/08/03 08:43:18
78がこんなに痛い子だとは思いませんでした。

349の書き込みは歓迎だが、
>>277-280の連投に関しては、どうかと思う。
これからは少し熟考して簡潔に纏めてみては?

296:251
07/08/03 09:15:51
なんだこの流れ( ^ω^)・・・

297:デフォルトの名無しさん
07/08/03 09:24:44
349はえらいけど78はバカだ

298:デフォルトの名無しさん
07/08/03 10:51:10
レベルの低い人物→>>78>>349 より低いアホ→他大勢 

299:デフォルトの名無しさん
07/08/03 12:42:58
>>295
どうかと思う、だけでは難癖のように取られてしまうかも
内容のある長文もあれば、内容のないものもあるわけで
内容がないと思うなら、どこを、なぜ纏めたほうがいいかも添えてあげなよ

どうかと思うから、ではなく、こう思うから、のほうが意図が伝わるかと

300:デフォルトの名無しさん
07/08/03 12:51:02
>>298
目糞鼻糞

301:デフォルトの名無しさん
07/08/03 12:54:34
平凡な人間はできる人間を貶めて、自分らと平等化しておかないと悔しくてしょうがないのだ

302:デフォルトの名無しさん
07/08/03 14:06:14
「議論しましょうよ~」by12人の優しい日本人

303:デフォルトの名無しさん
07/08/03 14:59:21
ジンジャエール!

304:デフォルトの名無しさん
07/08/03 15:02:37
>>301
自己紹介ですか?

305:349 ◆XrG.ETMFv6
07/08/03 15:36:13
正直、こんなに話したAIをUPするのは恥ずかしい。失敗作としてみてちょ

URLリンク(uproda11.2ch-library.com)
PW=MJSimAI

MJSimの実行環境及びサンプルAIを再度UP

URLリンク(uproda11.2ch-library.com)
PW=MJSimEXE

306:349 ◆XrG.ETMFv6
07/08/03 15:49:42
昔の話ですが、MJSim作者宛に。
 私はMJSim作者さんに恩義が有ります。2chはそんなに見ないのですが。
たまたま見た時、麻雀ホストを作る話が出ていて、気軽な気持ちで参加したわけです。
当時、私からの話は曖昧な事が多く、もっと具体的な話を期待されているのが分かっていましたが、
作ってる状態の時はなかなか出来ませんでした。
 いや、理解はしていたけど、なかなか出来ませんでした。MJSimの出来は素晴らしく
何らかの形で恩をお返しで着ればと思っていました。
いま昔できなかった事を、解説と言う形で公開して、お返しが少しでもできれば嬉しいです。
公開私信失礼しました。

307:349 ◆XrG.ETMFv6
07/08/03 15:54:07
上のAIUP先ミスです。

URLリンク(uproda11.2ch-library.com)

308:349 ◆XrG.ETMFv6
07/08/03 16:26:40
色々意見はあるようですが継続しま。

ネタその3  評価関数について。
>>209
>bool tehaiCompar(CTatsu *pTD); // 手牌の優劣を比較、自分が低い:true, 以外:false
>bool tehaiComparTenpai(CTatsu *pTD); // テンパイ時の手牌の優劣を比較
 評価関数は2つ持っている。それはテンパイになるまでの評価関数と
テンパイになった時の評価関数である。簡単に言うと、テンパイになった時
何を捨てれば一番いいかとそれ以前では違うと考えたからです。
麻雀をやっていれば分かりますが、テンパイの時何を捨てればいいのか考えるでしょう。
それ以前と明らかに性格が違うと考えたからです。

テンパイ時の評価式は
1.役が多い方を選ぶ
2.待ちが多い方を選ぶ
3.ポイントが多い方を選ぶ

上の順番の優先順位です。今思うと1,2逆の方が良かったかも・・・

テンパイ以前の評価式は、ずいぶん悩みました。分析データーが9種類も評価してた、
何をどのような優先順位でやるのかを。今見ると役が優先ぽいですね~
これじゃテンパイ率が低くなってしまう、残念。
 スピード有利の確信は徐々に育っていきましたから。
それに、戦略追加作業がけっこう大変で、そちらに頭が切り替わってたし。

今思うと、平均上がり点はそんなに高くなかったような・・・・・

309:302
07/08/03 22:26:49
>>303
知ってるのかw

310:303ではないが
07/08/03 22:48:12
>>309
ピザの出前キボンヌ

311:349 ◆XrG.ETMFv6
07/08/04 00:02:07
ネタその4

戦略について、今までの話が戦術とすると、これからの話が戦略になります。
戦略として、分析していた物
1.見える牌から、見えない牌の算出。
 (これは、戦術時点で計算していた、待ち有効牌の算出に)
2.相手の河や場の状況から、他家おきの牌安全度計算。
 (当時のAIはテンパイ即リーですから、他者のリーチがあって、
自分の戦略モードに従い、降りや回しで使用していた。)
場の分析
1.局目
2.親、子、場風自風
3.自分の順位
4.各順位との点差
5.順目
6.各家のリーチ一発の時
7.各家のテンパイ(リーチ)状況
8.もっと有ったような気もするけど忘れました。(見るの大変だし)
等のデータから、戦略を決定しそれにしたがって動作する。
AIの戦略動作モードの公開↓。
NON = 0, // 全つっぱ
OGO = 1, // 全つっぱ
OM1 = 2, // 面子以外から危険度最小の降り牌を探す。TYPE1
OM2 = 3, // 面子以外から危険度最小の降り牌を探す。TYPE2
OM3 = 4, // 面子以外から危険度最小の降り牌を探す。TYPE3
OMB = 5, // ターツからAN_Bランク以上の降り牌を探す、なければ全牌検索で最安全牌を切る
OMA = 6, // ターツからAN_Aランク以上の降り牌を探す、なければ全牌検索で最安全牌を切る
OS = 7, // ターツからAN_Sランク以上の降り牌を探す、なければ全牌検索で最安全牌を切る
ORA = 8, // べた降り
ORB = 9, // 安牌を作成してべた降り
戦略については、試作的な意味合いが強く、研究や最適化までには達していなかった。
以前書いたように途中で終わったし。

312:349 ◆XrG.ETMFv6
07/08/04 00:09:37
以上で終りかな、前レスに枝狩りの疑問が上がっていたので。
枝狩りについて多少詳しく話しています。
もし何か疑問が有ったら、話せる範囲で話しますので、お聞きください。

313:349 ◆XrG.ETMFv6
07/08/04 00:13:01
補足
>>311の途中で終わっていたのは研究や最適化です。
目的の機能の実装は全部終わっていました。

314:デフォルトの名無しさん
07/08/05 23:50:04
※麻雀ロジック研究会※
スレリンク(gamedev板)

315:デフォルトの名無しさん
07/08/07 23:20:07
URLリンク(www.nicovideo.jp)

316:デフォルトの名無しさん
07/08/11 12:57:21
過疎化すげw

317:デフォルトの名無しさん
07/08/11 15:14:26
元の姿に戻っただけ。ちょっと前が異常。読み飛ばしてたのでだれか三行でまとめて。

318:デフォルトの名無しさん
07/08/11 15:18:21
ぐだぐだ書き込んでないで
手を
動かせ

319:デフォルトの名無しさん
07/08/11 17:02:43
>>317
リバーシ1

320:デフォルトの名無しさん
07/08/13 22:35:22
ほんと、見事な過疎っぷりだな

皆言いたいことだけ言って、まともなソース
も挙げずに逃げたか?

321:デフォルトの名無しさん
07/08/13 22:50:02
まともかどうかはともかく、ソースはいくつか挙がってる
検証する気は無い

322:デフォルトの名無しさん
07/08/13 22:53:18
  
   「 ま と も な 」

      ソースは一つも上がっていない

323:デフォルトの名無しさん
07/08/13 23:20:52
349氏のあげたソースはまともだと思うけどな

324:デフォルトの名無しさん
07/08/15 10:24:30
みんな帰省しているのかな

325:デフォルトの名無しさん
07/08/17 13:58:47
他のことに忙しいので放置中

326:デフォルトの名無しさん
07/08/17 14:25:54
ぶっちゃけるとやる気は無いけど参加者のふりしてた
もう飽きた

327:デフォルトの名無しさん
07/08/28 01:09:30
過疎がスゴスwwww

328:デフォルトの名無しさん
07/08/28 15:19:24
なんなんだろう
この熱しやすさと冷めやすさは

329:デフォルトの名無しさん
07/08/28 19:22:20
IDがないから、実質何人が書いてたかサパーリ。
結局、前スレの途中から、ここまでで、何か進んだのかな?
誰か3行でまとめてくれ。

330:デフォルトの名無しさん
07/08/28 23:34:54




331:デフォルトの名無しさん
07/08/29 18:47:37
まず俺が麻雀弱いから無理
母親にも勝てない

332:デフォルトの名無しさん
07/08/29 22:08:34
このスレに関係なく麻雀AI組んでるけど…

テンパイしてくれませんorz
ごく稀にテンパイする程度なのでまだまだ要改良

333:デフォルトの名無しさん
07/08/30 17:41:41
そもそも麻雀のアルゴリズムなんて難しくない。
深さ優先探索が理解できるなら、一人麻雀で20%の和了率を超えるのなんて簡単。
この程度ができないんじゃあプログラマとは呼べん。
誰かがココにソースをUPしてくれるのを待ってないで自分で作れよ。

334:デフォルトの名無しさん
07/08/30 23:58:33
>>333
証拠を見せろよ

335:デフォルトの名無しさん
07/08/31 00:06:41
全員互角なら25%、で、全部食いタン狙いなら、20%は取れるんでない?
トップを取れるかどうかはともかくとして。

336:デフォルトの名無しさん
07/08/31 07:38:44
>>333にプログラマと呼ばれたい人なんているの?

337:デフォルトの名無しさん
07/08/31 08:47:09
とりあえず>>333はスレタイ読んでくればいいんじゃないかな

338:デフォルトの名無しさん
07/09/03 01:19:55
問題は一人麻雀でって事さ

339:相互リンク
07/09/30 18:33:30

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

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

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

340:デフォルトの名無しさん
07/10/02 00:49:33
過疎化ワロスwwww

341:デフォルトの名無しさん
07/10/02 00:52:51
麻雀は受け技が極められた競技ゆえ

342:デフォルトの名無しさん
07/11/06 08:37:13
俺は一つもまともにソフトと言える物は作ったことなく
だからもちろん深さ優先探索なんてさっぱり知らないけど
麻雀のAIってどんなんなん?
他家テンパイでまもりに入ってる状態なら、カベ、スジ、リーチ牌付近、ドラ筋付近
等を把握しなきゃなんないんだろ?
ゲーム開始時点なら、まぁ無難に、他風牌、浮いてる端牌から切ってそんで・・・
って、言っても他風牌と端牌が大けりゃチャンタもあるしジュンチャンあるし
三色見れそうなら浮いててもおいとく事もあるし・・・・・・
こういう模索をプログラム化するのがアルゴリズムを作るって事なんだろうな~
挑戦してみようかな・・・
とりあえずAIがメンタンピンのみを模索するアルゴリズム
めんどくせーな


343:デフォルトの名無しさん
07/11/09 03:58:16
テンパイチェックからやれや

344:デフォルトの名無しさん
07/11/09 22:59:20
他家がいつ聴牌したかなんてわかるの?
人間が切るのが遅くなったら聴牌疑うとか
自莫切りばっかり繰り返してたら聴牌疑うとか
あとwebカメラつけて目線追うとかしなくて大丈夫?

345:デフォルトの名無しさん
07/11/09 23:05:24
麻雀勉強してくれば

346:デフォルトの名無しさん
07/11/10 20:03:04
>>344
牌効率極めてから言えや

347:デフォルトの名無しさん
07/12/06 19:09:05
個人的メモ

最強麻雀プログラムに必要なレシピ
・線形計画法および動的計画法の知識
・集合、郡、環の知識
・統計確立

348:デフォルトの名無しさん
07/12/07 22:41:34
そんなのいらねーよwww
大きいところから入りすぎるから先に進まないwwww

349:デフォルトの名無しさん
07/12/16 01:58:00
群の字が違うしな

350:デフォルトの名無しさん
07/12/16 02:06:10
確率も違うし
>>347が完成させる雰囲気ゼロ

351:デフォルトの名無しさん
07/12/16 16:53:21
けっきょく運の強い香具師には勝てない


352:デフォルトの名無しさん
07/12/24 01:03:50
URLリンク(www.kohgakusha.co.jp)

353:デフォルトの名無しさん
07/12/28 13:48:06
買ってみたいがこれ系の将棋の本が糞だったからなー

354:デフォルトの名無しさん
07/12/30 21:40:15
買わなくてもWebにAPIが公開されてる

355:デフォルトの名無しさん
08/01/02 15:53:56
API使うようなやつは買うべきじゃないか?解説書として。

356:デフォルトの名無しさん
08/01/02 18:09:17
つーかこれ「まうじゃん for Java」の人で収録されてるのもそれそのものらしいじゃん。
ならインターフェースのレフェレンスだけ欲しい人はいらんだろ。

URLリンク(members.jcom.home.ne.jp)

357:デフォルトの名無しさん
08/01/03 03:21:28
カードゲームでのアルゴリズムとかでいいのないかな
とりあえずルールが比較的少ない 「単細胞遊戯 マイクロ王!」
とかあたりを対象にしたAPIがあるとうれしい

358:デフォルトの名無しさん
08/01/03 14:32:49
いろいろAI作っている人はいるけど将棋や囲碁みたいに同じ土俵で勝負しないのは自信がないからかね
URLリンク(kmo2.cocolog-nifty.com)
URLリンク(doranizm.hp.infoseek.co.jp)
URLリンク(kmkz.jp)

359:デフォルトの名無しさん
08/01/07 21:32:48
個人的な感想だが,方向性が違う様な気がする
将棋や囲碁は神の領域(最善手)を目指しているが
麻雀の場合は実際の人間の真似をしようとしている感じ

360:デフォルトの名無しさん
08/01/07 22:02:09
同じ土俵って?

361:デフォルトの名無しさん
08/01/07 23:08:46
>>359
麻雀の場合、神は人に勝てないからな

362:デフォルトの名無しさん
08/01/07 23:24:42
それ神じゃないよ

363:デフォルトの名無しさん
08/01/08 06:17:03
神はサイコロを振らない。

364:デフォルトの名無しさん
08/01/08 16:17:05
>>358
完全情報ゲームとそうでないものを同列に扱ってどうする

365:デフォルトの名無しさん
08/01/08 20:09:50
でも最近の囲碁ソフトはモンテカルロ法の確率的なアプローチで成功してる
バックギャモンやポーカーなんかでは以前から使われてるそうだから
同列に扱ってもいいかも

366:デフォルトの名無しさん
08/01/09 01:46:53
将棋なら世界コンピュータ将棋選手権とかやってるじゃん
麻雀はしてない

そればかりかAI同士で勝負できないように作っておきながら自分のが最強と主張してる

367:デフォルトの名無しさん
08/01/09 08:11:39
共通仕様が欲しいよね

368:デフォルトの名無しさん
08/01/09 08:23:08
最強とかいいからヴィジュアルに力を入れてください。
咲マージャンマダー?

369:デフォルトの名無しさん
08/01/09 22:18:38
>>368
ロンよりショーコ
PⅡでいいだろ

370:デフォルトの名無しさん
08/01/10 21:42:09
俺、今凄くいいこと考えついた!!

脱衣マージャンを全自動化すれば良くね!?

つまり、ユーザーインターフェース作らなくて、
APIだけしか公開しないの
そーすれば、最強のプログラム麻雀を作らないと
女の子を脱がせられない

これよくね?wwwww

371:デフォルトの名無しさん
08/01/10 21:57:09
そう思うんなら作れよ
それとも口だけ?

372:デフォルトの名無しさん
08/01/10 21:58:19
>>371
プログラムできても
萌え絵が描けないwwwww

書いてくれるなら作ってもいいよwww

373:デフォルトの名無しさん
08/01/10 21:59:50
いやそこははいはいワロスワロスだろ

374:デフォルトの名無しさん
08/01/10 22:01:26
スマン
ローカルルールは知らないwww

プログラム板ってここしか見てないからなwwww

375:デフォルトの名無しさん
08/01/11 09:21:26
女の子の画像も自分で作らせれば良くね?

376:デフォルトの名無しさん
08/01/12 00:48:46
そんな面倒なことするくらいならリソース抽出

377:デフォルトの名無しさん
08/01/12 00:52:21
女の子は全部LINE命令で描きます

378:デフォルトの名無しさん
08/01/12 00:55:38
萌え絵は当然暗号化

379:デフォルトの名無しさん
08/01/12 01:05:24
いいだろう ならば猫飯

380:デフォルトの名無しさん
08/01/12 01:08:16
>>379
そっちに力いれずに
普通にプログラム作れよwww

381:デフォルトの名無しさん
08/01/12 20:03:06

 ワッフル ワッフル


382:デフォルトの名無しさん
08/01/13 10:04:09
東風荘/ハンゲー のインターフェース作ってるが、
とつげき東北のDLL使用条件に、「麻雀ゲームの重要な技術に
かかわる機能を持つソフトウェアに利用することはできません」
とある。
この文って、とつげき東北がDLLの利用条件としてあるだけで、
東風荘のルールとしては無いですよね?


383:デフォルトの名無しさん
08/01/13 21:03:41
東風は特にないと思う
ハンゲは禁止

384:デフォルトの名無しさん
08/01/19 15:55:30
素材作るのクソめんどい

385:デフォルトの名無しさん
08/02/08 17:41:09
このスレっていつが最盛期なの?

386:デフォルトの名無しさん
08/02/26 08:47:09
 ワッフル ワッフル

387:デフォルトの名無しさん
08/03/02 18:46:09
スーパーリアル麻雀のAIが最凶だろ

388:デフォルトの名無しさん
08/03/16 11:22:59
違う

389:デフォルトの名無しさん
08/03/23 13:06:03
あげ

390:デフォルトの名無しさん
08/04/08 21:03:15
まうじゃんのAI欲しいなと思ったが過疎化と言うかもうスレ終わってるのな
条件付けしたりとかで気楽にAI組める”プログラム”無いのかな、と思ったら無いのな
天鳳とか対人のが充実してるから不要なのかな、そうだよな
公式で紹介してるようなサンプルAIじゃ物足りないなぁ・・・orz

391:デフォルトの名無しさん
08/04/08 21:03:36
上げるの忘れた、意味無いか

392:デフォルトの名無しさん
08/04/08 23:18:06
共通AI作ってみんなで対戦してみたい

393:デフォルトの名無しさん
08/04/09 22:47:19
\(^o^)/オワタ

394:デフォルトの名無しさん
08/04/09 23:21:18
じゃんがりあんのOPが最強

395:デフォルトの名無しさん
08/04/10 23:51:28
囲碁のMC法使って麻雀ソフト作れないかな?

396:デフォルトの名無しさん
08/04/11 00:35:39
MC法って何?

397:デフォルトの名無しさん
08/04/11 00:51:55
モンテカルロ
確定情報がないのにそこからの試行をどういう条件で行うかを考えなきゃいかんな。
やっぱり無理っぽいと思うな。

398:デフォルトの名無しさん
08/04/14 12:29:48
これから来る牌の確率分布は分かってる
どういう手牌でどう打つかというアルゴリズム(モデル)は何にせよ必要
このモデルに(不完全な)確定的なヒューリスティクスを使うより
良さそうな打ち方(複数)に適当に確率割り当てるだけにして
後はランダムシミュレーションで最終的な期待値が最大になる手を
選ぶ方が良いかも知れない
ゲームの長さは100のオーダーだから9路の囲碁と大差ないし

399:デフォルトの名無しさん
08/04/14 12:38:26
川から相手が所持してるであろう牌姿を読むモデルが難しいんじゃ。

400:デフォルトの名無しさん
08/04/14 22:59:41
相手の牌もMCで

401:398
08/04/15 06:42:34
>>399
自分用のをそのまま使う

402:kmo2
08/04/19 15:23:17
モンテカルロは、どの程度、前方枝狩りするかによりますね。
全く枝狩りをしないと結局天和と同じ程度の確率でしか上がれないから、
時間がかかってしまってゲームとしてはほとんど意味をなさないです。
かといって思いっきり枝狩りしてしまうと、
あらさんの一人麻雀練習機とか私が作った奴とほぼ同じで
単純に遅いだけになってしまう。

囲碁で使っているUCTを使って、UCB1に新たにノード追加する一手目の部分は
全幅探索で以降枝狩り強化っててはありそうです。
やってみたいですが、それでも、ゲームに組み込めるほどの実用に耐える速度は出ないでしょうね。


403:kmo2
08/04/19 15:31:04
蛇足気味ですが補足。

モンテカルロ囲碁がうまくいくけど
モンテカルロ麻雀がうまくいかないのは、
適当に打っていてもゲームが終わるかどうかが大きな要素です。

麻雀は混乱から秩序を作り出すゲームなのです。
囲碁みたいに適当に打っていても盤面が埋れば勝ち負けが決まるゲームとは違います。

なのでかなり強度に前方枝狩りをしてやらねばならないのですが、
そこまで強く枝狩りするくらいなら、
モンテカルロなんか使わずに統計データから確率計算したほうが
計算量が少なくて実用的です。


404:デフォルトの名無しさん
08/04/19 15:33:35
いわゆる「決め打ち」のアルゴリズムなら効果を発揮するかも。
「決め打ち」が格好いい漫画といえば、

405:デフォルトの名無しさん
08/04/19 15:39:20
ノーマーク爆牌党

406:デフォルトの名無しさん
08/04/19 15:46:17
>>403
ランダム打ちはやめた方が良い。 
ランダム牌杯でやった方が良い。
たとえば、残り牌からランダムで20枚の牌列を生成して、最も速い手数であがれる捨て牌をカウントしていく。

407:デフォルトの名無しさん
08/04/19 15:48:35
どの捨て牌があがりやすいか調べるのにモンテカルロを使うのが最善だろうという事。上がり得点を考慮するとなお良い。

408:kmo2
08/04/19 15:50:18
けれど、
打牌選択についてはMCがあまり実用的でないとは思いますが、
私は相手のリーチ時のアタリ牌読み、
鳴き仕掛けの点数の高さや役の読みには使えるかもしれません。
やり方はとつげき東北さんが山読みテストをしたときのアルゴリズムと
同様になるでしょう、

問題は人間はある程度意思を持って役を狙ってくるので、
染め手など人間プレイヤーなら注意する相手の挙動を認識しにくいこと。

私はここら辺は、スパムメールフィルタのアルゴリズムに使われる、
ベイジアンフィルタと似たようなやり方で対処しています。

捨てパイの特徴的なパターンを洗い出し、それを単語に見立て、
スパムメールか否かを判断するのと同様に、
相手の手牌が危険かどうか判断しています。

409:デフォルトの名無しさん
08/04/19 15:52:47
>>408
牌勢を読むのか。面白い試みだなぁ。

410:デフォルトの名無しさん
08/04/19 15:56:22
>>408
相手の手を読むのは、効果低いと思うよ。
鈍くなるし、相手が変則的な打ち手かどうかは、
経験的にはわかっても一局程度では不明だろうし。

411:kmo2
08/04/19 16:04:27
>相手の手を読むのは、効果低いと思うよ。

思うとかではなくて実際やってみれば、
どんなときに効果があって、
どんなときの効果がないのかが良くわかります。

鳴き仕掛けについては結構使えますよ。

412:デフォルトの名無しさん
08/04/19 16:12:40
>>411
相手がテンパイかどうかすら捨て牌から認識することは困難と思う。
ややランダムになるかもしれないが。
リーチ後や、単騎待ちとか危険牌が確実にある場合のみ判定した方が
総合的には強くなると思う。 
確定的でない事に時間を掛けるより、確実な事の方が良いだろうって事。

413:kmo2
08/04/19 16:19:46
>411
自分で読み直して意味不明でした。すいません。

>鈍くなるし、相手が変則的な打ち手かどうかは、
>経験的にはわかっても一局程度では不明だろうし

打ち方が、いわゆる「鈍くなる」というのは確かにあります。

実際最初に作った奴は無駄に警戒しすぎになってしまい没にしました。
なので、予想点数の危険度で、閾値を決めて、対処してます。

相手の変則的ってのも確かに対処しずらいです。

ただ、実際問題、プロリーグのようなものがあって、
同じ相手と打っているなら別ですが、
ネットやフリー雀で打ってる場合、
超一流の人間雀士でもそこまで個別に対処してないようです。

それに、麻雀は、乱数に支配されるからそれほど自由に打てず、
将棋などと比較して、気風が出にくいので、
割とあまり考えなくても、ソコソコうまくいってしまう感じはします。

実際問題、相手の特徴がわかるだけのデータも集まりませんしね。
特徴がわかるほど何度も遊んでくれるゲームを作った後に考えることにしてます。



414:kmo2
08/04/19 16:23:37
全くしないよりは強くなります。
>確定的でない事に時間を掛けるより、確実な事の方が良いだろうって事。
これもご意見後もっともで、
初期のバージョンは実際そのようにしていましたが、

その後、408で書いたアルゴリズムを組み入れました。
そして、実際やって強くなりました。

ちなみに、
聴牌しているかどうかを0,1で判断して対処すると色々まずいので、
0~1の間で確率として推定して、自分の手牌と比較して期待値で打牌を
選択しています。


415:kmo2
08/04/19 16:24:57
失礼,414は412への返事です。

416:デフォルトの名無しさん
08/04/19 16:28:42
>>414
最初からテンパイかもしれないし、どうやっても役になりそうに無い場合もあるし
始めに配られた牌によって上がりは左右されると思う。
それは捨て牌からはわからないけど… 
0手目既にテンパイとは認識出来ない。

417:kmo2
08/04/19 16:35:30
ですから確率的に対処すればよいんだと思います。
麻雀で全勝するプログラムなんてありえないんで、
1000試合やって平均がよければそれでよしとするしかないですね。

418:デフォルトの名無しさん
08/04/19 16:39:15
>>417
相手三人の最初のテンパイの確率が判らないのが困る所。
まともな打ち手ならば、手が進むごとに確率は上がっていくけれど
初めが1%だったのか95%なのかでずいぶん違う。
これは捨て牌からは読み取れないと思う。

419:デフォルトの名無しさん
08/04/19 16:50:50
テンパイの確率よりも、あがり期待値を求める方がよさそう。 
テンパイしていて一周以内にあがれる確率が50%だとしても役で1000点や3万点と幅がある為。
安い手でロンされても大したことがない。

420:kmo2
08/04/19 16:52:19
>相手三人の最初のテンパイの確率が判らないのが困る所。

最初の聴牌の確率ってのが何のことかわかりませんが、
牌譜から巡目毎の聴牌率のデータが求められるので、
私は、そこから色々割り出しています。

個別のケースはそりゃわかりませんが、それがわかったら、
麻雀というゲームが成立しないんで、余計に困ってしまいます。
そのための確率でしょう。

捨てパイの特徴も確率的に処理してます。

どうしてもわからない部分は無視して自分の都合で上がりを目指しますが、
それはコンピュータでも人間でも一緒だと思います。


421:デフォルトの名無しさん
08/04/19 16:58:22
>>420
配られた牌によっては、既にあがっていたり、テンパイしている可能性もあるって事。
捨て牌が多くなってきた終盤ならば、捨て牌を解析する意味はあるかもしれないとは思うけど。

422:デフォルトの名無しさん
08/04/19 17:03:02
テンパイ後は、捨て牌がランダムになりやすいとは思うけど、その確率がわかった後
あがり牌と役の得点も予測しないといけないとは思う。不確定な要素が多すぎると感じる。

423:kmo2
08/04/19 17:39:17
>捨て牌が多くなってきた終盤ならば、捨て牌を解析する意味はあるかもしれないとは思うけど。

序盤は無視しても良いのかもしれませんね。
ただ、データとってみると、
序盤の捨てパイの方が役や点数との関連が強くでる傾向はあります。



424:デフォルトの名無しさん
08/04/19 18:00:54
純粋に牌効率から捨てた、という限定条件の下に
捨て牌から待ち牌を予測する研究というのは
無駄にはならないから

425:デフォルトの名無しさん
08/04/19 18:11:24
意味がないわけではないとしても、強くなるかは微妙と思う。
例えば一手2秒以内だとして捨て牌予測に500m秒使ったら、それだけで1.5秒も使ってしまう。
捨て牌を決めるより圧倒的に計算時間がかかると思う。

426:デフォルトの名無しさん
08/04/20 19:29:49
まうじゃんのAIまだー

427:デフォルトの名無しさん
08/04/20 19:30:10
AI作成ツールまだー

428:デフォルトの名無しさん
08/04/20 22:27:43
>>425
それが時間の問題だけなら、大した問題じゃないよ
アルゴリズムか実装をグツグツ煮詰めて速くするか
計算機が速くなるのを待てばいいだけ

もちろんすごいオーダーの計算になるなら話は別だけど

429:デフォルトの名無しさん
08/04/20 22:30:59
あと、時間制限を設けていっぱいまで考えるってのは
一般的な思考ルーチンでもやってる。
その場合、常に候補を検証し続けて 候補をソートしといて
時間切れ時に一番有効そうだったやつを採用する

430:デフォルトの名無しさん
08/04/20 22:56:20
幾らでも時間掛けて良いなら、相手の捨て牌を考慮した方が強いだろうけど
でも大した効果でも無いと思う。時間が限られているなら自分の役に専念した方が強いと思う。

431:デフォルトの名無しさん
08/04/20 23:38:20
まあ最初のうちは捨て牌なんざ ざっとスジと裏スジと色気配だけ読んで
あとは役作りに専念した方が効率はいいな。 どうせ読みきれるもんでもなし。
その先のことは 行き詰ってから考えた方がよさそうだ

432:デフォルトの名無しさん
08/04/20 23:40:25
>>430
リーチ一発目はそれなりに長考したほうがよさそう
あのディープブルーもパニックタイム用意してたし

433:デフォルトの名無しさん
08/04/21 00:01:59
リーチや、鳴きして単騎待ちなどテンパイ確定なら当然読むが
そもそもの始まりは、テンパイ不明のときに捨て牌を読むかどうかだったはず。

434:デフォルトの名無しさん
08/04/21 00:17:52
これまでの(実際の麻雀の)個人的な経験からは
できるだけ早い上がりを目指すのが結局一番いい様な気がする
ある程度確率が計算できるならという条件で
ただ先読みなしで打牌を一つだけ選ぶというアルゴリズムで
良いのを作るのはかなり大変なんじゃないかと思う
だから確率だけ決める様にして後はUCTに任せる方が強いプログラムが
作れるんじゃないかと思うのだが
計算時間を心配している人がいるけど一局100手以下なんだから問題ない
全てのシミュレーションが流れちゃう様だと問題だけど
あ,手(捨て牌)は高々14通りだから前向き枝刈りは(多分)要りません
長文スマソ

435:デフォルトの名無しさん
08/04/21 00:51:58
単純に強いだけで、思考時間は考えないのか
強くても1手に10秒とか掛かってたら

436:デフォルトの名無しさん
08/04/21 01:02:08
10秒なら十分だよ
並列化でもすればいいじゃない

437:デフォルトの名無しさん
08/04/21 01:44:47
>>435
思考時間なぞどうとでもなる

438:デフォルトの名無しさん
08/04/21 01:47:27
相手が思考している時間も使えるしな

そもそもパニックタイムが10秒程度なら十分許容範囲だから例えにならない

439:デフォルトの名無しさん
08/04/21 05:04:10
得点を正確にもとめるだけで難しい。
牌と、親と風渡したら点が高速に求まれば開発は楽なのだが。
紙はいないものか? まうじゃんは使いこなすのが難しい。

440:デフォルトの名無しさん
08/04/21 05:59:42
ここでソース配布されてるけど使い方難しい
ラッパー作って下さい


URLリンク(www.geocities.co.jp)
URLリンク(www.vector.co.jp)

441:デフォルトの名無しさん
08/04/21 11:28:46
シュミレータとしてまともに動作して現在入手可能なのはまうじゃんだけとおもうから
これにあわせるのが一番かな グラフィックONで対戦になるから速度は遅いけど

442:デフォルトの名無しさん
08/04/21 20:15:29
点計算ならこないだ作ったけどあんま実用性に適う速さは出せなかった
単純に役判定するだけなら速いけど、全ての役とか符の数え方を試して
比較っていう風にしたら遅くなってしまった。
俺の力不足なだけダケド

443:デフォルトの名無しさん
08/04/21 20:21:37
ほとんどは、役無しを渡されるはずだからそれが速くなればいいはず。
点がつくとき役と符計算に時間掛けても正確な方が良い。

444:デフォルトの名無しさん
08/04/21 20:30:39
13枚手持ちにあり、配られる牌がわかっているとすると
何手目で上がりかどうやって調べたらいい? 
これら次と同じ事だが。
例えば20枚の牌でいずれか6枚取り除いたら上がりかどうか
高速に判定する方法ある?

445:デフォルトの名無しさん
08/04/21 20:50:34
>>443
先に面子出来てるかどうか判定してからやれば速いね。そういえば。
でもAIとか作る事考えると「どう打てば高い点数になるか」ってのを考えるときに
やっぱり何回も呼んじゃわないかな?

446:デフォルトの名無しさん
08/04/21 21:05:29
なんども判定したとしても、98%が役無しでそれが例えば10msで
役ありの時500ms (50倍かかるとした) なら、平均約10msのパフォーマンスになる。

447:デフォルトの名無しさん
08/04/21 21:55:05
平均(期待値)は 20ms だろ
正確には 10 * 0.98 + 500 * 0.02 = 19.8 ms

448:デフォルトの名無しさん
08/04/21 21:58:12
AIが心持長考しだしたらテンパイだと分かるのか

449:デフォルトの名無しさん
08/04/21 22:00:12
テンパイ時と同じ時間waitを入れておく

450:デフォルトの名無しさん
08/04/21 22:04:00
モンテカルロで例えば1万回試行したら、1秒以内に指すには、
0.1ミリ秒=100ナノ秒で判定しなければいけない。

451:デフォルトの名無しさん
08/04/21 22:07:28
イーシャンテン、リャンシャンテンの判定は何秒くらいだっけ

452:デフォルトの名無しさん
08/04/22 00:00:51
このスレから出たものだと思うけど
URLリンク(jamong.s285.xrea.com)
ここに向聴数求めるプログラム置いてあった。
かなり速い

453:デフォルトの名無しさん
08/04/22 01:27:38
しかしこのスレ潜在的に読んでたやつがこんなにいたんだなあ。
それとも最近の勢いに引きつけられてきただけか。

454:デフォルトの名無しさん
08/04/22 01:30:51
正直作る気満々だったくせに、いざ作ってみたらあんまり強くなくって
出るに出れないのは俺だけじゃないはず

455:デフォルトの名無しさん
08/04/22 01:31:34
おまいら最強の~系スレはどれも読んでる

456:デフォルトの名無しさん
08/04/22 06:10:37
どなたか代わりにソース打ってくれないですか?
アイデアはあるんですけどプログラム、デバックが苦手なんです
他人にあがられる確率は自分より3倍程度高いので
自分があがりにくい場合は安全牌を切った方が良いのですが
それは後回しにして自分の牌を揃える方法について記載します

13枚持っていて、一つ牌が配られて14枚持っているとします ここで上がっていれば勝ちです
残りの出てくる可能性のある牌をランダムに生成して、
15枚持っているとしていずれか一枚捨てたときに上がりになるならばその牌に1をカウントします
上がりにならないなら16枚目をランダム生成していずれか2枚捨てたら上がるならばその牌に1/2をカウントします
これを繰り返すと、上がりやすい牌にカウントが集まります

ここで牌を捨てたときにあがりがあるか判定する方法は、特殊な役満は除外(起こりえないとします)すれば
チートイと通常の役だけになります チートイは直ぐに判定出来るので通常役について説明します


457:デフォルトの名無しさん
08/04/22 06:35:36
でもお前どうせリバーシ1だろ

458:456
08/04/22 07:11:51
あがり判定の部分なんですけど、一手目でテンパイに出来るとき、した方がいいとは限らないんです
テンパイにせず別のあがりを狙った方があがりやすい事があります
テンパイにならない捨て牌も考えると総当たりになって膨大な計算が必要になってしまいます
20枚のうち6枚捨てる場合の数は、単純計算で、38760通りになります 
これでは何度も試行出来なくなります
実は簡単に求める方法が見つかっていません

459:デフォルトの名無しさん
08/04/22 07:25:54
ランダムに牌を配っているので、確実に起こりえることではないので、厳密でなくても良いとすれば
例えば、小さい順にジュンツが見つかれば確定し、次にコーツ確定し、残りでトイツが作れるか調べてみる方法、
大きい順のジュンツ、次にコーツ、最後にトイツと調べる方法など
判定方法を限定しておけば処理は速いですが・・・

460:デフォルトの名無しさん
08/04/23 23:20:45
>>456
99%努力しろよ

461:デフォルトの名無しさん
08/04/24 23:08:07
誰か共通AI仕様作って(ハァト)

462:デフォルトの名無しさん
08/04/24 23:19:27
「まうじゃん」対戦相手プラグイン インターフェース仕様

URLリンク(www.amy.hi-ho.ne.jp)

463:kmo2
08/04/25 01:08:19
>434
前向き枝狩りいれないと、
本当に単なる天和シミュレータになってしまいます。

数億回の試行回数でも足りません。
UCT以前に最初の1回を上がるだけで大変。

マアジャンは混沌から秩序を作り出すゲームだからランダムにやってると
ぜんぜん上がれないんですよ。


464:デフォルトの名無しさん
08/04/25 02:58:43
>>463
探索のときに指し手を選択しないで、ランダムに牌が配られたときに、
役がそろいやすい牌を選べばいいと思う

465:デフォルトの名無しさん
08/04/25 06:56:12
>>463
せっかくコンピューターつかうんだから全部の手を調べて絶対上がれる手
とか調べれば?

466:デフォルトの名無しさん
08/04/25 08:34:13
>>465
配牌時に一九字牌が無い状態で国士無双が上がれる
確率を求めることに意味が無いことくらいは理解してるよな?

467:デフォルトの名無しさん
08/04/25 08:57:54
>>466
まーじゃんやったことないし。

468:デフォルトの名無しさん
08/04/26 01:49:58
>>463
ある程度のパターンはDBに入れちゃえばよくね?

序盤のグッダグダな分は字牌整理ルーチンに任せるとかして
ある程度先の見えた牌勢を適当に数億パターンくらいにしぼって。

ツモの流れとか無視することになるけど、そのあたりの改造は
モノが出来てからのお楽しみにとっとくのがいい

469:デフォルトの名無しさん
08/04/26 02:00:54
まうじやんがこのスレの基本システムなんでよろしく

470:デフォルトの名無しさん
08/04/26 13:20:41
いくら強いのを作っても需要は無く自己満足にしかならないよな

471:デフォルトの名無しさん
08/04/27 06:52:38
賭け麻雀の代打ちに使えるくらい強かったら需要あるかもよ

472:デフォルトの名無しさん
08/04/27 07:58:31
人間相手にはそれほど強くないと思う。統計的には何万局とかすれば強さはわかるだろうけど
相手が固定だと、相手の待ちや役わ予測しやすい人間の方が有利かもしれない。

473:デフォルトの名無しさん
08/04/27 08:00:18
まうじゃん使えば、勝手に動かせて1000局ぐらいはやれると思う。うpしてくれる人いれば活発になるかもしれない。

474:デフォルトの名無しさん
08/04/27 09:57:43
AIが気軽にサクサク生み出せるプログラムできたら活気づくだろうな

475:デフォルトの名無しさん
08/04/27 10:23:19
>>474 それだ。まずは条件を一意に表せる表記を作るんだ。
それからコンパイラの実装というフェイズでなら、君ならやれる。
(と、最後は他力本願


476:デフォルトの名無しさん
08/04/27 10:28:18
GUIでパラメータを設定すると、Cのソースが出てきてコンパイラに通すだけのやつ

477:デフォルトの名無しさん
08/04/27 11:39:55
でも相当細かく設定できるようにしないと、強さが似かよるというか
打ち方がワンパみたいなジレンマが
難しい話だな

478:デフォルトの名無しさん
08/04/27 11:48:05
カブロボの設定のみでいいやつみたいなやつキボンヌ

479:デフォルトの名無しさん
08/04/27 20:16:41
専用言語を作るってのが一番確実だろうな

480:デフォルトの名無しさん
08/04/27 22:41:36
※麻雀ロジック研究会※
スレリンク(gamedev板)

481:デフォルトの名無しさん
08/05/06 11:38:05
で、今のところ最強の麻雀ソフトは何なの?

482:デフォルトの名無しさん
08/05/08 00:05:31
芹沢未来かな・・・

483:デフォルトの名無しさん
08/05/08 00:10:16
ゲーセンのやつはインチキなんじゃ?

484:デフォルトの名無しさん
08/05/09 21:19:36
イカサマが最強だって哲也も言ってただろ?

485:デフォルトの名無しさん
08/05/09 22:51:53
インチキなしのアルゴリズム最強を知りたいよ

486:デフォルトの名無しさん
08/05/09 23:00:20
インチキ無しだと単に確率を見ればいい。
効率の良い打ち方を超えるのは神でも不可能と
市川も言ってただろ?

487:デフォルトの名無しさん
08/05/10 00:22:31
確率を分りやすく出力するプログラム
作ってよ(はぁと)

488:デフォルトの名無しさん
08/05/10 02:19:39
>>484
そんなことは言っていない。
イカサマはあくまで手段だって言ってる。

489:デフォルトの名無しさん
08/05/10 10:44:32
とりあえず、まうじゃんのAIよろ

490:デフォルトの名無しさん
08/05/10 10:54:36
何この他力本願スレ

491:デフォルトの名無しさん
08/05/10 12:38:47
元々、それで誕生したスレです

492:デフォルトの名無しさん
08/05/10 17:19:37
他力本願ゆえにソースが一個もあがりません><

493:デフォルトの名無しさん
08/05/27 09:59:46
おまいら最強のシストレFXプログラムをしてみろよ
スレリンク(tech板)

494:デフォルトの名無しさん
08/05/30 21:26:04
役の複合って

立直
一発
自摸
海底摸打
翻牌
混老頭
混一色
対々和
三暗刻
三槓子
ドラ

の11個が最高?

495:デフォルトの名無しさん
08/05/30 23:07:16
はいはいトイトイツモトイトイツモ

496:デフォルトの名無しさん
08/05/30 23:55:29
>>494
立直 + 混老頭 + 対々和 の条件だけで
四暗刻になってしまう気がするw


497:デフォルトの名無しさん
08/05/31 01:04:25
立直はリンシャンにチェンジできる?

498:デフォルトの名無しさん
08/05/31 01:17:21
URLリンク(cocoa.2ch.net)

1111東東東東白白白白中中發發 ロン發
ダブルOPENリーチ、ハイテイ、ダブ東、白、發、小三元、対々和、
三暗刻、三槓子、混一色、混老頭、ドラ32。
(リーチ一発とハイテイは複合しないように思われるのでダブルリーチに変えました)
140符55翻、約3京点かな・・・


符と役満
URLリンク(www.geocities.co.jp)

499:デフォルトの名無しさん
08/05/31 04:18:43
>>498
その点数、場ゾロ忘れてないか?

500:デフォルトの名無しさん
08/05/31 06:20:31
ロンならハイテイじゃなくてホーテイだろ

501:デフォルトの名無しさん
08/06/07 19:35:39
>>500
大した指摘ではないな

502:デフォルトの名無しさん
08/06/08 10:05:26
符点にも翻数にも影響ない罠

503:デフォルトの名無しさん
08/06/08 14:03:36
>>498
カンしてダブリーは無しのところの方が多い。

504:デフォルトの名無しさん
08/06/08 14:05:51
C#使いのおれに何か数時間でできそうな仕事ある?
簡単なDLLぐらいなら作れるけど、もちオープンソースで

505:デフォルトの名無しさん
08/06/08 14:58:58
>>504
DLLの作り方をまとめて解説サイトを作成する

506:デフォルトの名無しさん
08/06/08 14:59:43
ViasulStudioなら設定ひとつじゃねーか・・・

507:デフォルトの名無しさん
08/06/08 14:59:53
>>504
他の言語での思考ルーチンとの橋渡しをするインターフェイスを作って

508:デフォルトの名無しさん
08/06/08 15:16:14
>>504
C/C++/C#/Java/VB/Delphi使いの俺が居る
お前不要


509:デフォルトの名無しさん
08/06/14 10:18:14
>>504
>>508

お前らにお願い

・手牌のシャンテン測定
・テンパイの可否
・役判定

これらのプログラム書いてよ

510:デフォルトの名無しさん
08/06/14 11:13:50
まず牌データの構造を決めろよ

511:デフォルトの名無しさん
08/06/14 20:15:09
>>510
この辺の仕様はいかがでしょうか?
これでも使いにくいというなら牌データ構造はお任せします。


まうじゃん」対戦相手プラグイン インターフェース仕様
URLリンク(www.amy.hi-ho.ne.jp)

MJexeIO.DLL(東風荘画面入出力用ダイナミックリンクライブラリ) 開発者マニュアル
URLリンク(www.interq.or.jp)

第10回 麻雀の役を判定す

URLリンク(itpro.nikkeibp.co.jp)
URLリンク(itpro.nikkeibp.co.jp)

512:デフォルトの名無しさん
08/06/14 20:20:21
つかむしろ>>510には

 「誰も手軽に使える牌データ構造」

を考えてよwww

513:デフォルトの名無しさん
08/06/14 21:38:00
面子判定とかは牌自身にやらせればいいんじゃないか?

514:デフォルトの名無しさん
08/06/15 01:49:59
>牌自身にやらせれば
意味不明。ちゃんとした日本語で書いてよ

515:デフォルトの名無しさん
08/06/15 01:54:58
能書きだけ垂れて結局>>508は逃げ出すけどな

516:デフォルトの名無しさん
08/06/20 22:03:14
こんなDLL作って下さい

引数
牌:'M1M1M1M2M3M4M5M6M7M8M9M9M9',上がり牌:'M1',属性:(自莫/嶺上/嵌貫/ロン),親:True/False
戻り値
符点,翻数,点数


517:デフォルトの名無しさん
08/06/20 22:22:40
それだけの引数じゃ足りない

518:デフォルトの名無しさん
08/06/20 23:17:10
足りないのは、天宝地宝、ハイテイ、ドラ・裏ドラ、ポン・チー・明暗カンの状態。
まだ足りないかもしれない。あった自風・場風・場の点棒、場の1000点棒の数。
まだ有るか?

519:デフォルトの名無しさん
08/06/21 00:09:59
>>518
チョンボしてるかどうか

520:デフォルトの名無しさん
08/06/21 04:00:10
リーチ状況とか

属性の嵌張はいらない
こっち側で判断させる方が良い

ツモロン嶺上搶槓で分ければ良いんじゃないかな

521:デフォルトの名無しさん
08/06/21 10:08:51
多牌少牌の有無と、他のメンツがそれを指摘したかどうか

522:デフォルトの名無しさん
08/06/21 10:57:46
>多牌少牌の有無
wwww
なんでコンピューターマージャンで多牌すんだよ
どんなバグだらけのプログラムなんだよwwww

523:デフォルトの名無しさん
08/06/21 11:43:44
3枚一度にツモるコマンド、切り忘れコマンド他w

524:デフォルトの名無しさん
08/06/21 16:42:45
でも、ノーテンリーチが出来る機能は必要かもね。

525:デフォルトの名無しさん
08/06/22 02:47:02
注文はいいから早く>>516のDLL作れよwww

526:デフォルトの名無しさん
08/06/22 03:04:12
てめーで作れ


527:デフォルトの名無しさん
08/06/22 03:38:55
基本的過ぎるアホな能書きばかりで
前に進まないしプログラムも上がる気配も無い

本当にここはプログラム板か?
少なくとも>>508は何かリアクションしろよwww

528:デフォルトの名無しさん
08/06/22 10:12:56
>>516

URLリンク(itpro.nikkeibp.co.jp)

529:デフォルトの名無しさん
08/08/01 06:44:15
保守age

530:デフォルトの名無しさん
08/08/19 02:30:29
暇つぶしに麻雀ゲームでも作ってみようかと思ったけど
実装を考えてみるといろいろとめんどくさそうだなあ

531:デフォルトの名無しさん
08/08/21 00:45:14
意外とそうでもない
手牌、河をしっかり定義しておけば
そんなに手間は掛からない

532:デフォルトの名無しさん
08/08/21 01:03:02
>>531
ほう

533:デフォルトの名無しさん
08/08/22 08:20:51
「まうじゃん」対戦相手プラグイン インターフェース 
URLリンク(www.amy.hi-ho.ne.jp)

534:デフォルトの名無しさん
08/08/23 01:29:00
面倒なのは,可能な上がり方を列挙して待ち牌を調べるとか
一番得になる役の組み合わせを探す辺りか

535:デフォルトの名無しさん
08/08/23 06:55:30
今日このスレ見つけて、AI評価用の対戦システム作ろうかと一瞬思ったんだが、
まうじゃんとか、URLリンク(www.jan-x.jp)とか見ると、
やっぱ需要がないんだろうなー

536:デフォルトの名無しさん
08/08/23 17:32:06
>>532
1局をざっくりと

(処理概要)
-----

1. 洗牌・配牌

2. 任意のプレーヤーのツモ処理

3.ツモ後の動作
3-1. ツモアガリならばアガリ処理→局終了
3-2. 任意のプレーヤーの捨牌
3-3. 任意のプレーヤーのカン処理→「リンシャンツモ」として、2の処理にもどる

4. 捨牌後の他プレーヤーからのリアクション(チー・ポン・カン)確認
5. リアクションがあれば、そのリアクション処理
6. 流局していないか確認→流局ならば局終了
7. 2のツモ処理にもどる

-----

という流れで処理すれば、若干特殊な処理もあるが、
ほぼほぼ実装は終了している。
意外と難しいのは、AI処理の方。

537:デフォルトの名無しさん
08/08/23 17:53:31
>>534
>可能な上がり方を列挙して待ち牌を調べる。

全ての牌に対してしらみ潰しに調べた方が早い
テンパイチェック・待ちチェックは下記ページを参照
URLリンク(www.interq.or.jp)

>一番得になる役の組み合わせを探す辺りか

 11122233388899

という組み合わせならば、

 111 222 333 888 99
 123 123 123 888 99

という順子と見るか、暗子として見るかを比較して
高い方を採用すれば良いはず

538:デフォルトの名無しさん
08/08/23 18:05:23
>>535
数年前「MJsim」なるもので、麻雀のAI対戦を行ったことがある

MJsim実行環境
URLリンク(www.rupan.net)

需要が無いことも無いと思うがな…

539:デフォルトの名無しさん
08/08/24 03:46:44
>>538
ID が不正です.って言われちゃいました。

540:デフォルトの名無しさん
08/08/24 07:10:38
再アップしました。もっといいローダーがあれば教えてください

MJsim実行環境
URLリンク(uproda11.2ch-library.com)

541:デフォルトの名無しさん
08/08/24 10:14:08
>>540
どうもありがとうございます。
無事ダウンロード出来ました。
動かして見ましたが、きちんと動いているようです。

前スレは見れないのですが、>>97によるとバグがあるのでしょうか?
どちらにしても、機能を追加したい場面も出てくるでしょうから
ソースが使えないのは痛いですね。

対戦システムはオープンソースとして開発するのが一番だと思います。

542:側近中の側近 ◆0351148456
08/08/24 12:20:06
(っ´▽`)っ
「最強の麻雀」「プログラム」?
「最強の」「麻雀プログラム」?
どっちだろ?
「最強の麻雀」なら宇宙麻雀だけどね。

543:デフォルトの名無しさん
08/08/24 12:45:48
>>541
そのあたりは話がややこしいので

実は、

「製作した人」
「前にzipにまとめてアップしてくれた人(>>97)」
「私」

がそれぞれ別人なんです。

公開当時はちゃんとソースも公開されていたのですが、役判定部分ソースが
別で公開されていたソース(現在は非公開)を使用して、
著作権がグレーな状態で、今回もソース公開していません。(私も持っていません)

「製作した人」が今はいないので、今後は「一から作り直す」方が早いでしょうね

544:デフォルトの名無しさん
08/08/24 15:42:55
>>543
なるほど、了解です
車輪の再発明になってしまうので、出来ればやりたくないものですね

まったり麻雀やまうじゃんの人にお願いして
オープンソース化してもらうという手もあるかと思いますが、どうでしょう?

545:デフォルトの名無しさん
08/08/24 16:22:30
To まったり麻雀やまうじゃんの人

オープンソース化してください ><

546:デフォルトの名無しさん
08/08/24 17:04:54
すみません、お断りします。(ソースが汚くて恥ずかしい)

そんなに難しいものではないので自分で作った方がいいですよ。

547:デフォルトの名無しさん
08/08/24 17:05:06
>>541
>前スレは見れないのですが、>>97によるとバグがあるのでしょうか?

得点計算で100点単位で切り上げられないバグは既知。
それ以外にもバグはあるはず

548:デフォルトの名無しさん
08/08/24 17:08:28
>>546
即答ありがとうございますw
私の同意見です。

「車輪を再生産」する気負いがあれば、「AI評価用の対戦システム」の
製作はそんな難しくないはず。
wikiとか使って、みんなで分担して開発すれば、そんなに大した
仕事量ではないと思いますよ

549:デフォルトの名無しさん
08/08/25 00:00:18
>>546
まったり麻雀の人?まうじゃんの人?

550:デフォルトの名無しさん
08/08/25 00:09:53
>>544
こういう奴ほど決まってゴミを生産するんだよな

551:デフォルトの名無しさん
08/08/27 21:27:09
>>544
ひとつくらいは自分で車輪以外の部品を作ってみろ
話はそれからだ

552:530
08/08/27 22:19:28
8月中に何か作りたかったのに牌の表示しかできなかった><

553:デフォルトの名無しさん
08/08/27 22:20:56
役判定とか得点計算とか根幹のシステムは作れたけどGUI部分を作るのに断念した

554:デフォルトの名無しさん
08/08/27 22:25:50
C#でも使えばいいじゃん

555:デフォルトの名無しさん
08/08/27 23:09:55
>>552>>553が一緒にやればいい


556:デフォルトの名無しさん
08/08/28 00:27:57
作るなら「脱衣まーじゃん」にしてください><

557:デフォルトの名無しさん
08/08/28 02:14:59
じゃ、俺脱ぐ係ね。

558:デフォルトの名無しさん
08/08/28 02:19:12
じゃ俺脱がす係


559:デフォルトの名無しさん
08/08/28 02:27:06
じゃ俺見る係

560:デフォルトの名無しさん
08/08/28 02:31:44
じゃ俺撮る係

561:デフォルトの名無しさん
08/08/28 02:35:45
>>557,558
麻雀いらなくね?

562:デフォルトの名無しさん
08/08/28 02:40:02
 ヽ('A`)ノ
  (  ) ゛ さぁ麻雀しようぜ
 ゛/ω\ 


563:デフォルトの名無しさん
08/08/28 10:11:22
_[警]
  (  ) ('A`)>>562
  (  )Vノ )
  | |  | |

564:デフォルトの名無しさん
08/08/28 18:21:37
徹まん明けでタイーホかw


565:デフォルトの名無しさん
08/08/29 00:24:50
次スレ

おまいら最強の脱衣プログラムしてみろよ

566:デフォルトの名無しさん
08/08/29 00:35:55
>>565
玉ねぎが主役か?

567:デフォルトの名無しさん
08/08/29 01:41:51
最強の脱衣って、あれだろ

ゲーセンに行って、筐体の前に座って、100円入れて、スタートボタンを押す
配パイが終わって、さあ、と思ったところで

相手が天和

そしてゲームオーバー

さすがスーパーリアルなだけはあるよね

568:デフォルトの名無しさん
08/08/29 06:28:02
>>565 裸身活殺拳でおk?

569:デフォルトの名無しさん
08/08/30 11:50:17
URLリンク(doranizm.hp.infoseek.co.jp)
これってRでいうとどの程度のものなの?

570:デフォルトの名無しさん
08/08/31 01:29:01
時はこの数年ソースが一度も上げられたことが無い謙について

571:デフォルトの名無しさん
08/08/31 01:51:20
制作物はともかくソースはいらんだろ

572:デフォルトの名無しさん
08/08/31 01:55:23
まず、その製作物はDLLレベルですら上がってきていない

また、>>544にもあるようにソースに対してのニーズは非常に高い

573:デフォルトの名無しさん
08/08/31 02:01:59
ニーズがあるのはゴミグラマの間でだけ。

574:デフォルトの名無しさん
08/08/31 02:07:20
ゴミグラマでない>>573は何か製作物を上げてくだされwww

575:デフォルトの名無しさん
08/08/31 13:15:12
他人に要求する前にまず自ら差し出しましょう

576:デフォルトの名無しさん
08/08/31 13:20:48
お!?
気前のいい>>575ですね
期待してるので早急に上げろよ。

期限は今日中

577:デフォルトの名無しさん
08/08/31 13:29:06
↑ゴミは黙っとけ

578:デフォルトの名無しさん
08/08/31 13:29:16
以下スルーで

579:デフォルトの名無しさん
08/09/03 00:34:13
結局のところ、対戦システムから自分で作るしかなさそうですね…

あまり需要のないものは作りたくないんですが、
もし対戦システムがあって、大会みたいなことをやるとしたら
参加してみたいっていう人はいます?

580:デフォルトの名無しさん
08/09/03 00:43:10
俺は興味あるよ

581:デフォルトの名無しさん
08/09/03 01:38:42
います
需要あり

582:デフォルトの名無しさん
08/09/04 00:31:42
>>579


583:デフォルトの名無しさん
08/09/04 00:39:02
>>579
参加はしてみたいが、特技「三日坊主」が発動するので
ほぼ乱数打ちで参加するでしょう

584:デフォルトの名無しさん
08/09/04 00:40:03
今のところ俺も入れて5人以上は居るみたいだな


585:デフォルトの名無しさん
08/09/05 00:44:37
でも5人しかいねえみたいだなwww

586:デフォルトの名無しさん
08/09/05 00:45:18
しかし麻雀はできるだろ

587:デフォルトの名無しさん
08/09/05 00:54:40
5人かよ~ラス抜け?

588:デフォルトの名無しさん
08/09/05 01:03:55
需要が無いなら作らないだと・・・ライト兄弟が動力飛行を成し遂げたその瞬間に飛行機の
需要はあったか?産業革命以前に生産機械の需要はあったか?文字すらなかった先史
時代に書籍の需要はあったか?答えはNON NON。真のイノベーションは誕生するまで
誰もその重要性に気がつかない。

589:デフォルトの名無しさん
08/09/05 01:07:24
>>579
で、作るの?作らないの?

590:デフォルトの名無しさん
08/09/05 01:10:28
なんでもいいからはやくあげてくれ

591:デフォルトの名無しさん
08/09/05 08:36:21
チートイツアルゴリズム作ってみるわ

592:デフォルトの名無しさん
08/09/05 22:03:16
チートイの立直、和了判定アルゴリズムなら30秒で書けるだろ
チートイを狙うアルゴリズムなら戦局に与える影響なんて皆無だから
もっと他に書く必要のある処理を考えた方がいい

593:デフォルトの名無しさん
08/09/05 22:42:44
>>592
30秒は無理w

594:デフォルトの名無しさん
08/09/05 22:46:40
頭の中でなら書けそうだがタイプ的な問題で無理だ

595:デフォルトの名無しさん
08/09/05 23:11:54
int ChkChitoi(int tehai[4][9]){
int tmp[3] = {0, 0, 0, };
for(int i = 0; i < 34; i++){
switch(tehai[0][i]){
case 1: ++tmp[0]; break;
case 2: ++tmp[1]; break;
case 3: ++tmp[2]; break;
case 4: return 0;
}
if((tmp[0] > 2)||(tmp[2] > 1)){ return 0; }
}
if(tmp[1] == 7){ return 1; } //ho
return 2; //reach
}

30byooooooooooooo!!

596:デフォルトの名無しさん
08/09/05 23:52:58
三十秒かどうかはさておいても、大概の役判定は結構短時間で組めるよね
んで、全ての役の中で一番面倒臭いのが平和という罠

597:デフォルトの名無しさん
08/09/07 00:33:24
符を数えて、20符という判定

598:デフォルトの名無しさん
08/09/07 00:38:17
フリテン回避とか難しそうだ

599:デフォルトの名無しさん
08/09/07 04:46:43
符計算も鳴き多発時の同順振り聴回避も0.5人日くらいでしょ。日曜だしできるさ

600:デフォルトの名無しさん
08/09/07 11:14:54
しかし符計算自体を理解するのにまず半日かかるw

601:デフォルトの名無しさん
08/09/07 14:05:38
上がった時に何通りかの面子と頭を取れる場合どの組み合わせで取れば一番点が高くなるか
これを速度を考慮しつつ綺麗に実装するのが難しい
符を高く取るが平和があれば優先するみたいなのとか

602:デフォルトの名無しさん
08/09/07 19:52:45
そうか?あがった後なら頭取って4回再帰で終わりじゃん
和了判定+α程度の計算量だから大したこと無い

それより3~2シャンテンぐらいからの手牌の選び方がムズいだろ
その点数計算と和了確率計算を同時にしなきゃいけないんだぞ

603:デフォルトの名無しさん
08/09/09 00:27:55
>>537
>一番得になる役の組み合わせを探す辺りか

 11122233388899

という組み合わせならば、

 111 222 333 888 99
 123 123 123 888 99

という順子と見るか、暗子として見るかを比較して
高い方を採用すれば良いはず

604:デフォルトの名無しさん
08/09/09 00:33:07
リーチ
ツモ
トイトイ
www

605:デフォルトの名無しさん
08/09/11 09:56:15
Javaで作ってみようかな対戦用システム

っていっても、どうやって外部のAIクラスを読ませるのかがよく分かって無いんだけど

606:デフォルトの名無しさん
08/09/12 02:22:20
URLリンク(www.amy.hi-ho.ne.jp)
URLリンク(www.amy.hi-ho.ne.jp)
URLリンク(www.amy.hi-ho.ne.jp)

607:デフォルトの名無しさん
08/09/12 06:46:28
いや、そういう意味で無くて
どうやって外部にあるクラスを認識させるかがよくわからないというわけで。
フォルダの位置とか。

608:デフォルトの名無しさん
08/09/12 07:31:24
Javaはだめだ。 やるならC++にしないと人気でない

609:デフォルトの名無しさん
08/09/12 08:12:30
…そ、そうなのか?
カズタマイズとかも楽かと思ったんだが…
C++はDLLの作り方全然わからん

どっちがいいんだろ?JavaとC++。

610:デフォルトの名無しさん
08/09/12 08:41:03
GUI面倒くさいけど、諦めてC++でやるわ。
DLLは頑張って勉強する。

611:デフォルトの名無しさん
08/09/12 08:45:53
GUIは別の人がやって良いから、点数計算がちゃんと出来て対戦結果を出力できれば
良いと思います

612:デフォルトの名無しさん
08/09/12 09:57:56
ルールを決めてから作った方が良いよな。 変更があれば随時変えていって。
ドラをどうするとか。

613:0.0.0.0
08/09/12 10:41:34
じゃあ自分GUI作るね。

614:デフォルトの名無しさん
08/09/12 12:50:37
GUI作ってくれるんならいいけどなぁ
今、wxWidgetいじってたら
wxWidgetのLibとdll作る過程でもう躓いてる…
SDlなら余裕なんだが。AI用に色々リアルタイム出力しないといけないと思うし…

ほんと、この辺は弱い、弱すぎる。

ルールはとりあえず、
237にある
URLリンク(mj.giganet.net)
でいいんでないかと思う。

615:デフォルトの名無しさん
08/09/12 13:19:45
こっちがいい。
日本プロ麻雀連盟競技ルール|日本プロ麻雀連盟
URLリンク(www.ma-jan.or.jp)

616:デフォルトの名無しさん
08/09/12 15:31:56
>>614
wxWidgetは入らないですからunixでもmacでもwindowsでもコンパイルできる
コマンドラインの判定ルーチンをお願いします。
DLLやGUIはわかる人がやります


617:デフォルトの名無しさん
08/09/12 15:38:33
東風荘ギャンブル性が高く実力を測るのに向いてないと思います。
プロルールお願いします。

618:デフォルトの名無しさん
08/09/12 15:47:48
wxWidgetもう諦めるわ
これだけの時間やっていまだにどうしようもない
コマンドラインも全然わからんから(たぶん文字列だよな)
とりあえずSDLで組むわ。
でも、もう今日は力尽きた…

619:デフォルトの名無しさん
08/09/12 15:52:02
>>618
コマンドライン = 標準C/C++ という意味です。 
役と得点計算が標準C/C++で書いてあれば発展すると思います。

620:デフォルトの名無しさん
08/09/12 23:04:15
誰かまったり麻雀の中の人にこのこと教えてあげて
URLリンク(diary.jp.aol.com)
>当社の麻雀は、プログラム上、配牌の操作を行っておりますが、
>より楽しい演出とご理解頂ければ幸いです。
>今後とも天鳳を宜しくお願い致します。


621:デフォルトの名無しさん
08/09/13 06:50:50
誰も聞いてないのにいきなり配牌操作がどうとか言い出すキ○ガイ開発者はいないだろ

622:デフォルトの名無しさん
08/09/14 19:32:24
URLリンク(mahjong.ara3.net)

とりあえずこんなの書いて見ました

623:デフォルトの名無しさん
08/09/14 22:04:25
>>622
一人麻雀練習機で延々遊んでしまったぜw
判定部分は十分じゃね?

624:デフォルトの名無しさん
08/09/14 22:33:44
>>622
一日で進みすぎワラタ
GJ

625:デフォルトの名無しさん
08/09/15 01:38:23
作ってたのあらさんだったのか。これは期待できる

626:デフォルトの名無しさん
08/09/15 09:25:27
お、あらさん久しぶりだねえ

627:デフォルトの名無しさん
08/09/15 23:24:05
>>626
あ、久しぶり。ってどこかでお会いしました?

>>623-625
ま、あんまり期待しないでいて下さい

628:デフォルトの名無しさん
08/09/15 23:30:45
まずは、このルールで点数が一致するものを作る

日本プロ麻雀連盟競技ルール|日本プロ麻雀連盟
URLリンク(www.ma-jan.or.jp)

629:デフォルトの名無しさん
08/09/16 01:08:20
>>628
がんばってね

630:デフォルトの名無しさん
08/09/20 14:06:47
GUIはフラッシュにしてください><

631:デフォルトの名無しさん
08/09/20 15:12:22
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J


632:デフォルトの名無しさん
08/09/20 16:17:44
まず、サーバとクライアントのプロトコルの仕様を決めて、
それから好きな言語で実装するのが良いと思う。

プロトコルの仕様はSMTPやPOP3みたいな感じで、
将来的にはRFCに登録。

633:デフォルトの名無しさん
08/09/21 00:18:27
なんでメール用のプロトコル使うんだ?
もっと使えそうなのがあるだろ

634:632
08/09/21 01:35:17
>>633
そういう意味じゃなくて、SMTPやPOP3のようなASCIIベースの
プロトコルが良いってこと。

635:デフォルトの名無しさん
08/09/21 03:23:53
だったら参考にするのはコーヒーポットプロトコルだな。

636:デフォルトの名無しさん
08/09/21 05:49:01
>>633
理解力なさ過ぎて吹いたw

637:デフォルトの名無しさん
08/09/22 00:12:42
Javaで作りたいので共通プロトコルを作ってください><

638:デフォルトの名無しさん
08/09/22 00:39:28
XMLでいいよ

639:デフォルトの名無しさん
08/09/22 01:07:10
こーいうの作ってください><

USI(Universal Shogi Interface)プロトコルとは、将棋GUIソフトと思考エンジンが通信するために、
Tord Romstad氏によって考案された通信プロトコルです。USIの原案は、以下で読むことができます。

URLリンク(www.geocities.jp)

640:デフォルトの名無しさん
08/09/22 09:20:38
すげー久しぶりに来たけど、まだやってたんだな。
言語に依存しないようにプロトコルの策定からやるの?
inetd形式で棋譜つき雀卓サーバでも提供しようかと思ったけど
4人で1卓じゃそのままじゃむりか。人間も参加できるようにするなら観戦もいる?

641:デフォルトの名無しさん
08/09/23 00:48:19
単純なのでいいからなんか作ってくれ
スレは長いが口だけ野郎が多いから

642:デフォルトの名無しさん
08/09/23 00:53:19
こんなんでいいんで作ってください?><

URLリンク(bon4714.0web.cjb.net)

643:デフォルトの名無しさん
08/09/23 01:22:37
ソース公開したらいかさまし放題じゃん

644:632
08/09/23 01:36:31
>>643
サーバとクライアントを別プロセスで動かせば問題ないでしょ。
最初はセキュリティホール的なものもできちゃうかもしれないけど。

645:デフォルトの名無しさん
08/09/23 01:51:12
俺用メモ
>570 == >572 == >574 == >576 == >630 ==>637 == >639 == >641-642

646:デフォルトの名無しさん
08/09/23 12:48:51
ストーカー行為はやめてください><

647:デフォルトの名無しさん
08/09/23 15:18:11
何も決まってないなら、とりあえず思いつくままコマンドあたりから書き出してけば?

コマンド
【名前】自模牌要求
【コマンド名】PaiReq
【方向】cl - > sv
【コマンド概要】プレイヤーからサーバへの自模牌要求

みたいなな感じであげていって、あとはそれぞれシーケンス描いてみてダメな部分・足りない部分を要らない部分の
追加修正削除をわいわいやってみたらなんとかでっちあげられるんじゃね

648:デフォルトの名無しさん
08/09/23 17:51:15
MJSimのC#版みたいなの作ってるんだけど、こんなのどう?

仕様
・AI同士のみでひたすら対戦。
・東風荘のログを出す。
・AIは、.NETのDLLとして製作する。

ルール
・東風荘ルールがベースで、一部変更。
・カンなし。アンカン、ミンカン両方できない。
・チートイツなし。
・役満なし。
・親のノーテンで流れる。


649:デフォルトの名無しさん
08/09/23 18:36:35
ルールは後でも良いから
プロトコルの策定をしてほしい
そうすればクライアントに取り掛かれるから

サーバサイドとしては

1.開始時にクライアントからの接続待ち
2.卓の配置、親の決定
3.河および山の情報が変わるたびにクライアントに通知
4.4つ(固定よりも可変のほうがいいかも?)のクライアントからの返信を待つ
くらいかな?補足ヨロ

他に
風牌とかドラ(表示?)牌のリクエストは不定期で受け付ける?
他家の点数リクエストは不定期で受け付ける?
河の情報はすべて再送信する?差分だけにする?
待ち時間は最大何秒(何ステップ?)にする?
途中でクライアントが放棄または接続が切れた場合はどうする?
一局終了ごとに譜(なんて呼ぶんだ?)を送信する?
ノーテンリーチは可能?
リーチ後の見逃しは可能?(高目をツモるため)
フリテンリーチは可能?

650:632
08/09/23 19:12:37
昔一人でプロトコル策定してw、サーバプロセスとか作ってたんだけど、
意外に興味ある人もいるのかな?

SourceForgeにプロジェクトでも立てようかと思ったけど、SFって
Wikiは使える?

651:デフォルトの名無しさん
08/09/23 19:15:11
このスレで反応をみてからにしろ
SFは早まるな

652:デフォルトの名無しさん
08/09/23 19:19:47
オープンリーチの有無は決めておかないと
クライアントの作り直しになる可能性があるな

653:デフォルトの名無しさん
08/09/23 19:22:50
>>649
もうちょっとほぐしてみた。

こんな感じで叩き台になりますかね。

・マッチメイク
 別途

・対戦サーバ
 すでにマッチメイクが済んでいることとする。
 各クライアントは対戦に必要なキーを含む情報をサーバに送る事で参加する。

1、開始時にクライアントからの接続待ち
2、席順、親の決定
3、配牌、自摸/打牌、チー、ポン、カン、和了などのアクションを必要なクライアントに通知
5、クライアントからのACKを待って次に進む
4、ACKにはチー、ポン、カン、ロン、チャンカン、チョンボアピール※などを乗せる
6、和了まで繰り返す
7、和了時、点数の計算、終局判定
8、配牌に戻る

※他のクライアントのアクションについてチョンボであるとサーバーに告げるコマンド

・不定期なりクエストに応じてサーバーからクライアントに通知される情報
 クライアント情報、風牌、ドラ表示牌、他家の点数、河の情報

・ルールで決定、または選択ルールとしてマッチメイク時に対戦希望クライアントに通知
選択ルール、ローカルルール
待ち時間、クライアントが放棄または接続が切れた場合の処理(チョンボ扱い、ツモきりモード、ランダムきりモード)
ノーテンリーリなど、クライアントが指摘できないものについて、サーバーでは判定しない(流局時に露呈するものは除く)。


654:632
08/09/23 19:32:32
>>651
スマン、早まってプロジェクト申請しちまったw

>>652
個人的にはオープンリーチは無しが良いかと。

>>653
チョンボは面倒が多いので、不可にしてしまう方が良いと思います。
ノーテンリーチに関しては、クライアントからリーチのコマンドがきても
サーバが認めない等。
確かにノーテンリーチは戦術として使えなくもないので、禁止するのは
微妙かもしれませんが、チョンボってのは色々問題を孕んでいるので
起きないに越したことはないかと。

655:デフォルトの名無しさん
08/09/23 21:01:01
最強を目指すんならプロトコルだとか何だとか言う前にどのルールを採用するかが重要だろ、
競技麻雀路線で行くにしてもプロ団体でも採用するルールが異なってるし、雀荘路線で行くなら赤の使い方が当然絡んできるし。

どうでもいい三文プログラム書くより、本気ならまず統計的分析から開始するのが本筋だと思うけど?

656:デフォルトの名無しさん
08/09/23 21:06:38
>>655
まずは麻雀を打てることが大事だ

657:デフォルトの名無しさん
08/09/23 21:16:08
>>655
現段階では板違い
URLリンク(money6.2ch.net)
ここで思う存分統計的分析してきてくれ

658:632
08/09/23 21:28:09
>>655
統計を取るためにも、三文プログラムが必要だと思うけど?

659:デフォルトの名無しさん
08/09/23 21:35:35
>>649
wikipedia より
牌譜(ぱいふ、はいふ)とは、麻雀の自摸や打牌などの動作(摸打)、点数の得失などを記録したもの。野球のスコア、囲碁・将棋の棋譜などに相当する。
URLリンク(ja.wikipedia.org)

660:デフォルトの名無しさん
08/09/23 22:14:50
>>657
自分で勝手な妄想で判断するなよ、統計的な裏付けの有る読み、打ちをするプログラムが最強に最も近いのは当たり前だろ?
逆に言えば、理論的な根拠の無い打ち方をするプログラムになにか意味が有るのか?

661:デフォルトの名無しさん
08/09/23 22:25:24
動かないよりは意味がある

662:デフォルトの名無しさん
08/09/23 22:32:17
下を見てもしょうがない
上を見るんだ

663:デフォルトの名無しさん
08/09/23 23:28:26
下がなければ、上には行けないんだが

664:648
08/09/24 01:05:01
反応なしで寂しすぎるが、とりあえずうpする。
URLリンク(migumi94.nobody.jp)

まだ作ってないところも多く、バグバグだがこんなもんということで。


665:デフォルトの名無しさん
08/09/24 01:20:20
まずは点数計算が正しくできるところから確認して作るべき

666:デフォルトの名無しさん
08/09/24 09:48:06
ルールはこれで

URLリンク(act0.net)

667:デフォルトの名無しさん
08/09/24 09:51:03
点数計算はサーバのサービスでいいと思うけどな。
ルールによっても変わってくるし。
でもいちいち可能性のある手の点数をサーバに問い合わせるのは無駄か?

668:デフォルトの名無しさん
08/09/24 10:10:52
そのサーバーの点数計算が間違えていたら、ルールが通じないことになる。
慎重に作るべきところで最も重要なところといえる。

669:デフォルトの名無しさん
08/09/24 10:25:34
>>665>>668

じゃぁそこのロジックはオマエらに任せた。
手牌を渡すから、得点と役を返すファンクションでもクラスでもいいから作ってくれ

頼んだぞ

670:デフォルトの名無しさん
08/09/24 10:31:20
渡すのって単に手牌を渡すだけじゃないよね。
風と局、ツモやロンの区別とその牌、晒してるかとか海底とかリーチとかどういう風に渡せばいいものか・・

671:デフォルトの名無しさん
08/09/24 11:13:16
手牌(上がり牌)
鳴き
ツモorロンorチャンカンorリンシャン
局・風
リーチorWリーチ・一発
天・地・人和
海底or河底
(八連荘)

こんだけあれば役得点計算できるかね

672:デフォルトの名無しさん
08/09/24 12:20:22
何か知らんがインターフェースを決めるだけでも
大変そうだな。

>667
まず、ゲーム開始前に手と得点の一覧表を
サーバーに問い合わせると言うのはどうかね?

673:デフォルトの名無しさん
08/09/24 18:40:02
ていうかまずやることリストアップしたほうがいいんでね
目次うp

674:デフォルトの名無しさん
08/09/24 19:54:34
>>666のルールで作ってみるか

675:632
08/09/24 21:15:15
とりあえずSourceForgeでプロジェクトが立てられたので、
Wikiにざっとコマンド案とかを書いてみた
URLリンク(sourceforge.jp)

実装は今から頑張ります(^^;
とりあえずRubyで麻雀ライブラリを書いてから、サーバプロセスを作る予定

676:デフォルトの名無しさん
08/09/24 22:07:27
>>675
字牌の表記が東風荘と違うんだけど、天鳳か何かだとそうなの?

677:632
08/09/24 22:23:21
>>676
いや、別に他のに合わせる必要もないかと思って気にもしなかった。
ということで、中途半端に似てるくらいなら、東風荘に合わせようかと
思って調べてみたけど、東風荘は字牌は漢字表記?
だとしたら、それはイヤだな。

678:デフォルトの名無しさん
08/09/24 22:33:01
>>675
自分の下家がチーで鳴いたのか
ツモなのか判別できない気がするのですが…

679:デフォルトの名無しさん
08/09/24 22:47:42
>>677
動作確認で牌譜再生ツールを使うと思うんだけど、nz表記用のを一から作るのも手間だし
現段階で安定したものがあるんだから、それで再生できるよう合わせた方がいいのでは?
・・・まあnz⇔漢字の変換ツールを作ればいいだけの話か。字牌の表記はお任せします

680:デフォルトの名無しさん
08/09/24 22:52:28
漢字は極力避けて欲しい
いわゆるASCIIコードの範囲内の方がいい

681:632
08/09/24 22:59:57
>>678
どういうケースでしょうか?
Wikiにも書いた通り、サーバから送られてくるのが
「実際に起きたこと」なので、サーバから下家がツモった
(tsumoコマンドがきた)ならツモ、chiコマンドがきたなら
チーとなる想定なんですが。

>>679
牌符は別にプロトコルに合わせる必要はないので、
東風荘フォーマットとかで出力するのは問題ないです。

>>680も言っている通り、ネットワークを通すプロトコルでは
漢字は問題を起こしやすいので、できれば避けたいです。

682:678
08/09/24 23:02:07
>>681
ごめん、勘違いしてた

683:デフォルトの名無しさん
08/09/24 23:02:13
kyokustartの説明が「一局が~」になってますけど「n局n本場が~」ですよね?
それとryukyokuでクライアントにtenpaiかnotenかを返させてますけど、
不正申告がないようサーバ側でチェックするなら不必要な気がします

684:632
08/09/24 23:09:04
>>682
いえいえ、色々抜けはあると思うので指摘して頂けるのは
嬉しいです(^^

>>683
「局」という言葉が正しくは何を指すのかが良くわからないのですが、
いわゆるサイコロ振って配牌取って、誰かが上がるまでを1局と呼んでます。
なので、言葉が混在してわかりにくくなってますがkyokustartについては
683さんの理解している通りです。

流局時にテンパイ/ノーテン宣言をクライアントに返させているのは、
テンパイしててもノーテンと宣言したい場合があるからです。
上がり止めなしのオーラストップ目とか。
当然、ノーテンなのにテンパイと宣言してもサーバ側では認めません。

685:632
08/09/24 23:12:45
ドラはそのものじゃなくて、表示牌を送らないと、
赤牌が表示牌の場合に対応できなかった。

686:デフォルトの名無しさん
08/09/24 23:23:08
リンシャンの通知は?

687:デフォルトの名無しさん
08/09/24 23:24:15
だから、多牌と少牌の処理についてちゃんと最初に決めておかないとダメだってば

688:デフォルトの名無しさん
08/09/24 23:26:54
>>687
職場にこんなこと言いだす奴がいたら絶対殴ってるわw

689:デフォルトの名無しさん
08/09/24 23:27:14
>>687
それは無しって事になってるのでは?

690:632
08/09/24 23:39:00
>>686
リンシャンというか、和了役の通知でしょうか?
今のところ入ってません。さすがにマズいかな?
とりあえずkyokuendで点数の増減だけで済ませようかなと
甘く考えていたんですが、ちょっともう一度考えてみます。

>>687
手牌はサーバ側で管理するので多牌、少牌は不可能です。

691:デフォルトの名無しさん
08/09/24 23:48:13
カンしたときのリンシャン牌の通知はツモコマンド?


692:632
08/09/24 23:51:13
>>691
そのつもりです。
リンシャンツモを特別扱いする必要ってあるでしょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch