[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 15:32 / Filesize : 253 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

おまいら最強の麻雀プログラムしてみろよ Part2



1 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 21:47:50 ]
めざせ最強の麻雀プログラム!
層の薄いこのカテゴリーなら、将棋やオセロよりも
ずっと簡単にその地位を手にいれられるぞ!

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

318 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 15:18:21 ]
ぐだぐだ書き込んでないで
手を
動かせ

319 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 17:02:43 ]
>>317
リバーシ1

320 名前:デフォルトの名無しさん [2007/08/13(月) 22:35:22 ]
ほんと、見事な過疎っぷりだな

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

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

322 名前:デフォルトの名無しさん [2007/08/13(月) 22:53:18 ]
  
   「 ま と も な 」

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

323 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:20:52 ]
349氏のあげたソースはまともだと思うけどな

324 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 10:24:30 ]
みんな帰省しているのかな

325 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 13:58:47 ]
他のことに忙しいので放置中



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

327 名前:デフォルトの名無しさん [2007/08/28(火) 01:09:30 ]
過疎がスゴスwwww

328 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 15:19:24 ]
なんなんだろう
この熱しやすさと冷めやすさは

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

330 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:34:54 ]




331 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 18:47:37 ]
まず俺が麻雀弱いから無理
母親にも勝てない

332 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:08:34 ]
このスレに関係なく麻雀AI組んでるけど…

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

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

334 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:58:33 ]
>>333
証拠を見せろよ

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



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

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

338 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:19:55 ]
問題は一人麻雀でって事さ

339 名前:相互リンク mailto:age [2007/09/30(日) 18:33:30 ]

なぜ最近の犬学生は麻雀できない奴が多いの?
ex23.2ch.net/test/read.cgi/campus/1191128147/l10

★★★ 学校で麻雀を教えるべきだ ♪♪♪
school7.2ch.net/test/read.cgi/edu/1190440186/l10

なんで最近の若者は麻雀できない奴が多いの?
money6.2ch.net/test/read.cgi/mj/1159088315/l10

340 名前:デフォルトの名無しさん [2007/10/02(火) 00:49:33 ]
過疎化ワロスwwww

341 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 00:52:51 ]
麻雀は受け技が極められた競技ゆえ

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


343 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 03:58:16 ]
テンパイチェックからやれや

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

345 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:05:24 ]
麻雀勉強してくれば



346 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:03:04 ]
>>344
牌効率極めてから言えや

347 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 19:09:05 ]
個人的メモ

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

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

349 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 01:58:00 ]
群の字が違うしな

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

351 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 16:53:21 ]
けっきょく運の強い香具師には勝てない


352 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:03:50 ]
www.kohgakusha.co.jp/books/detail/978-4-7775-1331-4

353 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:48:06 ]
買ってみたいがこれ系の将棋の本が糞だったからなー

354 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:40:15 ]
買わなくてもWebにAPIが公開されてる

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



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

ttp://members.jcom.home.ne.jp/hennano/maujong/java/

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

358 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 14:32:49 ]
いろいろAI作っている人はいるけど将棋や囲碁みたいに同じ土俵で勝負しないのは自信がないからかね
kmo2.cocolog-nifty.com/prog/
doranizm.hp.infoseek.co.jp/
kmkz.jp/mtm/?load=mahjong

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

360 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 22:02:09 ]
同じ土俵って?

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

362 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:24:42 ]
それ神じゃないよ

363 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 06:17:03 ]
神はサイコロを振らない。

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

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



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

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

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

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

369 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:18:38 ]
>>368
ロンよりショーコ
PUでいいだろ

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

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

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

これよくね?wwwww

371 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:57:09 ]
そう思うんなら作れよ
それとも口だけ?

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

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

373 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:59:50 ]
いやそこははいはいワロスワロスだろ

374 名前:デフォルトの名無しさん [2008/01/10(木) 22:01:26 ]
スマン
ローカルルールは知らないwww

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

375 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 09:21:26 ]
女の子の画像も自分で作らせれば良くね?



376 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:48:46 ]
そんな面倒なことするくらいならリソース抽出

377 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:52:21 ]
女の子は全部LINE命令で描きます

378 名前:デフォルトの名無しさん [2008/01/12(土) 00:55:38 ]
萌え絵は当然暗号化

379 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 01:05:24 ]
いいだろう ならば猫飯

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

381 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:03:06 ]

 ワッフル ワッフル


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


383 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:03:41 ]
東風は特にないと思う
ハンゲは禁止

384 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:55:30 ]
素材作るのクソめんどい

385 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:41:09 ]
このスレっていつが最盛期なの?



386 名前:デフォルトの名無しさん [2008/02/26(火) 08:47:09 ]
 ワッフル ワッフル

387 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 18:46:09 ]
スーパーリアル麻雀のAIが最凶だろ

388 名前:デフォルトの名無しさん [2008/03/16(日) 11:22:59 ]
違う

389 名前:デフォルトの名無しさん [2008/03/23(日) 13:06:03 ]
あげ

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

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

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

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

394 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:21:18 ]
じゃんがりあんのOPが最強

395 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:51:28 ]
囲碁のMC法使って麻雀ソフト作れないかな?



396 名前:デフォルトの名無しさん [2008/04/11(金) 00:35:39 ]
MC法って何?

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

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

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

400 名前:デフォルトの名無しさん [2008/04/14(月) 22:59:41 ]
相手の牌もMCで

401 名前:398 mailto:sage [2008/04/15(火) 06:42:34 ]
>>399
自分用のをそのまま使う

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

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


403 名前:kmo2 [2008/04/19(土) 15:31:04 ]
蛇足気味ですが補足。

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

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

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


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

405 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:39:20 ]
ノーマーク爆牌党



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

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

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

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

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

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

409 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:52:47 ]
>>408
牌勢を読むのか。面白い試みだなぁ。

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

411 名前:kmo2 [2008/04/19(土) 16:04:27 ]
>相手の手を読むのは、効果低いと思うよ。

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

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

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

413 名前:kmo2 [2008/04/19(土) 16:19:46 ]
>411
自分で読み直して意味不明でした。すいません。

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

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

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

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

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

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

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



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

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

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


415 名前:kmo2 [2008/04/19(土) 16:24:57 ]
失礼,414は412への返事です。



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

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

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

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

420 名前:kmo2 [2008/04/19(土) 16:52:19 ]
>相手三人の最初のテンパイの確率が判らないのが困る所。

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

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

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

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


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

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

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

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



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

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



426 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 19:29:49 ]
まうじゃんのAIまだー

427 名前:デフォルトの名無しさん [2008/04/20(日) 19:30:10 ]
AI作成ツールまだー

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

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

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

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

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

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

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

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

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



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

437 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:44:47 ]
>>435
思考時間なぞどうとでもなる

438 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:47:27 ]
相手が思考している時間も使えるしな

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

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

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


www.geocities.co.jp/SiliconValley-PaloAlto/4984/knetmaj/index.html
www.vector.co.jp/soft/win95/game/se316229.html

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

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

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

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

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



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

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

448 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:58:12 ]
AIが心持長考しだしたらテンパイだと分かるのか

449 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:00:12 ]
テンパイ時と同じ時間waitを入れておく

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

451 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:07:28 ]
イーシャンテン、リャンシャンテンの判定は何秒くらいだっけ

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

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

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

455 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 01:31:34 ]
おまいら最強の〜系スレはどれも読んでる



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

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

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


457 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 06:35:36 ]
でもお前どうせリバーシ1だろ

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

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

460 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:20:45 ]
>>456
99%努力しろよ

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

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

www.amy.hi-ho.ne.jp/ishihata/maujong/iface.html

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

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

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


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

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



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

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

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

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

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

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

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

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

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

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

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

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




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

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

478 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:48:05 ]
カブロボの設定のみでいいやつみたいなやつキボンヌ

479 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 20:16:41 ]
専用言語を作るってのが一番確実だろうな

480 名前:デフォルトの名無しさん [2008/04/27(日) 22:41:36 ]
※麻雀ロジック研究会※
pc11.2ch.net/test/read.cgi/gamedev/1105332492/

481 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:38:05 ]
で、今のところ最強の麻雀ソフトは何なの?

482 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:05:31 ]
芹沢未来かな・・・

483 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:10:16 ]
ゲーセンのやつはインチキなんじゃ?

484 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 21:19:36 ]
イカサマが最強だって哲也も言ってただろ?

485 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 22:51:53 ]
インチキなしのアルゴリズム最強を知りたいよ



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

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

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

489 名前:デフォルトの名無しさん [2008/05/10(土) 10:44:32 ]
とりあえず、まうじゃんのAIよろ

490 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:54:36 ]
何この他力本願スレ

491 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 12:38:47 ]
元々、それで誕生したスレです

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

493 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:59:46 ]
おまいら最強のシストレFXプログラムをしてみろよ
pc11.2ch.net/test/read.cgi/tech/1211790540/

494 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:26:04 ]
役の複合って

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

の11個が最高?

495 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 23:07:16 ]
はいはいトイトイツモトイトイツモ



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


497 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 01:04:25 ]
立直はリンシャンにチェンジできる?

498 名前:デフォルトの名無しさん [2008/05/31(土) 01:17:21 ]
cocoa.2ch.net/mj/kako/981/981695407.html

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


符と役満
www.geocities.co.jp/SiliconValley-PaloAlto/8370/majan/majantalk.html

499 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 04:18:43 ]
>>498
その点数、場ゾロ忘れてないか?

500 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:20:31 ]
ロンならハイテイじゃなくてホーテイだろ

501 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:35:39 ]
>>500
大した指摘ではないな

502 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:05:26 ]
符点にも翻数にも影響ない罠

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

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

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



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

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

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


509 名前:デフォルトの名無しさん [2008/06/14(土) 10:18:14 ]
>>504
>>508

お前らにお願い

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

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

510 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:13:50 ]
まず牌データの構造を決めろよ

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


まうじゃん」対戦相手プラグイン インターフェース仕様
www.amy.hi-ho.ne.jp/ishihata/maujong/iface.html

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

第10回 麻雀の役を判定す

itpro.nikkeibp.co.jp/article/COLUMN/20070516/271225/?P=2&ST=develop
itpro.nikkeibp.co.jp/article/COLUMN/20070516/271225/

512 名前:デフォルトの名無しさん [2008/06/14(土) 20:20:21 ]
つかむしろ>>510には

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

を考えてよwww

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

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

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



516 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:03:14 ]
こんなDLL作って下さい

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


517 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:22:40 ]
それだけの引数じゃ足りない

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

519 名前:デフォルトの名無しさん [2008/06/21(土) 00:09:59 ]
>>518
チョンボしてるかどうか

520 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 04:00:10 ]
リーチ状況とか

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

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

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

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

523 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:43:44 ]
3枚一度にツモるコマンド、切り忘れコマンド他w

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

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



526 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 03:04:12 ]
てめーで作れ


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

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

528 名前:デフォルトの名無しさん [2008/06/22(日) 10:12:56 ]
>>516

itpro.nikkeibp.co.jp/article/COLUMN/20070516/271225/

529 名前:デフォルトの名無しさん [2008/08/01(金) 06:44:15 ]
保守age

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

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

532 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 01:03:02 ]
>>531
ほう

533 名前:デフォルトの名無しさん [2008/08/22(金) 08:20:51 ]
「まうじゃん」対戦相手プラグイン インターフェース 
www.amy.hi-ho.ne.jp/ishihata/maujong/iface.html

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

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



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

(処理概要)
-----

1. 洗牌・配牌

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

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

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

-----

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

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

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

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

 11122233388899

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

 111 222 333 888 99
 123 123 123 888 99

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

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

MJsim実行環境
www.rupan.net/uploader/download/1219482153.zip

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

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

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

MJsim実行環境
uproda11.2ch-library.com/src/11112772.zip.shtml

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

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

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

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

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

実は、

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

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

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

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

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

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

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

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



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

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

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

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

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

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

549 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:00:18 ]
>>546
まったり麻雀の人?まうじゃんの人?

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

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

552 名前:530 mailto:sage [2008/08/27(水) 22:19:28 ]
8月中に何か作りたかったのに牌の表示しかできなかった><

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

554 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 22:25:50 ]
C#でも使えばいいじゃん

555 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:09:55 ]
>>552>>553が一緒にやればいい




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

557 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:14:59 ]
じゃ、俺脱ぐ係ね。

558 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:19:12 ]
じゃ俺脱がす係


559 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:27:06 ]
じゃ俺見る係

560 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:31:44 ]
じゃ俺撮る係

561 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:35:45 ]
>>557,558
麻雀いらなくね?

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


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

564 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:21:37 ]
徹まん明けでタイーホかw


565 名前:デフォルトの名無しさん [2008/08/29(金) 00:24:50 ]
次スレ

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



566 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 00:35:55 ]
>>565
玉ねぎが主役か?

567 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:41:51 ]
最強の脱衣って、あれだろ

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

相手が天和

そしてゲームオーバー

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

568 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 06:28:02 ]
>>565 裸身活殺拳でおk?

569 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 11:50:17 ]
doranizm.hp.infoseek.co.jp/
これってRでいうとどの程度のものなの?

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

571 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:51:20 ]
制作物はともかくソースはいらんだろ

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

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

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

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

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



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

期限は今日中

577 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 13:29:06 ]
↑ゴミは黙っとけ

578 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 13:29:16 ]
以下スルーで

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

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

580 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:43:10 ]
俺は興味あるよ

581 名前:デフォルトの名無しさん [2008/09/03(水) 01:38:42 ]
います
需要あり

582 名前:デフォルトの名無しさん [2008/09/04(木) 00:31:42 ]
>>579


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

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


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



586 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:45:18 ]
しかし麻雀はできるだろ

587 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:54:40 ]
5人かよ〜ラス抜け?

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

589 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:07:24 ]
>>579
で、作るの?作らないの?

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

591 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 08:36:21 ]
チートイツアルゴリズム作ってみるわ

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

593 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 22:42:44 ]
>>592
30秒は無理w

594 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 22:46:40 ]
頭の中でなら書けそうだがタイプ的な問題で無理だ

595 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 23:52:58 ]
三十秒かどうかはさておいても、大概の役判定は結構短時間で組めるよね
んで、全ての役の中で一番面倒臭いのが平和という罠

597 名前:デフォルトの名無しさん [2008/09/07(日) 00:33:24 ]
符を数えて、20符という判定

598 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 00:38:17 ]
フリテン回避とか難しそうだ

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

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

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

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

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

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

 11122233388899

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

 111 222 333 888 99
 123 123 123 888 99

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

604 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:33:07 ]
リーチ
ツモ
トイトイ
www

605 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 09:56:15 ]
Javaで作ってみようかな対戦用システム

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



606 名前:デフォルトの名無しさん [2008/09/12(金) 02:22:20 ]
www.amy.hi-ho.ne.jp/ishihata/maujong/java/
www.amy.hi-ho.ne.jp/ishihata/maujong/java/mjai_iface.html
www.amy.hi-ho.ne.jp/ishihata/maujong/java/javadoc/current/jp/gr/java_conf/ishihata/mj_ai/package-summary.html

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

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

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

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

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

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

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

613 名前:0.0.0.0 [2008/09/12(金) 10:41:34 ]
じゃあ自分GUI作るね。

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

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

ルールはとりあえず、
237にある
ttp://mj.giganet.net/yaku.htm
でいいんでないかと思う。

615 名前:デフォルトの名無しさん [2008/09/12(金) 13:19:45 ]
こっちがいい。
日本プロ麻雀連盟競技ルール|日本プロ麻雀連盟
www.ma-jan.or.jp/guide/game_rule.php



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


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

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

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

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


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

622 名前:デフォルトの名無しさん [2008/09/14(日) 19:32:24 ]
mahjong.ara3.net/ymt/diary/index.htm

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

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

624 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 22:33:44 ]
>>622
一日で進みすぎワラタ
GJ

625 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 01:38:23 ]
作ってたのあらさんだったのか。これは期待できる



626 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:25:27 ]
お、あらさん久しぶりだねえ

627 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 23:24:05 ]
>>626
あ、久しぶり。ってどこかでお会いしました?

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

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

日本プロ麻雀連盟競技ルール|日本プロ麻雀連盟
www.ma-jan.or.jp/guide/game_rule.php

629 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 01:08:20 ]
>>628
がんばってね

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

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


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

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

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

634 名前:632 mailto:sage [2008/09/21(日) 01:35:17 ]
>>633
そういう意味じゃなくて、SMTPやPOP3のようなASCIIベースの
プロトコルが良いってこと。

635 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 03:23:53 ]
だったら参考にするのはコーヒーポットプロトコルだな。



636 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:49:01 ]
>>633
理解力なさ過ぎて吹いたw

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

638 名前:デフォルトの名無しさん [2008/09/22(月) 00:39:28 ]
XMLでいいよ

639 名前:デフォルトの名無しさん [2008/09/22(月) 01:07:10 ]
こーいうの作ってください><

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

www.geocities.jp/shogidokoro/usi.html

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

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

642 名前:デフォルトの名無しさん [2008/09/23(火) 00:53:19 ]
こんなんでいいんで作ってください?><

bon4714.0web.cjb.net/BQjara/

643 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 01:22:37 ]
ソース公開したらいかさまし放題じゃん

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

645 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 01:51:12 ]
俺用メモ
>570 == >572 == >574 == >576 == >630 ==>637 == >639 == >641-642



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

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

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

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

648 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 17:51:15 ]
MJSimのC#版みたいなの作ってるんだけど、こんなのどう?

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

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


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

サーバサイドとしては

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

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

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

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

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

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

653 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 19:22:50 ]
>>649
もうちょっとほぐしてみた。

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

・マッチメイク
 別途

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

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

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

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

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


654 名前:632 mailto:sage [2008/09/23(火) 19:32:32 ]
>>651
スマン、早まってプロジェクト申請しちまったw

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

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

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

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



656 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:06:38 ]
>>655
まずは麻雀を打てることが大事だ

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

658 名前:632 mailto:sage [2008/09/23(火) 21:28:09 ]
>>655
統計を取るためにも、三文プログラムが必要だと思うけど?

659 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:35:35 ]
>>649
wikipedia より
牌譜(ぱいふ、はいふ)とは、麻雀の自摸や打牌などの動作(摸打)、点数の得失などを記録したもの。野球のスコア、囲碁・将棋の棋譜などに相当する。
ja.wikipedia.org/wiki/%E7%89%8C%E8%AD%9C

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

661 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:25:24 ]
動かないよりは意味がある

662 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:32:17 ]
下を見てもしょうがない
上を見るんだ

663 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 23:28:26 ]
下がなければ、上には行けないんだが

664 名前:648 mailto:sage [2008/09/24(水) 01:05:01 ]
反応なしで寂しすぎるが、とりあえずうpする。
migumi94.nobody.jp/dennoso/

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


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



666 名前:デフォルトの名無しさん [2008/09/24(水) 09:48:06 ]
ルールはこれで

act0.net/cgi-bin/source/up0280.txt

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

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

669 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:25:34 ]
>>665>>668

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

頼んだぞ

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

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

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

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

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

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

674 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 19:54:34 ]
>>666のルールで作ってみるか

675 名前:632 mailto:sage [2008/09/24(水) 21:15:15 ]
とりあえずSourceForgeでプロジェクトが立てられたので、
Wikiにざっとコマンド案とかを書いてみた
sourceforge.jp/projects/openmj/wiki/FrontPage

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



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

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

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

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

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

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

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

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

682 名前:678 mailto:sage [2008/09/24(水) 23:02:07 ]
>>681
ごめん、勘違いしてた

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

684 名前:632 mailto:sage [2008/09/24(水) 23:09:04 ]
>>682
いえいえ、色々抜けはあると思うので指摘して頂けるのは
嬉しいです(^^

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

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

685 名前:632 mailto:sage [2008/09/24(水) 23:12:45 ]
ドラはそのものじゃなくて、表示牌を送らないと、
赤牌が表示牌の場合に対応できなかった。



686 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:23:08 ]
リンシャンの通知は?

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

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

689 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:27:14 ]
>>687
それは無しって事になってるのでは?

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

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

691 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:48:13 ]
カンしたときのリンシャン牌の通知はツモコマンド?


692 名前:632 mailto:sage [2008/09/24(水) 23:51:13 ]
>>691
そのつもりです。
リンシャンツモを特別扱いする必要ってあるでしょうか?

693 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:58:43 ]
クライアントでも計算できるけどサーバに通知してもらえた方が
楽になることってどういう扱い?ツモったときの山牌の残り枚数とか
今はkyokustartで親を通知してもらってるけど、これなんかも
gamestartを作って最初に誰が親かを通知してもらえればいらない気が

694 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:07:49 ]
sute<プレイヤー><牌>にツモ切りなのか
手牌から出したのかのフラグがあるといいかも

695 名前:691 mailto:sage [2008/09/25(木) 00:10:41 ]
>>692
いえ、設計者の趣味の範囲なので、とくにどっちがいいという訳では無いです。
もし必要ならカンしたプレーヤーの直後のツモはリンシャンって処理するだけだし。

ただ、仕様としては、どっかに明記してあった方がいいかなと。



696 名前:632 mailto:sage [2008/09/25(木) 00:11:37 ]
>>693
特に指針は決めてないんですが、基本的にはセッションは1局単位で
完結するようにしようと思ってます。

途中接続が切れた場合も、局の途中では戻れないが、次の局から
戻れる、みたいな。

なので、局が始まるときには、クライアントがその局の処理をするのに
必要な情報は渡すという感じです。

で、同じ面子で複数のセッションを繰り返すことで、半荘が成立すると。

ただこの辺はこれから実装して行くにつれて、色々変わって行く予感が
します(^^;

697 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:13:12 ]
それぞれの牌にユニークなID振っていればツモハイ提供側で判別つくと思う
同じ種類の牌で手出しすることもあるけど、それはツモ切りではなくなるよね

698 名前:632 mailto:sage [2008/09/25(木) 00:20:18 ]
>>695
ちょっと現状では必要性が感じられないので、
いったん保留とさせて下さい。

>>694
ああ、そうですね。それはあった方が良いな。
ありがとうございます。

個人的には空切りはキライなので、ツモ牌と同じものを
切ったらサーバ側でツモ切り扱いしたいんだけど、さすがに
それはマズいですよね(^^;

オカルトシステムNo.65「空切りは勢いを消す!」やw

699 名前:632 mailto:sage [2008/09/25(木) 00:23:18 ]
>>697
なるほど!それは考えつかなかった。
ちょっとプロトコルを通す情報が(人間から見て)わかりにくくなるけど、
そうすれば確かにツモ切り判定はわかりやすいですね。

700 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:42:33 ]
強いプログラム(AI)を目指してるのにいきなりネットワーク対戦プログラムなんて目的を見失ってないか?

701 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:46:19 ]
>>698
ベタオリ処理で手出しから筋見てる部分があるので
空切りはツモ切り扱いでも構わなかったり(汗
それだと自分と同じベタオリ処理してる相手がいる場合のみ
立直側になったときにちょっと有利になるくらいかな?
ま、どっちでもいいです

702 名前:632 mailto:sage [2008/09/25(木) 01:13:40 ]
>>700
自分としては、強いAIを作るための環境でもあるつもりです。
ただ、無駄に遠回りしているとは思います(^^;

もしスレ違いだという声が多ければ移動しますが、せっかく
何人かの方には反響を頂いているので、できればここで
話を続けさせてもらいたいです。

>>701
普通の麻雀でも、空切りを禁止した方が知的なヨミの要素が
増えて面白くなると思います。
ただまあプロトコルでできなくするのはマズいので、何か考えます。

703 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:20:35 ]
>>702
プロトコルの策定は、プログラマ魂が湧き上がってくる話題で楽しいし、別に良いと思うのだが、あまり意味が無いかもしれないな。

というのも、実際はクライアント側にも共通基盤を作るはずで、
ネットワーク ---> クライアント共通基盤 ---> ユーザAI
結局プロトコルは共通基盤の開発者だけがわかっていれば良く、どちらかといえば共通基盤のIFを決めたほうがいいかもね。


704 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:22:11 ]
プロトコル=IF

705 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:28:42 ]
>>703のつづき
そういう意味では、とりあえずローカルで動くものを作っておいて、後でネットワーク対応にしても良いかと。

麻雀はルールや点数計算が複雑なため、これらを全員が作るのは明らかに無駄で、
クライアント側にもどうせサーバと同等以上のライブラリが必要でしょう。




706 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:31:39 ]
>>704
それは現実的じゃないと思うって事を言いたいのだが・・・

707 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:44:24 ]
いまの時点でのプロトコルはどう考えても、ネットワークプロトコルを指してないだろ。
管理プログラムとAIの通信方法。

708 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:54:39 ]
>>707

話がかみ合ってないかな?
wikiには、「オープンなネットワーク麻雀のプロトコルを策定し」、「TCPを介した通信」って書いてあるけど・・・
それと管理プログラムって何?


709 名前:632 mailto:sage [2008/09/25(木) 02:55:20 ]
>>703
まさにおっしゃる通りで、プロトコルの策定とか、わざわざ遠回りな
ことをしているのは「好きでやってる」というのが一番です(^^

そして、プロトコルを策定したとしても、クライアント共通基板(SDK的なもの)
が必要になるだろうというのは自分もそう思います。

ただ、色々なプログラムを対戦させたり、サーバ側でちょっと特殊な集計を
したいと思ったときに、共通プロトコルで動いているというのは価値が
あるのではないでしょうか。

とりあえず、前述した通り個人的に好きでやっているので、
生暖かい目で見守って、ときには意見やコードなんか頂けると
嬉しいです。

710 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 04:38:09 ]
>>709
>共通プロトコルで動いているというのは価値があるのではないでしょうか。

あってもいいと思うのだが、コース料理でいえばデザートの部類ではないかと。

実際に動くAIが出てくるかどうか。
まずは、簡単にローカルで動く環境の提供が必要と考える。
要は、まずSDKから作ってみては?という意見でした。


711 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:53:11 ]
オレはAIよりも、こういったシステムを作るほうが好きなので
こっちの話のほうが参加しやすいんだよなあ

712 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:07:21 ]
システム作ったあと、AIはGP組み込んで、あとはぶん回しておけば
勝手に最強になるんじゃね?

713 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 20:20:54 ]
SourceForgeの中の人はどこのルールで作ってるの?

714 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 20:28:27 ]
ルールはこれで コンピュータ対戦向けのオリジナル
プロルールに基づく


act0.net/cgi-bin/source/up0280.txt

715 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 23:27:41 ]
101競技連盟、最高位戦日本プロ麻雀協会、日本プロ麻雀協会
日本プロ麻雀連盟、日本プロ麻雀棋士会、麻将連合

どれもルール違うだろ。「プロルール」なんてものは無い



716 名前:632 mailto:sage [2008/09/25(木) 23:39:10 ]
ルールについては、今のところそんなに深く考えていません(^^;

まず、プロトコル(UMP)ではルールを規定しません。
それどころか、UMPではサンマでも青天井でも可能にする
想定です。
# ぶんぶんレジデンスの100人麻雀もできるようにしたかったけど、
# 現状だとプレイヤーをアルファベット1文字で表すので無理

ルールはサーバの実装次第なので、実際に動き始めてからでも
問題ないかと。
クライアント(UI)も、UMPにきちんと対応すれば、どんなルールで
あったとしても動作するハズです。

ただし、このスレの本旨であるAIを作るとなると、ルールによって
考えなければいけないことが変わるので、そのステップまできたら
ちゃんと考えないといけないと思います。

717 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 00:38:08 ]
ふむふむ、だったらオープンリーチの対応もおねがいします。

718 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 00:38:32 ]
>>711
あーそうか。
全員がAI作成を最終目標にしてると思い込んでたから、>>710とか書いてしまったが、
例えばプロトコルだけ考える人ってのがいてもいいわけか。
>>632さんはどこまで自分で実装する予定なんかな?


719 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 01:21:11 ]
確かに棒聴即立で立直にベタオリだと立直時ツモ和了率六割越すけどプンリー有りは微妙・・・


720 名前:632 mailto:sage [2008/09/26(金) 01:30:50 ]
>>717
オープンリーチ好きな人が多いなw
同じ人?
とりあえず仕様に追加しました。

>>718
自分としては、プロトコルの策定&サーバプロセスの実装、
テスト用クライアントの作成まではやるつもりです。
できればWindows版のクライアントを作ってくれる人が
現れてくれると、すごく嬉しいです(^^

721 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 01:49:13 ]
確かに棒聴即立で立直にベタオリだと立直時ツモ和了率六割越すけどプンリー有りは微妙・・・

722 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 02:32:33 ]
>>720
オープンリーチは待ちのわかる牌だけ晒すルールもあるので、
晒す牌の選択はクライアント側ではないかと。

プロトコルが対応してないから採用出来ないルール、ってのは
出来るだけ無い方がいいでしょ?

723 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 02:37:48 ]
>>722
サーバーは待ちのわかる牌を自動判別出来るはずだから、サーバーが決めるんでいいじゃん。


724 名前:632 mailto:sage [2008/09/26(金) 02:38:05 ]
>>722
んにゃ、全部晒すかどうかもサーバ側で決定します。
どうせサーバ側では不正をチェックしなければいけないので。

一部だけ晒せばOK、というルールのサーバのときに、
すべての手牌を晒したい、というときには問題になりますが、
それに対応する必要性は感じないんですが、どうでしょうか。

725 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 02:54:15 ]
たとえば、23456と持っていて56を晒してオープンリーチ、ってのが許されるルールはありか?
とかいう話かな。
もちろん、4,7のツモ上がり前提で。



726 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 03:31:50 ]
>>724
>それに対応する必要性は感じないんですが、どうでしょうか。
プレーヤーにとって意味ある事かどうかは、
プロトコル側では関知しないっていうポリシー
だと思ってたけど、違った?

727 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 07:28:21 ]
まずはルールはこれでいいだろう
act0.net/cgi-bin/source/up0280.txt

728 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:13:05 ]
>>632
open<プレイヤー><手牌>で手牌全部見せたときと
鳴いた面子だけ見せたときのコマンドが一緒になると
クライアント側で牌の数チェックする手間がでるんで
手牌か面子(ポン・チー/カン)かのフラグが欲しいです


729 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:23:48 ]
情報にはノイズ乗せないの?

730 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:52:12 ]
打牌に制限時間設けないとひたすらぶん回し続けるAIが出てくる予感
一秒制限の早差し勝負とかもやってみたい

731 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 23:36:33 ]
通信が遅れる可能性は十分考えられるので
サーバ・クライアント共に何回目のackかを示す情報も必要かも

732 名前:632 mailto:sage [2008/09/27(土) 15:12:38 ]
>>725
さすがにそんなルールは聞いたことないですが、もしかしたら
1が枯れている場合はOKとかはあるかもしれません。

>>726
おっしゃる通りです(^^;
ということで、とりあえずopenrichiコマンドに晒したい部分の手牌も
指定できるよう仕様に追加しました。

733 名前:632 mailto:sage [2008/09/27(土) 15:13:04 ]
>>728
openの手牌は、手牌の表記に則るので、
和了ったときは open A 1m2m3m4p5p6p7s8s9s1z1z1z2z2z
ポンのときは open A <3m3m3m>
チーのときは open A <1p2p3p>
暗槓は open A (8s8s8s8s)
となるので、クライアントでも容易に区別できると思います。

>>729
ノイズって、どういうことでしょうか?

734 名前:632 mailto:sage [2008/09/27(土) 15:17:57 ]
>>730
実際に運用するとなると、時間制限は必要になると思いますが、
実験段階では、ひたすらぶん回して、それこそ1打1時間とかかけたとしても
本当に強いAIが出てくるなら、それはそれで面白いんじゃないでしょうか。

>>731
コマンド形式のところにある<センテンスID>というのがそれです。

ちなみに、最初はサーバから1コマンド送るごとに必ずクライアントの
ack(okコマンド)を待っていたのですが、実装してるうちに不要な気が
してきたので、必要なとき以外はクライアントからの返答を待たない
ようにしました。

735 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:21:19 ]
1打1時間掛かったら強いことが調べられない



736 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:33:13 ]
>>632
をを、プロトコルが強化されてる、乙かれ。

737 名前:632 mailto:sage [2008/09/27(土) 15:37:46 ]
>>735
人間相手だと、さすがに人間の方が耐えられないだろうけど、
AI同士なら別に1打1時間かかるのもアリじゃない?
まあでも実際、将棋や囲碁に比べれば、麻雀はプレイヤーの
できることが少ないから、さすがに1打1時間はないと思うけど。

>>736
実装しながらなので、随時変更してってます(^^;

738 名前:632 mailto:sage [2008/09/27(土) 15:39:46 ]
ちなみに、開発途中ではありますが、ソースコードをSourceForgeの
SVNに随時commitしているので、興味のある方は
svn.sourceforge.jp/cgi-bin/viewcvs.cgi/?root=openmj
から拾って下さい。

739 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:47:07 ]
AIどおしでも1時間は無いよ。 たとえば一手3秒以内で1日中動かして統計を取ったとする。
これを一手1時間以内でやったら、同じ回数をこなすには1200日掛かることになる。
3年以上掛けてパソコンを動かさなければ強さが判らない。

740 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:51:03 ]
PC1台で検証するならそうだな

741 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:51:27 ]
PCの性能で応答時間は異なるけど、一つが遅ければ全体に影響するから
平均応答時間程度にするとかにして、時間切れはツモぎりとかのほうがいいとはおもう。

742 名前:632 mailto:sage [2008/09/27(土) 15:58:26 ]
実際に色々なAI同士を戦わせてみよう!となったら、
麻雀のルールの他にも決めなければいけないことは
あると思います。
それこそ制限時間とか、あるいは鳴くかどうかのラグを
情報として使うのはアリか、とか、相手のAIの傾向を
「最初から」入れておくのはアリか…等々。
いうなれば大会のルールみたいなものですね。

743 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 16:06:22 ]
一手に3秒もかかったら、まともな統計は取れないですね

744 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:55:36 ]
>>729
733のいうノイズは、おそらく意図的な情報伝達ミスだろう
麻雀でいうなら見間違いとか切り間違いとか

ゲーム理論の研究ならノイズも必要だけど、麻雀サーバには無用な仕様だよね

745 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 19:06:32 ]
ルールは実在ルールの中でもAIにとって処理しやすいものが良いと思う。



746 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 20:24:35 ]
>744
エラー処理あるいはテスト仕様としては必要かも知れないよ。

つまりクライアントやサーバーが全く期待していない
矛盾した情報を受け取った時に何を返すべきか?
意味不明だと単にエラーを返すか、通信にリトライを要求するか?

そこまで仕様として決めておくのは面倒ではあるが、
下手をすると一回の通信エラーで全体が一気に倒れかねない。

747 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 21:00:00 ]
今の仕様だと誤ポンも誤ロンもサーバが無視なのか・・・
クライアントが矛盾したロンやリーチしたら
それはそういうときの処理をした方がいいのでは?

748 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 21:28:36 ]
ルールとプロトコルが直行するように決めるなら
ダブロンとかの扱いもちゃんとしておかないと

749 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 21:50:04 ]
「コンピュータ麻雀のアルゴリズム」なんて本が出てるんですね。
Amazonのおすすめに出てきて驚きました。

750 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 22:44:26 ]
>>747
誤ロン誤ツモはチョンボだろ
ノーテンリーチはかけられるようにしとかないと
戦略の幅が狭まる

751 名前:632 mailto:sage [2008/09/27(土) 23:31:05 ]
>>747
自分の考えでは、誤ポンや誤ロンは、麻雀とってはまったく
不要な要素だと思っています。
極端な話、山を崩すのとたいして変わらないくらいで、
コンピュータ上で麻雀を打つなら、発生させないように
するのがベストではないでしょうか。

ただ、>>750の言う通り、ノーテンリーチについては戦術として
考えることもできるので、それは悩ましいところです。

>>748
一応現状のプロトコルの仕様でもダブロンは発生させることが
できると思います。
ただ、自分が作るサーバの実装では入れるつもりはありません。

752 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:57:59 ]
チョンボはありだろ。 役満がほぼ出るならチョンボして流すという手もあり得る

753 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 09:53:14 ]
なら、>>752 がチョンボあり版を作ればいいじゃない

754 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 15:00:06 ]
>>751
極端な話、その仕様だとクライアント制作者は和了判定を素っ飛ばして
とりあえず毎回サーバに和了コマンド送信する処理でもいいことになる
まあ毎回でなくとも形聴取ったなら海底河底で一応和了っておけみたいな
錯和が不要という考えは分かるけど何かしら対策はした方が良さ気

755 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 02:02:32 ]
そもそもサーバにそういった情報も問い合わせられるようにするなら
そんな心配は無用



756 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 14:42:31 ]
ouc.daishodai.ac.jp/facilities/ams_labo/publication_bulletin.html

これの麻雀研究特集号を読んだ人いますか? どんな内容でしたか?
「麻雀のベストプレイは存在するか」が気になる

757 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:24:53 ]
鳴きのアルゴリズムって、基本的に

鳴いた場合の期待値 > 鳴かない場合の期待値

の時に鳴くって考え方でおk?

758 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:28:24 ]
>>757
一発消しだったり、自分が上がれる確率まで含めての期待値だったり

759 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 21:13:42 ]
>>757
ま、どんなときでも期待値の高い選択をすればそれでいいわけで、
期待値が計算出来ないってのが問題ということです。
www.ara3.net/hmr/expect.htm

760 名前:632 mailto:sage [2008/09/29(月) 23:46:31 ]
>>754
> その仕様だとクライアント制作者は和了判定を素っ飛ばして
> とりあえず毎回サーバに和了コマンド送信する処理でもいいことになる

別にそれでも全然構わないと思ってるんですが、問題あるでしょうか?

761 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 01:27:00 ]
ある

そんなのは麻雀AIじゃない

762 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 01:31:02 ]
二歩を指した将棋AIが負けを宣言されるとするならば
誤ロンした麻雀AIはチョンボを取られるべきだ
なぜなら、それが麻雀というゲームのルールだから

763 名前:632 mailto:sage [2008/09/30(火) 01:48:11 ]
>>762
将棋の場合は二人なので、片方に対するペナルティは、
必ず対戦相手の利益になりますが、4人で打つ麻雀の場合、
あるプレイヤーに対するペナルティが、他の3人に対して公平で
ないのが問題です。

そう考えると、可能な限りペナルティが発生しないというのが
理想だと自分は思います。

764 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 01:56:28 ]
>>760
抜け道があると「UMPでは最強かも知れないけれど〜」みたいな
グタグタな流れになるので、できれば対策して頂きたいです
錯和してるのに続行は問題なんで、和了放棄とか特別ルールはどうですか?

765 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 02:04:15 ]
>あるプレイヤーに対するペナルティが、他の3人に対して公平でないのが問題です。
チョンボは親子関係なく3000オールって雀荘もありますけど、それでどうですか?



766 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 02:10:18 ]
標的が和了するのを阻止するためだけに
わざとチョンボされるかもしれない問題ってのも
考えられるからルール設定の扱いにしては?

有効、無効はサーバ側で決定
局or半荘開始時にサーバからクライアントに送信される形で


767 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 02:16:02 ]
補足しておく
ハコテンで半荘終了であるとする

ある局で特定のクライアントがトップ目であるとき
チョンボクライアントが常にチョンボすることで
半荘のトップ目をとらせるという戦略が考えられるなぁと

768 名前:632 mailto:sage [2008/09/30(火) 03:29:23 ]
チョンボについて意見が多く、それに対して自分の見解をまとめて
みたんですが、あまりに長文になってしまったので
sourceforge.jp/projects/openmj/wiki/chombo
に書いておきました。

769 名前:632 mailto:sage [2008/09/30(火) 03:37:16 ]
ちょっと書き逃げみたいになっちゃいましたが、自分としてはまず、
UMPでのサーバ/クライアントで麻雀を打てるようにする、というのが
第一にあります。

その次に、チョンボも含めたルールとか、あるいは実際にどこかにサーバを
立てるのか、どう運用するのかということを考えなければいけないと
思いますが、現状その段階についてはあまり具体的に考えていません。

# 正直、チョンボ云々より、実際サーバプログラムを作ったとして、どこで
# 動かしたら良いかの方が悩みです(^^;

もちろん議論自体は活発に行われるのは良いことだと思いますが、
とりあえず自分の現状のスタンスを表明しておきたかったのです。

770 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 18:59:55 ]
まあテスト用のサーバとしてうちで提供してもいいよ。
RDBMSを積極的に使ったシステムがいいなあ。

771 名前:デフォルトの名無しさん [2008/10/01(水) 00:31:11 ]
つかさ、

チョンボの有無
ハコテンの有無
ノーテンリーチ、オープンリーチの有無
パオの有無
等など、、、

そんなのパーラメータ化して、サーバごとで管理できるようしろよw

2chだって"SETTING.TXT"で、板ごとの要求に合わせて
設定されてるんだし、ちゃんと参考にしとけよ

kobe.cool.ne.jp/r_030/2ch_jikken/SETTING.htm

sourceforge.jpで新しいプロトコルの作成を目指すなら、
それくらいの気のきいた仕様をちゃんと考えてからにしとけ

772 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:38:37 ]
>>771
基本姿勢が決まってないととりあえず動かすためのクライアントを作るのが難しいぞ

773 名前:デフォルトの名無しさん [2008/10/01(水) 01:11:34 ]
一番言いたいことは、個人で採用したいルールはサーバー側では
簡単に定義できるような柔軟なプロトコル仕様であって欲しいということ。

基本段階で決定するような、麻雀のルール決めはサーバ管理者の
裁量に任せればいいが、プロトコルの仕様という話ならば、
どんな特殊なルールであっても、単純に組み込めるようになってないと、
そもそもプロトコルとしての意味が無い

東風荘や麻雀ファイトクラブで採用してないような
オープンリーチやフリテンリーチが固定で組み込
まれているようなプロトコルになるなら、絶対に使わないし、いらねえ

774 名前:632 mailto:sage [2008/10/01(水) 01:29:12 ]
何度も繰り返しになりますが、UMPでは麻雀自体のルールは定義する
つもりはありません。つまり、「クイタンあり」みたいな情報をUMPでは
流さないで済むように考えています。

クイタンありかなしかはサーバの実装次第で、クライアントの実装では、
クイタンで和了ろうとして、サーバにコマンドを送って初めてわかります。

これだと問題だ!と考える方もいると思いますが、クライアントが人間で
あれば、例えばサーバのHPとかに書いておけば良いし、AIだとしても、
どんなルールにも自動で対応するAIというのは、手間がかかるわりに
難しいので、それを考慮する必要はないと思います。
それこそAIを動かす際のオプションで指定すれば済む話です。

>>771のように、パラメータを受け渡しする方法だと、そのパラメータを
策定しなくてはならず、無数にある麻雀のルールの洗い出しとまとめが
必要になり、それこそ気の利かない仕様だと思います。

775 名前:632 mailto:sage [2008/10/01(水) 01:31:20 ]
>>770
そう言って下さる方が現れるのを期待していました(^^
もしよろしければ、SourceForgeの方に自分のメアドが
ありますので、そちらにメールを頂けますでしょうか?



776 名前:デフォルトの名無しさん [2008/10/01(水) 01:39:01 ]
>>774
了解です。それでいいと思います。

 クライアント→サーバ
 サーバ→クライアント

で、やり取りされるアクションや情報が全て網羅されることを期待しています。

個人的な要望としては、誰かがロン・ツモで上がったときや流局のときに
手牌を倒したプレーヤの手牌情報は取得できるようにして欲しい。

この手の仕様では、サーバ側が必要とする情報だけしか定義されていなくて、
クライアントからでは情報が取ってこれないということがよくある。
ランダムに吐くログを整形して自分で作りこみをしないといけなかったりする。
それは単純化して欲しい。

777 名前:デフォルトの名無しさん [2008/10/01(水) 01:46:22 ]
何度も繰り返しになりますが、UMPでは麻雀自体のルールは定義する
つもりはありません。つまり、「クイタンあり」みたいな情報をUMPでは
流さないで済むように考えています。

クイタンありかなしかはサーバの実装次第で、クライアントの実装では、
クイタンで和了ろうとして、サーバにコマンドを送って初めてわかります。

↑ ↑ ↑

この文章を整形して、フロントページの前提に書いた方がいいんじゃね?
このプロトコルのコンセプトがはっきりして、初めて来た人にも分りやすい

sourceforge.jp/projects/openmj/wiki/FrontPage

778 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 01:55:46 ]
実装無ければ無意味。 まずは実装(サンプル)をうpしてほすい

779 名前:632 mailto:sage [2008/10/01(水) 02:43:52 ]
>>777
FrontPageに>>776さんの「アクションや情報が〜」の言葉も頂いて
追加しておきました。

>>776
現状の仕様では、和了ったときには
say <プレイヤー> ron または tsumo
open <プレイヤー> <手牌>
agari <プレイヤー>
の順にクライアントに送られます。

流局のときには、
ryukyoku
の後に親から順に
open <プレイヤー> <手牌> もしくは
close <プレイヤー>
が送られてきます。

手牌の公開をすべてopenコマンドに統一したので、逆にわかりにくくなって
しまったかもしれません。
コマンドの定義とは別に、本来はこういうフローも定義しないといけないんですが、
まだまとめきれていません(^^;

780 名前:632 mailto:sage [2008/10/01(水) 02:46:58 ]
>>778
まさにその通りで、実際に動作する実装があれば、もうちょっと
具体的な話もできるようになるんですが、現在鋭意制作中で
ございます(^^;

前にも書きましたが、ソースは随時SourceForgeのリポジトリに
commitしているので、興味のある方は参照して下さい。

でもできるだけ早く、ある程度のものをリリースしたいとは思っています。

781 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 12:48:43 ]
ちょっと見たけど、牌は全てユニークなIDでやり取りしたいなあ、16進で2桁で済むでしょ?
あと、進行は全て実際と同じようにサイコロ2回振って山のどこから切り出すとか、
サイコロの出目も含めて記録したい。
山を提供するだけ、サイコロを提供するだけ、それらのやり取りを全て記録し、牌譜が出せるやつまで
別に持っていたいのだけど。(ここでDB使う)

782 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 17:21:30 ]
第三者から見ると有る程度動く物が出来てからじゃないと無意味な議論を重ねてるようにしか見えないのだが?
どうせ鋭意制作中とか言っても完成まじかで「本業or学校or卒論等が忙しくなり・・・」で結局完成しない良くあるパターンに陥るのがみえみえ。

少しは完成させてからでも遅くは無いと思うんですが、どうなんでしょうかそんへん?

783 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 17:24:05 ]
SourceForgeにあがったコード見ながら、サーバで試しに動かしながらレスしてるのだけど。

784 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:45:22 ]
>>774
>クイタンありかなしかはサーバの実装次第で、クライアントの実装では、
>クイタンで和了ろうとして、サーバにコマンドを送って初めてわかります。

え、事前にサーバーにルールを問い合わせたりできないの?

785 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:56:16 ]
ルールのすり合わせの方法とかは必要なら追加になるだろうね。
AI前提だと、先にルールがある気がしないでもないが。



786 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:04:37 ]
ルールはその卓に固有のものなんだから
HELLOコマンドに乗せて最初に通達されるもんじゃないだろうか
実際の卓でも初めて打つ人とはレートとか先付けとか確認しておくよね

787 名前:632 mailto:sage [2008/10/02(木) 00:07:47 ]
>>784-786
自分の考えは>>774に書いた通りで、ルールをサーバとクライントで
通信に乗せてやりとりする必要はないと思っています。
もしそれで問題だと思うのであれば、具体的な例を示して頂けると
助かります。

ただし、>>786の言うように、helloコマンドである程度の情報を渡すのは
アリかなと思っています。しかし、それに依存したクライアントを作るのは
推奨しません。

788 名前:632 mailto:sage [2008/10/02(木) 00:13:31 ]
>>781
それぞれの牌にユニークなIDを振るのは、前にスレで提案頂いてから
検討してみましたが、結局止めました。
一番大きな理由は、牌の表記を現状の'1m'とかから変更するのに
良い案が浮かばなかったからです。
別に可読性は気にする必要はないのかもしれませんが、一応telnetでも
クライアントと成り得るのを目指していたので(^^;

サイの目に関しては、まったく意味がないので外していたんですが、
割れ目などを実装する際に必要になるのでUMPに追加しました。

それ以外のDBを使うという部分は、ちょっとイメージが良くわかなかったの
ですが、UMPというよりサーバの実装の話であれば、どうとでも対応できる
と思います。

789 名前:デフォルトの名無しさん [2008/10/02(木) 00:31:21 ]
コマンド一覧を眺めて、何点か気になる点があったので、
指摘事項を記載。

■「naku?」アクション後のリアクションについて
あるプレーヤーが捨牌後、残りのプレーヤーに対して
「naku?」コマンドが送信されるが、仮に3人とも「no」だった
場合に、現行の仕様では何もコマンドが返されない。

一応、3人とも「no」だった場合は、例えば

 say 0 noact

みたいなコマンドは発行した方が良いのでは?
すると、クライアント側では以下のような動きになるが
どうだろうか?

sutehai?→自家捨牌(sute)→リアクション無し(say no)→下家捨牌(sutehai)→naku?
→鳴かない(no)→リアクション無し(say no)→対面捨牌(sutehai)→naku?

790 名前:632 mailto:sage [2008/10/02(木) 00:35:59 ]
>>789
具体的な指摘、嬉しいです!
その状況では、noactの代わりに、他家のtsumoコマンドが送られる想定です。
つまり、tsumoコマンドは自分がツモった場合でも、他家がツモった場合でも
全員に送られます。

ちなみに鳴きの処理はまだ全く手つかずなので、実装していくうちに変更に
なる可能性もあります。

791 名前:デフォルトの名無しさん [2008/10/02(木) 00:37:05 ]
■他家の長考時について
「naku?」コマンド発行したタイミングで、2人はリプライが
あったが、残る1人からのリプライが無かったときに、
リプライを返した2人はサーバからの応答が無いまま
ずっと待っていることになる。

サーバは長考しているプレーヤーに対して、再度「naku?」
コマンドを発行して催促すると同時に、残りのプレーヤーには、

wait <プレイヤー>

というコマンドを発行して、今1人長考に入っていますと、
知らせてみてはどうだろうか?

792 名前:デフォルトの名無しさん [2008/10/02(木) 00:46:45 ]
「コマンド一覧」を眺めていて、自分の中で仕様を考えてるうちに、
単純化されたシステムを構築したいなら、CGIで十分だなと思えてきた。

とりあえず、サーバー内でタイマーを持たせて、
「10秒以内に返信が無いと、強制ツモ切り」という粗い感じの
仕様なら、そんなに難しくないと思う。

サーバ側から「もしもし捨牌が遅いですよ」と返信が来る様な
優しい仕様としたいなら、サーバとクライアントの双方向で通信
できるようなsocketのサンプルが無いと開発は難しい気がする

793 名前:デフォルトの名無しさん [2008/10/02(木) 00:54:44 ]
>>790
了解です。

[鳴き無し]
tsumo <自分> <残り枚数> <牌> →sutehai?→自家捨牌(sute)→tsumo <下家> <残り枚数>→下家捨牌(sutehai)→naku?
→鳴かない(no)→tsumo <下家> <残り枚数>→対面捨牌(sutehai)→naku?

[鳴き有り]
tsumo <自分> <残り枚数> <牌>→sutehai?→自家捨牌(sute)→tsumo <下家> <残り枚数>→下家捨牌(sutehai)→naku?
→鳴かない(no)→say <上家> pon →上家捨牌(sutehai)→naku?

という流れを理解しました。

794 名前:632 mailto:sage [2008/10/02(木) 01:22:38 ]
>>791
タイムアウトについては大変悩ましいところです。
とりあえず、クライアントから(サーバ時間で)一定時間、返答がなければ
サーバが勝手に進行してしまうというものを考えています。
また、現状の仕様だと誰の返答が遅いのかを、他のクライアントは知る
ことができませんが、これはこれで良いかなと考えています。

795 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 05:42:54 ]
同じ牌が4枚あるのは気持ち悪いな、、なんとかならないかな。
まあ内部で持つだけでやってみるか。

まったく同じ山でAIだけ差し替えて対戦とかも可能な様にやってるけど、それでいいかな。
すべての対局の山とダイスを記録してるけど、短時間に膨大な量の対戦をやると意味がなくなるかなあ。



796 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 05:45:18 ]
ネット対戦にするなら、トンプウ荘と繋ぐやつつれば十分では?
あとローカルで高速に動くやつ

797 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:03:37 ]
www.interq.or.jp/snake/totugeki/MJexeIODLLman.htm

798 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:08:06 ]
人間が混ざる環境だと迷惑では?
あと>>797の利用規約見たけど、AIで使うのは明らかに規約違反だな。

799 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:28:32 ]
個人で強いAIを作ってもそれを公開しなければいい。 

>以上は、個人的な研究程度の範疇なら問題ありません

800 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:32:11 ]
MJexeIO.DLLを簡単に利用するためのラッパーを作るだけならいいだろう。

801 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:34:53 ]
公開しないAIをこのスレで議論する意味あんの?

802 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:38:10 ]
Rと名前でわかる

803 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 17:26:27 ]
カスだな

804 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:18:39 ]
>>787
例に出てるけど、クイタンがあるかどうかは終盤の打ち筋に大きく影響するから、
アガッたときにはじめてわかる、なんて仕様はあり得ないと思う。
予めAIはクイタンが認められるかどうかを知っていないと。

それならクイタンありAIとクイタンなしAIの2つを分けて作れ、って考え方なんだろうけど
初めっから多態性を切り捨てたAIなんて面白くないよね。特にム板的には。

というわけで、「採用されている」ルールだけでも通達すべきだと思うんだ。
無数にある「採用されていない」ルールは無視してね。

805 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:20:33 ]
>>788
牌のユニークIDがないと赤には対応できないな
'5m'を'5M'にするとかか



806 名前:632 mailto:sage [2008/10/03(金) 00:28:15 ]
>>804
AIクライアントを起動するときに、オプションで指定すればそれで済むと
思っているんですが、サーバに問い合わせて自動で判別する必要が
あるんでしょうか?

>>805
赤牌は、おっしゃる通りの表記で既に仕様に入ってます。

807 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:39:05 ]
俺が一人で作ってるのとは微妙に仕様が違ってきてるな
いろんな考え方があって面白い

808 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:07:34 ]
>>806
いちいちオプション指定なんて面倒

809 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:11:18 ]
>>806
うっかり1人だけ設定間違えた、ってこともあるはず。
こういうことはしっかり確認を取れるようにしないとトラブルの元。


810 名前:632 mailto:sage [2008/10/03(金) 02:29:18 ]
>>809
自分はサーバとクライアントでルールをやりとりする方が
トラブルの元だと思っています。

例えば、クイタンありの場合は、サーバからhelloコマンドで
kuitan=1というオプションを渡すようにしましょう。
そしてクライアントはそれに対応しました。

ところが、他のサーバの実装ではkuitan=yesと送ってきました。
これは、サーバが悪いのでしょうか?それともクライアントが対応
すべきでしょうか?

このトラブルを回避するには、ルールを通達する場合の仕様を
決めなければなりません。
そうなると今度は麻雀のルールの多様さが問題になってきます。
ツモっても平和つくの?赤牌は何枚入ってるの?聴牌連荘?
裏ドラはあり?ダブロンは?etc...

「どうせUMPのサーバなんてお前しか作んねーよ。そんな先の
こと考えてんじゃねーよ」
という意見もあるでしょうし、おそらくそれはその通りです(^^;

が、だからこそ自分の正しいと思うように作りたいのです。

811 名前:632 mailto:sage [2008/10/03(金) 02:50:55 ]
>>807
どこらへんが違うのか、すごく興味があります(^^

812 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:07:24 ]
なんか東風荘の焼きなおしみたいな感じで独自にやる意味が薄くなっちゃったんだよね

813 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:10:23 ]
東風荘のつなぐやつ作ってくれよ

814 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:19:56 ]
>ルールを通達する場合の仕様を
>決めなければなりません。
実装とルールを切り離してるんだから、なにかしらルール定義ファイルがあるんじゃないのかな・・・
それ送っちゃえばいいのに。
マッチメイクサーバーとかが面倒見るのがいい気もするけど。

815 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:44:53 ]
IDE/ATAのIdentifyコマンドみたいに512byteとか
1024byteのパラメータの固まりをやりとりできる
コマンドを準備しておけば良いんでね?

フォーマットの中身は追々、考えるとして。
麻雀のルールは1000パラメータ以上もは無いだろう?
有りそうなら後々、長さを拡張できるようにしておく。

で、サーバーは一方的にルールを通知するだけ。
対応する、しない(できる、できない)は
クライアントの責任とする。

ルールの摺り合わせをするのはさすがに大変そうなので。



816 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:52:13 ]
あとで再現のために、誰がどのバージョンで参加したかのやり取りは必要だからね。

817 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:25:31 ]
じゃ、このルールで参加する、あるいは対応できないから
参加しない、の返事だけはクライアントから返すようにするとか。

その後、参加しているかどうかログ見れば分かるから
あまり意味ないけど。

818 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:52:46 ]
サーバに接続してからhelloでルール確認するって違和感あるんだけど
東風荘みたいに「○○ルールのサーバに接続しに行く」ってのはできんのかね

819 名前:デフォルトの名無しさん [2008/10/04(土) 23:37:26 ]
>>664
期待して待ってるんですが、その後どうですか?

820 名前:632 mailto:sage [2008/10/05(日) 02:39:38 ]
赤牌のことを考えると、チーとかポンで晒す牌を明示的に
指定しないといけないのか…地味に面倒だな(^^;

821 名前:デフォルトの名無しさん [2008/10/05(日) 02:47:35 ]
別に赤牌が無くてもチーは明示的に指定する必要がある

822 名前:632 mailto:sage [2008/10/05(日) 03:55:54 ]
>>821
いや、もちろん最初からチーのときは牌を指定させてたよw

823 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:55:11 ]
経過をたどればプロトコル関係ないだろ。
クライアントだけで晒す牌は自明。

824 名前:デフォルトの名無しさん [2008/10/05(日) 12:46:31 ]
>>823
お前は相手の牌が読めるのかよww

825 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:03:43 ]
>>824
sutehai

chi
pon
kan
の経過があれば可能



826 名前:デフォルトの名無しさん [2008/10/05(日) 13:16:58 ]
記述内容が荒くて答えになっていない

まず、それではあがった時や流局時にプレーヤーがどんな手牌
であるのか不明

つか、sutehaiとかchiとかのメッセージをサーバ間で
やりとりして、言語依存せずに麻雀のゲームを成立させることが、
このプロトコルが意図してるところだろ?

827 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:23:24 ]
>>826
これを読んでから言ってるの?
sourceforge.jp/projects/openmj/wiki/FrontPage

828 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:58:48 ]
ここまで読んできて非常に面白いと思った
麻雀は将棋やチェスと違ってプレイヤー間の意思疎通および時間経過の概念があるから
適当な考えで簡単に策定したら後で破綻しやすそうだね

個人的には錯和もチョンボも無いゲームは麻雀とは呼ばずに
麻雀モドキもしくはコンピュータ麻雀とか呼んで欲しいと思うけど

829 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:15:20 ]
他人の作るものにケチつけるくらいなら自分で作ればいい

830 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:26:31 ]
他人にケチ付けられて拗ねるぐらいなら公開掲示板などに書かなければいい

831 名前:632 mailto:sage [2008/10/05(日) 14:36:42 ]
>>828
> 個人的には錯和もチョンボも無いゲームは麻雀とは呼ばずに
> 麻雀モドキもしくはコンピュータ麻雀とか呼んで欲しいと思うけど

そういう意味では、自分はリアル(人間同士)の麻雀を再現したいとは
カケラも考えていません。だいたい、表情や仕草も見えない時点で全然
別物なのは皆わかってるものだと思いますが。

むしろ、そういう情報をなくすことで、より麻雀の「ゲーム」としての要素が
際立ち、そしてそこにコンピュータを使って最強のAIを作るという新たな
試みが生まれているのではないでしょうか。

その上で、チョンボは「コンピュータ麻雀」として意味があるのか、という
議論であれば、それは面白いと思います。

832 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:40:59 ]
チョンボが勝率に絡んでくることもあるだろ

833 名前:632 mailto:sage [2008/10/05(日) 14:43:27 ]
ちなみに、現状自分が作っているシステムではツモ切りかどうかを
誤魔化すことができません。
これは、本来の麻雀では小手返しのうまい人なら可能なことが
不可能になっているという意味で、チョンボを認めるかどうかなんか
よりよほど大きな問題だと思いますが、これについて一切ツッコミは
ありません。

というか、小手返しを使ってツモ切りかどうかを誤魔化せる麻雀ゲームって
存在するんですかね?

834 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:27:54 ]
意図的にチョンボしたい時用に、満貫払って降りる
チョンボコマンドでも定義しとけば?



835 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 22:09:26 ]
>>831
表情が見えないからこそ、牌で語るんじゃないの?
とりあえずノーテンリーチを認めない理由がわからない



836 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 22:37:02 ]
とりあえず動くクライアントを作らないか?

837 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:25:59 ]
ちゃんと動くサーバが出てソースが公開されたら、
俺がチョンボとかノーテンリーチとか対応するから問題なす。

838 名前:デフォルトの名無しさん [2008/10/06(月) 00:41:27 ]
>>835
つかノーテンリーチ認めてるところが
あるかよ
おまえ自身が異端だって気付けよ

839 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:40:49 ]
>これについて一切ツッコミはありません。

自分が考えたことに対する異論は片っぱしから拒否しといてつっこみがないとかあるかよ。
もう付き合ってられんわ。

840 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:29:03 ]
AI同士の勝負でバグを出すことがデメリットにならないなんて設計ミスだろ
ノーテンリーチやチョンボ判定せずにサーバの救済措置で勝つAIがあるとして
それは強いAIとは言わないし、そのプロトコルはAIの強さを保証できない

841 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:05:16 ]
本質がわかってないね
きみには強いAIは無理だからどうでもいいや

842 名前:632 mailto:sage [2008/10/07(火) 00:11:21 ]
>>839
チョンボとルールの伝達の件でしょうか?
それについては採用しない理由(デメリット)を説明しているつもりです。

ただルール伝達については、自分は必要がないと考えているんですが、
それを証明(?)するためにも、その仕組みでの実装を見せる必要が
あるかと思い、とりあえず議論よりも実装を頑張っている状態です。

その後、自分以外にもクライアントやAIを作ってくれる人が現れて、
やはりルール伝達があった方が問題が少なくなると思えば、仕様に
採り入れることもあります。

チョンボについては、極論すれば>>834の意見に行き着いてしまうと
思うのですが、やはりこれには抵抗を感じます。

843 名前:632 mailto:sage [2008/10/07(火) 00:15:32 ]
>>840
AIでチョンボというのは、それはもはやバグであり、強い弱いという
レベルとはかけ離れていると思います。
逆に、チョンボをサーバに救済してもらうことで勝てるAIなら、それは
バグを直せば強いのだから、強いAIなんじゃないでしょうか?



844 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:20:19 ]
チョンボで流れるルールだったら、チョンボで流して1位確定とかやれるんだよ・・・?
ルールによってはだけどね、流局連荘だけどチョンボだと流れるとか、どっかであったはず
普通ないけどね、一応こういうのもあるよっていう情報提供って意味でw

845 名前:632 mailto:sage [2008/10/07(火) 00:30:37 ]
また、人間が操作するタイプのクライアントの場合、クライアントで
チョンボを発生させないようにする(サーバに送らない)ことも可能です。
これは、オープンなプロトコルで、クライアントを自由に実装できる以上、
防ぎようがありません。

その上で、チョンボが発生するクライアントと、チョンボを発生させない
ようにしたクライアントで対戦するというのは、どうなんでしょうか。

「コンピュータに手助けしてもらって打つなんて麻雀じゃない」という
意見もあるかもしれません。

でも、一昔前は他家の点数を覚えておくのは技術でしたが、今どきの
自動卓ならボタンを押せば表示されます。
またゲームであれば、ツモ切りかどうかを捨て牌にわかりやすく表示して
くれるものもあります。

自分としては、そういうことを総合して、リアルの麻雀とコンピュータの
麻雀は違うのだから、リアルの麻雀のすべての要素を入れる必要はなく、
そしてチョンボはコンピュータ麻雀には不要だと考えたわけです。



846 名前:632 mailto:sage [2008/10/07(火) 00:34:32 ]
>>844
わかります。
ですから結局>>834を認めるかどうかなんですが、実際、自分は
今までに勝とうとしてわざとチョンボするヤツを見たことがありません。
暗黙の了解で、チョンボはわざとやらない、つまり戦術ではないと
いうものだと思ってたんですが、そんなこともないんでしょうか?

847 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:39:49 ]
っと、ごめん、すでに書いてあったのね
まぁ明記してくれればどっちでも自分はかまわないかな?お好きなようにっ
そこは設定できるようにしてあるしっ

848 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:42:43 ]
じゃあチョンボはサーバ側で勝手に弾いていいから
弾いたログだけは絶対に牌譜に残る仕様にしてくれよ

849 名前:632 mailto:sage [2008/10/07(火) 00:48:26 ]
>>848
今作ってるサーバをそういう仕様にするのは全然構わないですが、
すべてのサーバの実装はそうすべき、とするほどの意味が感じられません。

どういう用途で必要なんでしょうか?

850 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:27:43 ]
>>849
デバッグに有用な情報ではあるんじゃないかな。
チョンボするってのが、単にチョンボするだけの問題ってことはおそらくあまりなくて、
推論ロジック全体に影響する問題がある可能性が高いだろうし。
その一種の症候として検出するに値するものであると思うよ。
まあ、それだと全てのサーバがそうすべき、というほど強く必要なものでもないだろうけど。


851 名前:632 mailto:sage [2008/10/07(火) 01:36:00 ]
>>850
それは自分も考えました。
でもそうだとすると、サーバのログよりも、クライアントから不正な
返答があった場合には、サーバからerrorとかを返した上で続行
した方がクライアントのデバッグはやりやすいんじゃないでしょうか。

852 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:43:53 ]
>>846
>暗黙の了解で、チョンボはわざとやらない、つまり戦術ではないというものだと思ってたんですが

同意だ。
麻雀の戦術として、「この場合はチョンボしよう」というのも見たこと無いな。

チョンボは麻雀の中で、明らかに「例外」だ。
無しにできるのなら無しで良いものだと思う。

現在あるコンピュータ上の麻雀ゲームで、チョンボがあるものは多数あるため、なんとなく無いと変な気がするだけで、
無いからといって麻雀のゲーム性が損なわれることはまったく無いと考えられる。

リアルの麻雀では、山を手で崩してしまったら、なんらかの罰とかもあるわけだが、それは実装しなくて良いのだろうか。
その場合、AIが手のカーソルを牌を倒さないように避けるアルゴリズムが必要だな。


853 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:16:03 ]
>>851
それもそうか。

854 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:22:11 ]
たまにフリーでそういうプログラム欲しくなるな


んで、出来た?

855 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:49:21 ]
>>849
「完全にバグの無いプログラムの存在は証明し得ないから(悪魔の証明)」
言語が違うコンパイラが違うOSが違う加えて通信上の問題も多々ある
これ普通のマならみんな最大限警戒することだと思うけど

あなたが許したバグの責任はあなたが負うことを明示してねっ、てこと
チョンボを弾いたログは牌譜に残してね。お願いします



856 名前:632 mailto:sage [2008/10/07(火) 02:59:34 ]
>>854
進捗はSourceForgeのソースを動かしてもらうのが一番わかりやすいんですが、
とりあえず残る大物作業としては鳴きの処理くらいで、あとはGUIをもうちょっと
ちゃんとするのとか、バグとか、そんな感じです。
現在でも鳴けないけどツモ切り3人相手に一人打ちくらいならできます。

>>855
クライアントのバグの検出ということであれば、>>851の方法ではいかがでしょう?
牌符は東風荘と互換にしようと思ってるので、独自情報は追加できないかも。
それはそれとして、サーバのログは残すつもりですが。

857 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 03:51:37 ]
牌符を「東風荘と互換」にするなら錯和は必ず牌符に残ことになるはずでは
「それはそれとして、サーバのログは残す」ってどういうことなのでしょうか?
「独自情報の追加(削減?)」は不要なので普通に牌譜に記録して頂きたい

858 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 04:03:52 ]
サーバのログって言ったら通信履歴のことじゃないの?
通信記録=牌譜ではないでしょ。

859 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:16:04 ]
通信記録は全て残す
牌譜はその記録から抜き出す

これで好きな形式で牌譜も取り出せる

860 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:22:47 ]
AI対戦が根本にあるんだから、短時間で数百回勝手に対戦させといて
後で集計を確認したり、気になった局の牌譜を再現したりできるようにしたいじゃない?
せっかくサーバー使うんだし、DB使うってのはそういうことに使えるからなんだけどね。
人間に見やすいプロトコルのために機能を削るのはナンセンスだと思ってる。

861 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:09:37 ]
だから、チョンボは無しでノーテンリーチだけ認めればいいじゃん。
チョンボはルールの破壊だがノーテンリーチは戦術だろう

862 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:17:05 ]
ノーテンリーチで流局になったらチョンボだべや

863 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:49:33 ]
ノーテンリーチが戦術とか漫画の読みすぎじゃねーのw

馬鹿がいると話が進まないな
チョンボ厨は完全スルーでいいだろ


今更こんな質問をするのもなんだけど、AI同士の優劣を判定するには多数の対局をこなさないといけない麻雀というゲームの性質上、
対局のたびにネットワークを介する方法は効率が悪いのでは?


864 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:51:03 ]
ネットワーク用のプロトコルを作っておけば、
別にlocalhostでも使えるでしょ。

865 名前:632 mailto:sage [2008/10/08(水) 00:37:58 ]
>>857
牌譜を東風荘と互換にすることと、東風荘と同じ仕様(ルール)にするのは
イコールではないです。
ログについては>>858の言うように、いわゆる普通のログです。
通信だけには限りませんが。

クライアントのデバッグが目的であれば>>851の方法を提案しています。
これについてはどうでしょうか?
そういう目的のためではない、というのであれば、どうしろ、という形ではなく、
目的を教えて下さい。でないと対応できません。



866 名前:632 mailto:sage [2008/10/08(水) 00:41:24 ]
>>859
それも考えましたが、とりあえず東風荘形式で牌譜を出した方が
何かと便利な気がします。

で、東風荘の牌譜について調べてたんですが、どこかに仕様って
上がってます?
ざっと見た感じだと、鳴いたときに晒すメンツの情報が足りないような
気がするんですが…

867 名前:デフォルトの名無しさん [2008/10/08(水) 00:44:29 ]
mj.giganet.net/mjscore.htm

868 名前:632 mailto:sage [2008/10/08(水) 00:54:34 ]
>>860
> 人間に見やすいプロトコルのために機能を削るのはナンセンスだと思ってる

どの部分を指摘しているかわかりません。牌を個別IDにしなかったことでしょうか?
もしそうなら、それは機能を削ったという認識はないんですが、何かこれで失った
ものがあるんでしょうか?

869 名前:632 mailto:sage [2008/10/08(水) 00:55:43 ]
>>867
うわ、思いっきり本家にw
ググっても引っかからなかったのに。ありがとうございます(^^

870 名前:632 mailto:sage [2008/10/08(水) 01:00:10 ]
>>861-863
自分もノーテンリーチだけはアリかなと思ってます(^^;
理由は、
* 流局までチョンボにならない
* 途中で上がることで防げる
という部分で、他家同士の損得に影響が少なく、またゲーム性としても
いわゆる「ブラフ」としての価値はあるかと。
もちろん、罰符は親子で同じ点数、局は流れないという条件は付きますが。

871 名前:632 mailto:sage [2008/10/08(水) 01:05:18 ]
>>863
>>864の言うように、ローカルでサーバも動かせば、それほどロスはないと
考えています。
ただ効率とか速度はそれほど重視していないので、それこそ何万局も打たせて
集計をとりたいという目的には向いてないかもしれません。

ちなみに、自分はAI同士ももちろんですが、AI対人間も考えてこの仕組みを
作っています。
だって、強いAIなら自分で相手したいじゃないですか?(^^

872 名前:デフォルトの名無しさん [2008/10/08(水) 01:06:57 ]
人間が打てるなら3Dにしてください><

873 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:10:04 ]
>>872
大丈夫か?

874 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:10:11 ]
AIと人間が対戦するのにサーバ介してロビー用意してチャットシステム組んでやんの?
いつまでたってもできそうもないな。

875 名前:632 mailto:sage [2008/10/08(水) 01:15:47 ]
>>874
別にロビーもチャットも用意するつもりはありませんが?
そんなんなくても麻雀はできるでしょ。



876 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:16:17 ]
そもそも文字だけでやる気にはならないな
GUI作ってしまえばプロトコルなんてバイナリーでもかまわないわけで

877 名前:632 mailto:sage [2008/10/08(水) 01:17:22 ]
>>872
クライアントのクオリティは…優先順位は低いですが、頑張ります(^^;

878 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:18:59 ]
どうでもいいけど、自分と違う人の意見は絶対に聞かない態度はどうにかならないのか

879 名前:632 mailto:sage [2008/10/08(水) 01:19:08 ]
>>876
GUIクライアントも一応作ってます(^^;
さすがに人間が打つのにtelnet使えとかは言えないです。

880 名前:デフォルトの名無しさん [2008/10/08(水) 01:20:06 ]
>>878
お前がか?
自己紹介


881 名前:632 mailto:sage [2008/10/08(水) 01:23:09 ]
>>878
意見を聞くということが、言われたことをホイホイやるというのであれば
そんなつもりはカケラもありません。

リクエストについてはそれなりに理由をつけて反論しているつもりです。
ただ好き嫌いに関しては、当然ですが自分の好きを選びます。

882 名前:632 mailto:sage [2008/10/08(水) 01:32:29 ]
>>891
×リクエストについては〜
○採用しないリクエストについては〜

883 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:34:54 ]
今まで出た議論は理由を読めば俺も632の判断の方が総じて妥当だと思うけどね


884 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:07:57 ]
>>871
>ちなみに、自分はAI同士ももちろんですが、AI対人間も考えてこの仕組みを
>作っています。

逆指向なんだと思ってたので驚いた

885 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:43:44 ]
言っていることがころころかわる



886 名前:デフォルトの名無しさん [2008/10/08(水) 18:05:05 ]
亀レスかもしれませんがチョンボについて少々言わせてくださいw

私が以前参加した大会でのことなのですが、初心者が多かったためか
「チョンボは取らず、手牌を立て直してそのままゲーム続行」というルールがあり、
実際に何人かが救われていました。

自動卓のボタン押しちゃったから続行不可能だとか、相手の手牌を故意に倒しやがったとか、そういうのは起こらなかったため対処が不明ですが、
これらがコンピュータ麻雀で起こることはないと思うので、局を中断して点棒をやりとりするのはナンセンスと思います。
「正しくない和了を以下の手牌で宣言した」という情報だけなら、(どうしても必要という根強い意見があるのならば、) 流してもいいかなとは思いますが。

ノーテンリーチは正常な流局の不聴として扱い、リーチ棒は一旦供託したので供託のままだったと思います。たしか101とかでしたっけ? 門前なら聴牌/不聴を問わずリーチできる団体もあったような気がします。(あそこは不聴罰符もなかったかな?)
つまり、ノーテンリーチかけられる場合、流局時の罰符には反対票入れます。

887 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 19:52:21 ]
不聴罰符なし→毎局ダブリーする荒らしAI出現
→全ツッパAIが常勝→クライアント参加者消滅
→プロトコル死亡

888 名前:632 mailto:sage [2008/10/09(木) 02:26:18 ]
>>883
ありがとうございます(^^

>>884
人間同士の対局が主で、AIはついで、みたいな?
正直、そういう部分はあると思います(^^;
というか、人間かAIかというより、ネットワーク麻雀というものをもっとオープンに
したいというのが最大の目的です。
イメージ的には、好きなブラウザで、好きなサイトを見に行くような感覚で、
色々ある麻雀サーバに、好きなクライアントやAIで繋ぐ感じです。

889 名前:632 mailto:sage [2008/10/09(木) 02:28:23 ]
>>885
自分のことでしょうか?
どの部分についてそう思われたのですか?
むしろ、どっちかと言えば>>878で言われるように、頑固で自分の意見を
曲げない方なんじゃないかと思いますがw

890 名前:632 mailto:sage [2008/10/09(木) 02:39:53 ]
>>886
結局、ノーテンリーチも、チョンボで罰符を払って局を終わらせるのも麻雀の戦術と
みなすかどうかなんですよね。
101では有効だと判断すれば普通に使うんでしょうか?

ノー爆では爆岡と稲瀬さんが茶柱を追い詰めるためにノーテンリーチを使ってたし、
最近ではリスキーエッジでも吉岡が使ってて面白かったので、ノーテンリーチは
戦術とみなしても良いかなぁと思ってしまいます(^^;

ただ、やっぱり普通はそういう行為をワザとやるのは嫌がる人が多い気もします。

891 名前:632 mailto:sage [2008/10/09(木) 02:52:17 ]
>>887
わざわざ荒らし用のクライアントを書いてくれる人が現れるなら、
それはそれでちょっと嬉しいくらいです(^^

最初にも書いたけど、オープンなプロトコルを作りたいってのは
10年くらい前に考えて、でもそんときは2chとかなかったし、一人で
細々とやってて結局止めちゃったので、今はここで色々意見を
言ってくれる人がいて、それだけでも嬉しいです。
# 完全に構ってちゃんな発言だなw

892 名前:デフォルトの名無しさん [2008/10/09(木) 03:15:42 ]
そもそも今回麻雀のプロトコルは、サーバとクライアント間で
各メンツがどんなアクションや情報を出したかを
互いに伝達しあうことが目的ではないか?

メンツが出したアクション(毎回チョンボリーチをした、
役満でチョンボ流しをした等)がルール違反であるかは
「サーバ側で判断」すればよい。

サーバにメンツのアクションが正しく伝達されれば、
麻雀プロトコルの目的は達成できていると思うが?

893 名前:デフォルトの名無しさん [2008/10/09(木) 03:20:29 ]
ただ、東風荘とかのルールなら、ノーテンでのツモ宣告
は無視でイイのではないのか?

894 名前:632 mailto:sage [2008/10/09(木) 03:37:22 ]
>>892
まさにその通りで、現状のプロトコル(UMP)でも、誤ツモのチョンボで
局を流すとかは、
say A tsumo
point A -8000
kyokuend
で再現可能です。
ただ、この場合他のクライアントは「チョンボが発生した」と
いうことを知ることができません。UMPにそれに該当する
コマンドがないからです。

言ってしまえば、とりあえずUMPの仕様にchomboコマンドを
追加してしまえばそれで済むんですが、できれば入れたくないと
いう自分のワガママが問題を大きくしてしまっている気もします(^^;

895 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 07:59:24 ]
色々文句言ったこともあるけど
まずは単純でオーソドックスなものを作ってしまうべきなように思う

仕様に問題が出ればそれから対処すれば良いし
ルールもいきなり複雑なのはAIがついていけない



896 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 10:49:12 ]
お前らがあんまりにもグダグダだから遂にあらさんが立ち上がったぞ
俺はこっちに期待させてもらう

897 名前:デフォルトの名無しさん [2008/10/11(土) 00:46:39 ]
あらさんはこのプロトコルに興味を持たれている件

898 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 21:41:01 ]
C++アプリからこのプロトコルって使える?

899 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 21:45:02 ]
>>898
ネットワーク対応であれば
使用言語によらない

ひまわり でも なでしこ でも使える

900 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 21:56:01 ]
ありがとn
完成したら使わせてもらうかも

901 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:45:00 ]
保守


902 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 04:45:24 ]
営業「ネットワーク対応であれば使用言語によりません。ひまわりでもなでしこでも使えます」
営業「残業代は出すし。家に帰らなくていいから。今月中にできるよね。信頼してるし。お願いしたよ」

903 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 11:41:29 ]
ttp://ayamariplus.seesaa.net/article/103324673.html#comment

これワロタ 麻雀ソフトのイカサマについての論争


904 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 00:08:33 ]
結局突き詰めると、ツモを操作するよりもヤマをそれっぽく作った方が
ちゃんとしたイカサマになる。
最も簡単といわれる積み込みも、実際の積み方を知らないで仕組むと
イカサマというよりもただ都合がいいだけのゲームになるしね。

河から牌を拾ったり、エレベーターしかけたりというのも
牌の配置(抜きやすいところにあるか、ツモ番ずれてないか、など)で
リアリティが増す

905 名前:デフォルトの名無しさん [2008/10/24(金) 00:53:33 ]
毎回テンホー

コレ最強



906 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 09:52:10 ]
まずは親にならなくちゃな

907 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 21:29:49 ]
おやややおやにおあやまり

908 名前:デフォルトの名無しさん [2008/10/31(金) 18:32:54 ]
(これから現れてくれることを願う) 海外の研究者のために (、またちょっとだけかっこいいという理由で)、コマンドの名前は英語を基本にした方がいいと思います
draw / discard / up / ...

909 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 22:23:02 ]
むしろ日本のゲームなんだから誇りを持ってひらがなにしようぜ

910 名前:デフォルトの名無しさん [2008/11/01(土) 00:39:22 ]
「ひまわり」以外は使えないようにしよう!!!

911 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 01:51:45 ]
>>908
ゲーム内の名前は変えちゃダメだ
ますます麻雀もどきになってしまう

ドンジャラみたいなw

912 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 01:58:23 ]
麻雀が日本のゲーム?
そりゃルールは日本独自のもあるけどさ

913 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 02:00:56 ]
>>908
>>909
>>910
632が錯和無しルールを強行した結果、オープンネットワーク麻雀はスレ民に完全に見捨てられました
今後は電脳荘か、あらさんの企画が通信規約の規定に達するまで静かに見守って下さるようお願い致します

914 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 05:00:57 ]
ひたすら他力本願だなw

915 名前:デフォルトの名無しさん [2008/11/01(土) 07:35:42 ]
ここにある「ルールベースのアルゴリズム」って何ですか?

mahjong.ara3.net/ymt/diary/2008101501.htm



916 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:41:08 ]
>>915
三着と2万点以上の差がある場合には、
配牌で7種以上のヤオチュウ牌があったら国士を狙う、
とか、
チートイの二向聴のときは、
残り枚数が一番少ない中で一番内側の牌を捨てる
とか、
そんな感じで全部ルールで決めてしまう方式。

917 名前:デフォルトの名無しさん [2008/11/02(日) 18:59:11 ]
>>916
分りやすい解説
ありがとうございました

918 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 18:45:13 ]
決め打ち のアルゴリズムでかっこういいのが出来そう
ちょっと古いけどナルミみたいなのが出来たらいいな

919 名前:デフォルトの名無しさん [2008/11/08(土) 04:54:39 ]
結局ソースフォージーたて逃げ

920 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:53:51 ]
死んだ子の齢を数えても仕方ない

921 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 15:21:41 ]
>>919>>920
詳しく

922 名前:デフォルトの名無しさん [2008/11/08(土) 19:06:12 ]
>>738
738 名前:632[sage] 投稿日:2008/09/27(土) 15:39:46
ちなみに、開発途中ではありますが、ソースコードをSourceForgeの
SVNに随時commitしているので、興味のある方は
svn.sourceforge.jp/cgi-bin/viewcvs.cgi/?root=openmj
から拾って下さい。

↑↑↑既に3週間放置↓↓↓
つか、9月末に公開して、10月初旬には既に放り投げてる

(dir) client/ 11 3 weeks yatsuhashi
(dir) common/ 9 4 weeks yatsuhashi
(dir) lib/ 10 4 weeks yatsuhashi
(dir) server/ 10 4 weeks yatsuhashi
(dir) test/ 7 4 weeks yatsuhashi * 点数計算とか追加
(file) Makefile 11 3 weeks yatsuhashi

923 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:34:08 ]
ちやほやされたいだけだった、ってことだな。

924 名前:632 [2008/11/10(月) 01:41:55 ]
お久しぶりです。SourceForgeの方の人ですw
叩かれてますな(^^;

途中で言われたように、とりあえずモノができないと話にならないと思い、
まずは作ってしまうまで発言は控えようと思ったものの、一人になると
生来の怠け癖と飽きっぽさで、すっかりサボってしまいました。
期待して下さっていた方には申し訳ありません。

ということで、その後も特に進展はないのですが、良かれ悪しかれ気にして
下さっている方もいるようなので、まだ死んでないよという書き込みでした(^^;

925 名前:632 mailto:sage [2008/11/10(月) 01:44:57 ]
>>908
それも考えたんですが、それだとやはりわかりにくいだろうと
思って止めました。



926 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 01:50:11 ]
>>924
せっかくsourceforgeを使ってるんだから孤独にやらず
仲間を募り方針を示して複数人数で開発をした方が
少しずつでも進展するのでは?
強いリーダーシップと適切なアプローチの提示が必要だとは思うけど

927 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 01:56:41 ]
今更顔出すってことはチョンボはちゃんと罰符払う仕様に変わったってことだよね?


928 名前:632 mailto:sage [2008/11/10(月) 02:12:48 ]
>>926
もちろん協力してくれる方がいれば嬉しいですが、それにしたって
もうちょっとできてからでないと話にならないかと(^^;
とりあえずはサーバ/GUIクライアントで麻雀が打てるレベルまでは
一人で仕上げたいと思います。
そこまではそんなに遠くない…ハズ。

>>927
久しぶりに書き込んだら早速それかw

929 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 10:13:49 ]
もういいから次の新しい人に来て欲しいよね

まあ今スレは反省会で埋めて、次スレからは新仕様の話をしようか

930 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 13:50:44 ]
作ってみたけど、まったり麻雀には全く及ばないので諦めたよw

931 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 14:25:59 ]
そのうち慣れるんだろうけど、クライアント-サーバモデルでのプログラミングってなんか気持ち悪いな
初めてマルチスレッドアプリを作ったときの感覚を思い出すぜ

932 名前:デフォルトの名無しさん [2008/11/15(土) 08:48:03 ]
ならどんなモデルならいいんだよ

933 名前:デフォルトの名無しさん [2008/11/15(土) 20:45:18 ]
勝ちまくってるときは大ラスでチョンボして勝ち確定!!!

934 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 04:53:37 ]
チョンボ罰則はリーグ戦みたいにチョンボ1回につき
トータルスコアから-100するなどの
ペナルティ制にするといいんじゃないか


935 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 15:52:53 ]
>>933
チョンボはゲームそのものは続行が原則なので
オーラスでチョンボしても本場積まずに再開です



936 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 10:47:35 ]
なるほど、いろいろあるんだな。
ttp://www.asamiryo.jp/chonbo02.html

戦略でのチョンボは防ぐ方向にしたいところではあるな。

937 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:46:59 ]
物理エンジン搭載で牌を手積みできるようにお願いします

938 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 10:36:37 ]
インターフェースどうすんのよ。
マウスかタッチペンでやるか?

939 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 11:21:11 ]
Macのマルチタッチパッドで

940 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 21:48:48 ]
パワーグローブだろう。
牌は実際にどっかに物理的に用意された物をマニピュレータで積むのだ。

941 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:27:21 ]
おもしろそうですね。
参加するならこれくらいは読んどかないと話にならん
という本があったら紹介してください

942 名前:デフォルトの名無しさん [2008/11/27(木) 00:51:25 ]
* 和了形判定にテーブルを用いるように
* 一盃口の判定がバグっていたので修正
* OpenMj::ClientにPlayerクラスを追加

あたりで力尽きてるっぽい

943 名前:632 mailto:sage [2008/11/27(木) 01:13:40 ]
>>942
力尽きてないっすよw
クライアント(GUI)の鳴き処理(入力)をどうしようか考えてます。
赤牌なければ最大3パターンだけど、赤牌が複数種ある場合も想定
すると、晒す牌を個別に指定するのが単純だけど、UIとしては
微妙だなぁ、とか。

944 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:33:35 ]
>>943
いいからもう寝とけ
もう誰も期待してないから

945 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:54:59 ]
>>870を見るに箇条書きの頭に"*"を使うのは>>632の習慣。>>942>>632の自作自演だろ
力尽きていても尽きていなくても、出来上がるのはゴミっつうのがアレだねえ・・・



946 名前:デフォルトの名無しさん [2008/11/27(木) 07:59:18 ]
フォローをするけど>>942を書いたものだが自作自演じゃないよ
でも傍から見てるとあと1年は掛りそうなペースだな

947 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 09:51:09 ]
人の意見を取り入れないからだれも手伝わなくなっちゃうんだよ

948 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:24:49 ]
配牌の方法がわからん俺にヒントくれ

949 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 16:40:28 ]
int i = 0, j = 0, color = 0, num = 0;
while(i < 13){ //配牌は13枚
j = kicha + kyoku;
while(j < PLAYER_CNT + kicha + kyoku){
color = (int)((rand() / ((double)RAND_MAX + 1.0f)) * 4);
num = (int)((rand() / ((double)RAND_MAX + 1.0f)) * 9);
if(!yama.Get(color, num)){ continue; }
if((color == TSUPAI)&&(num > CHUN)){ continue; }

nanikiru[j%4].SetTehai(color, num, 1);
yama.Set(color, num, -1);
++j;
}
++i;
}

950 名前:デフォルトの名無しさん [2008/12/01(月) 22:42:55 ]
配牌で配られる手牌って別に自分で
決めるわけじゃないだろ???

951 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:32:19 ]
AIだけ作ってる奴なんていない。みんな自前で雀卓周りのコード書いてる
でなきゃAI強化したとき本当に強くなったか検証できないだろ


952 名前:デフォルトの名無しさん [2008/12/01(月) 23:45:01 ]
なら配牌の方法くらい自分で好き勝手に
定義すりゃいいじゃん
わざわざ聞くことでもないだろ

953 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:04:12 ]
アホか。俺は答えた方だ

954 名前:デフォルトの名無しさん [2008/12/02(火) 00:06:47 ]
奈々氏ばっかなんだから
どっちがどっちなんか分るわけねーだろ

955 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:19:05 ]
並の読解力があれば想像付くんだけどね。



956 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:55:54 ]
136通りの牌をシャッフルして順番に並べて
席順とサイコロ振れば、配牌は自動的に決まるだろう。

957 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 14:47:49 ]
白とか赤牌を入れたいときはどうすればいいの?

958 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:26:31 ]
入れたって全体の数が増えるんじゃないんだから、id差し替えればいいだけでは

959 名前:デフォルトの名無しさん [2008/12/06(土) 21:58:05 ]
結局配牌はできたのか?

960 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:06:26 ]
その前に自分自身に少なくともプロ並みの雀力がないと駄目だと思から、
俺は雀力向上と数学の知識を身につけてる。

961 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:08:39 ]
配列のシャッフルが実装できないやつなんていないだろ

962 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:13:42 ]
空鍋をかき回すように中身のない配列を…

963 名前:デフォルトの名無しさん [2008/12/06(土) 22:20:22 ]
>>960
それはプログラム投げ出したいいわけか?

964 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 07:12:36 ]

「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人やRPGツクールでは物足りないけどプログラミングはちょっという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、バグ報告などなど書き込みお願いします。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
 一度サイトにお越しくださいませ。

2ちゃん本スレ
pc11.2ch.net/test/read.cgi/gamedev/1226294070/l100

965 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 23:51:46 ]
>>960のAIは完成しないに1000ジンバブエドル



966 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:56:41 ]
年明けには第4ジンバブエドルの発行来るかな?
今度は何桁切り捨てるんだろうね。

967 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 14:14:50 ]
「国(政権)の崩壊が先に来る」に100第4ジンバブエドル。

968 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 03:07:32 ]
ひとつ質問。基本的な麻雀の質問ですまないが。

暗槓3つと1枚の計13枚は七対子で言うと何向聴?
例えば、AAAABBBBCCCCDだとすると自作で判定させると5向聴なんだが、
実際5枚入れ替えても七対子として聴牌しない。

969 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 04:08:26 ]
普通に考えたら六向聴だね。
多分だけど、たとえば AAEEBBFFCCCDD みたいになったときに、
CCC を対子ひとつと単騎の待ち牌とに誤認してるんじゃないかと思った。

970 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 06:00:05 ]
>>968
槓しておいて七対子は無理でしょ
手牌が AAAABBBBCCCCD なら既にテンパイでは?

971 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 07:31:31 ]
>>970のようなやつがジャンラインを作ってしまうと言うことがよくわかった



972 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 07:46:21 ]
>>968
mahjong.ara3.net/etc/shanten/shanten2.htm
(6-3)+(7-4)=6
ですね。

973 名前:デフォルトの名無しさん [2008/12/10(水) 07:56:08 ]
>>972
計算間違ってるよw

974 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 09:16:18 ]
>>969
うわ本当だ。そっちのパターンでも間違えた。
AAEECCCZXYWVUみたいな他がバラバラの時は正しかったから見逃してた。

>>970
11112222・・・じゃなくてAAAABBBB・・・って書いた理由を察してくれ。
その誤解を避けるために>>959はAAEEBB・・・ってしてくれたけど。

>>971
字牌でで順子が作れるやつかw

>>972
おお。同じ考え方だ。
でもそのページの一番下も14枚で考えてるだけで6向聴の間違いじゃないのかな?

実際ここから七対子狙いになんか行かないから実用上問題無いんだが、
例えば特殊なルールで七対子縛りとかあった場合にリアル麻雀では
何向聴扱いなのかなと疑問に思ったもので。

975 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 10:46:59 ]
AAAABBBBCCCCDなら、カンを3回すれば2向聴じゃないの?
まあすぐ流されそうだが。



976 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 21:25:46 ]
>>974
>でもそのページの一番下も14枚で考えてるだけで6向聴の間違いじゃないのかな?
AAAABBBBCCCCDDから何を捨てるかという話ですね

AAAABBBBCCCCDなら6向聴
AAAABBBBCCCDDなら5向聴

977 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 19:42:41 ]
もうすぐクリスマスだけど、どうよ?

978 名前:デフォルトの名無しさん [2008/12/19(金) 00:51:31 ]
Revision 21 - (view) (download) - [select for diffs]
Modified Sun Nov 16 18:27:54 2008 UTC (4 weeks, 3 days ago) by yatsuhashi
File length: 2875 byte(s)
Diff to previous 7

* 和了形判定にテーブルを用いるように
* 一盃口の判定がバグっていたので修正
* OpenMj::ClientにPlayerクラスを追加

どうよも何もここで完全に放置しているし
このスレも収束かな?

979 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 18:20:51 ]
チョンボ君はあれだけの情熱を見せたんだからきっと作ってるよ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<253KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef