[表示 : 全て 最新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 ] めざせ最強の麻雀プログラム! 層の薄いこのカテゴリーなら、将棋やオセロよりも ずっと簡単にその地位を手にいれられるぞ!
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 がチョンボあり版を作ればいいじゃない
[ 続きを読む ] / [ 携帯版 ]
前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