5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2009/04/14(火) 13:45:29
前スレ

おまいら最強の麻雀プログラムしてみろよ Part2
http://pc11.2ch.net/test/read.cgi/tech/1185540470/

<参考サイト>
とつげき東北HP
http://www.interq.or.jp/snake/totugeki/
まったりプログラミング日誌 牌譜データ募集中
http://kmo2.cocolog-nifty.com/prog/
あらの(一人)麻雀研究所
http://mahjong.ara3.net/
デジタル麻雀論 デジタル麻雀の理論
http://www.jan-x.jp/
日本プロ麻雀連盟競技ルール|日本プロ麻雀連盟
http://www.ma-jan.or.jp/guide/game_rule.php


2 :デフォルトの名無しさん:2009/04/15(水) 03:16:49
とりあえず乙

3 :デフォルトの名無しさん:2009/04/17(金) 13:10:48
   お     つ      だ     よ
  ∧,,∧    ∧,,∧    ∧,,▲   ∧,,∧
  (,,・∀・)   ミ,,・∀・ミ   (;;・∀・)   ミ,,・∀・ミ
〜(_u,uノ @ミ_u,,uミ @(;;;;uuノ 〜ミ_u,,uミ


4 :デフォルトの名無しさん:2009/04/18(土) 10:26:47
おお、復活したか。前スレは即落ちだったなw

5 :デフォルトの名無しさん:2009/04/19(日) 02:55:11
>>1


6 :デフォルトの名無しさん:2009/04/22(水) 00:40:54
保守w

7 :デフォルトの名無しさん:2009/04/24(金) 22:18:34
うお、復活したか


8 :デフォルトの名無しさん:2009/04/28(火) 01:37:35
進展ねえなw


9 :デフォルトの名無しさん:2009/05/07(木) 08:18:08
なんでだろうな

10 :デフォルトの名無しさん:2009/05/15(金) 01:02:03
http://mahjong.ara3.net/ymt/diary/2009042901.htm

麻雀対戦機 開発日記
2009年04月29日 中断宣言

月日が経つのは速いもので、2009年になったかと思えば、もうゴールデンウィークです。
この日記も、気がつけば3ヵ月間も放置してしまいました。
ということで、あまり長い間ほったらかしにしておくのも気が引けるので、このへんで一時中断を宣言したいと思います。
開発日記と言いながら、一行もコードを書くことなく中断するのはどうかと思いますが、私も何かと忙しく、なかなかまとまった時間がとれないという状況にあります。
ただ、あくまでも中断ですので、いつの日かまた再開する予定です。
それがいつになるのかは分かりませんが、そのうち時間とやる気が戻ってくることでしょう。
もし、麻雀対戦機の完成を心待ちにしていた人がいたら、ごめんなさい。
私の他にも麻雀を真面目に研究している人たちがいますので、そちらに期待して下さい。
私もそっちに期待しています。

11 :デフォルトの名無しさん:2009/05/17(日) 21:32:18
こんなの作ってみたいです

http://tenhou.net/2/

12 :デフォルトの名無しさん:2009/05/26(火) 18:27:29
ところで前スレの648さんのdennosoの人はどうなりました?
未実装のとこ埋めるのとGUIつけるのと
自前の通信機能に組み込むのやりたいのだけど・・・いいかなあ

まあドキュメントでは自由に改変、再配布可、ですが作業がバッティングしてるとあれだし。

13 :デフォルトの名無しさん:2009/06/04(木) 22:21:35
ここまで反応がないから
改変OKなんじゃね?

14 :デフォルトの名無しさん:2009/06/04(木) 23:28:21
>>12
是非やって下さい!!

ってか、sourceforgeにプロジェクト作ってオープンソースでやったらいいんじゃない
少しなら協力するし


15 :デフォルトの名無しさん:2009/06/04(木) 23:46:27
http://sourceforge.jp/projects/openmj/wiki/FrontPage

16 :デフォルトの名無しさん:2009/06/05(金) 00:46:27
今、将棋プログラミングしてるから、ついでに麻雀プログラム作ってみよっかな。

17 :デフォルトの名無しさん:2009/06/05(金) 01:59:43
ここまでソース無し

18 :デフォルトの名無しさん:2009/06/06(土) 21:35:48
紅梅
http://www.vector.co.jp/soft/win95/game/se316229.html

19 :デフォルトの名無しさん:2009/06/07(日) 10:34:48
>>14
一応、書きかけみたいだった役判定は埋めたけどどうしようか・・・
AI用のMJDefine部分もDennoso.Libに移してLibだけで別アプリに組み込めるようにしてみた。

あとAIルーチンに判断部分だけ人間がその都度やる(AIの意味ないが)のもつけて
牌画像もいれてみようかなあ。

20 :デフォルトの名無しさん:2009/06/18(木) 02:25:26
>>19
と言って
2週間音沙汰がありません

21 :デフォルトの名無しさん:2009/06/18(木) 10:00:48
いやどうやって公開するのがいいか聞いてたんだけど。
元々の作者がいるので勝手にできないなと。

22 :デフォルトの名無しさん:2009/06/18(木) 10:02:35
まあどうでもいいよ。
途中のやつ出しても何にもしてくれないみたいだし、
ある程度できたらバイナリだけでも出すよ、今年の冬くらいだな。

23 :デフォルトの名無しさん:2009/06/20(土) 03:21:20
冬コミ?
脱衣麻雀にしてくれ。

24 :デフォルトの名無しさん:2009/06/23(火) 11:31:59
東東東東南南南南西西西西北北 一向聴
東東東東南南南南西西西北北北 聴牌
あらさんの一人麻雀練習機で向聴数がこうなるんだが、バグ?
暗槓出来るならこれであってると思うがw

25 :あら:2009/06/25(木) 00:12:14
>>24
バグみたいですね^^
そのうち直します。

26 :デフォルトの名無しさん:2009/06/27(土) 12:41:39
>>12
dennoso作者です。
どのように改変、配布してもかまわないです。
1ヶ月も気づかずにスマン。

だいたい、このプログラムはテスト版のテスト版みたいなもんですけどね。
あくまでAIを作るのが目的なので、本体は動けばいい程度にして、まずはAIを作ってみるつもりでした。
頓挫しましたが・・・
麻雀ゲームは星の数ほどあり、それと同じくらいマージャンAIはあるから簡単とおもったんだけど・・・

麻雀AIを作るのは、とっかかりとか、まずはコレみたいなやりかたがなくて、速攻で頓挫しますな。
GUIとか通信とかもいいんだけど、そういう方法論も考えてほしいなあ。

AI用のメンツを自動把握するライブラリを充実させるとか、
逆にAIが呼ばれたときにメンツがどこかを指定するだけで、あとはやってくれるとか・・・


27 :デフォルトの名無しさん:2009/07/06(月) 01:16:30
>AI用のメンツを自動把握するライブラリを充実させるとか、
>逆にAIが呼ばれたときにメンツがどこかを指定するだけで、あとはやってくれるとか・・・

こんなのあれば他何もいらないじゃん

28 :デフォルトの名無しさん:2009/07/06(月) 01:39:24
http://b.hatena.ne.jp/entry/suiseisekisuisui.blog107.fc2.com/blog-entry-900.html

これゲーム化してくれ

29 :デフォルトの名無しさん:2009/08/11(火) 00:30:45
誰かいないのか?

30 :デフォルトの名無しさん:2009/08/11(火) 23:20:15
いないみたい

31 :デフォルトの名無しさん:2009/08/15(土) 18:02:03
それはどうかな

32 :デフォルトの名無しさん:2009/08/15(土) 18:38:23
ここらでドカっと桜井章一並の
プログラムを見てみたい!!!

33 :デフォルトの名無しさん:2009/08/15(土) 19:05:23
役判定の難しさ
http://d.hatena.ne.jp/Gemma/20070618

http://f.hatena.ne.jp/images/fotolife/G/Gemma/20070618/20070618040000.jpg

このアガリ形には、いくつかの可能性がある。

* 三連刻 三暗刻 ツモ の 5飜 (111 222 333 123 11)
* 純全帯 二盃口 平和 ツモ の 8飜 (123 123 123 123 11)
* 七対子 ツモ の 3飜 (11 11 22 22 33 33 11)

よって、正解は、8飜である。

さて、アーケードの脱衣麻雀は、ちゃんと正解できるのだろうか。

34 :デフォルトの名無しさん:2009/08/15(土) 19:18:53
あらさんの判定機は

18000点  リーチ ツモ 平和 純全帯

でした

35 :デフォルトの名無しさん:2009/08/15(土) 19:32:38
>>33
横レスで申し訳ないが、
普通のルールでは同じ牌4枚がある場合は七対子として認められないよ。
あと三連刻はローカル役だから普通のルールではない。

36 :デフォルトの名無しさん:2009/08/15(土) 19:37:34
>>33
一色四順かと思ったw

37 :デフォルトの名無しさん:2009/08/15(土) 19:57:03
>>35
ローカルルールの解釈はそれぞれなんで。。。

仮に「一色四順」「三連刻」は認めないというルールとして
正確に判別できるプログラムを見てみたい

フリーでは意外となさげだが

38 :デフォルトの名無しさん:2009/08/15(土) 20:10:26
はは、自作の計算機に入れたら、純全帯幺、平和、自摸だった。
同じ順子2つで一盃口だけ判断してたのが原因だったな。
4つの可能性をすっかり忘れてエンバグ。

39 :デフォルトの名無しさん:2009/08/15(土) 20:30:34
>>37
俺のコードだと、そのルールなら1色3順になった。
1色3順もオフにすると、
純全帯 二盃口 平和 ツモ
になった。

40 :デフォルトの名無しさん:2009/08/16(日) 00:02:25
>>39
今のところ>>39が最強

41 :38:2009/08/16(日) 00:45:08
役判定は大きくなりがちな上に、複雑で間違いが許されないから厳しい……。
どこかにテストデータとか落ちてない?

42 :39:2009/08/16(日) 07:17:18
>>41
役の判定を手続きで考えると複雑すぎてはまるよ。

まず、牌じゃなくて子と状態(場や鳴きの有無など)を与えて役判定を行うメソッド
(戻り値は、符と翻と点数と役のIDのリスト)を作成する。
それが出来たら、現在の牌で作れる全ての子のリストを作成して、そのそれぞれに対して
上記のメソッドを呼び出すようにする。結果、一番点数の大きいものを選択している。
気をつけるのは同一点数の時だが、その場合翻を優先している。
翻も同一の場合は、なんらかの順番が必要だけど(見つかった順とか)どれになっても
実害はないから、それほど神経質にならなくてもいい。
ただ役満だけは変な形のものがあるので(天和とか国士とか)先に判定する。
青天井の場合は、特殊な役満だけ先に計算して、一般的な子の形を持っているものは、
最後に判定し、該当するものがあれば比較リストに繋いでおけばOK。

ちょっと力業だが、これがシンプルかつ、ルールに対する柔軟性があっていいよ。

43 :デフォルトの名無しさん:2009/08/16(日) 14:18:42
役の判定プラグラムをどこで使っているかにもよるが、
間違いが許されない処理だけに、ステップ数が増えても
全ての組み合わせを網羅してから一番点の高い役を
求める仕様が必須と思われる

44 :デフォルトの名無しさん:2009/08/16(日) 14:23:03
とはいえ、頭が決定している時点で、組み合わせは
かなり限定されている。

はっきりいえば、

111222333

という並びに対して、

@ 123 123 123
A 111 222 333

の2パターンを求めるだけ

しかし、暗刻だからと言ってAしか求めないパターンだと即アウト。

45 :38:2009/08/16(日) 18:15:35
>>42
処理はだいたい一緒?

1.分割しやすいようにデータ形式の変換
2.牌の分割(再帰)、和了牌の面子も決定
2-1.過去と同じ分割なら戻る
2-2.役を計算しやすいようにデータ形式の変換しつつ連底の計算
2-3.役の数え上げ
2-4.スコア計算(包込み)
2-5.スコアが最大になるなら選択

問題は2-3がif文の塊になっていて保守性が極めて悪いこと。
10Kbyte'sで400行ぐらいなんで、もう少しコンパクトか、バラしたいところなんだけど、
いい方法がないかなと。

>>44
分割は再帰かハッシュだよね。

46 :デフォルトの名無しさん:2009/08/16(日) 22:34:18
>>45
2-1〜5の部分を再帰にしないで、まず子分割をすべてリストアップして
結果用のクラスに設定して、コンテナに格納してる。
爆発的には増えないので、その方がデバッグも楽だよ。
数え上げが終わったら、コンテナから1つずつ取り出して点数チェックをやり
結果用のクラスに結果を書き込み、ソートしながら別のコンテナにポインタだけ
書き込んでる。

分割するところと、評価するところを完全に分離してコンテナで渡してるところが
ポイントかな。子(順子とか刻子とかいうアレね)の状態にしてから渡すと、
2-3はかなりすっきりかけるよ。

47 :38:2009/08/17(月) 01:08:28
>>46
牌の連続したところを取り出して、ハッシュにかけるのは検討しました。
ベンチで効率1.2倍で、コード数が1.5倍だったので、トレードオフにかけてやめました。

面子の状態にするのは牌分割の部分でやってますね。
連底を計算しながら面子の個数を数えて、役の判別の部分では
暗刻数が4で対子数が1であれば四暗刻とか判別させてますが、
if文が37個もあると、見た目も保守性も悪いし……ということなのです。
(メソッドは分けてありますが、一つのクラスにいれてるのも問題かも。)

別の角度から、練り直してみます。

48 :デフォルトの名無しさん:2009/08/19(水) 02:17:51
不安だったので、自作のライブラリでも>>33を試してみた。
…正しく判定できて一安心(^^

>>47
役の判定は、ある程度はまとめることができても、それでも
if文の羅列になってしまうのはしょうがないと思います。

49 :デフォルトの名無しさん:2009/08/22(土) 16:44:42
コンピュータはどれが緑一色に該当するのか
理解できません><;

そのため役確認の度ごとに、毎回if文で該当する緑一色に
牌を判別にしないといけないんです><;

50 :デフォルトの名無しさん:2009/08/22(土) 21:39:53
>>49
緑一色を目指すAIって作りにくいよね
っていいたいのかな?

51 :デフォルトの名無しさん:2009/08/22(土) 23:00:32
>>50
いや、おま……いくらなんでもそれはないだろう。

52 :デフォルトの名無しさん:2009/08/23(日) 16:52:44
>>49
っ[テーブル]

53 :デフォルトの名無しさん:2009/08/23(日) 19:29:42
そんな役は気にしない方がいいんじゃね

54 :デフォルトの名無しさん:2009/08/25(火) 01:42:28
緑一色は発が必須かどうかでもめる


55 :デフォルトの名無しさん:2009/08/27(木) 23:51:13
おっと、プンリーさんも忘れるな

56 :デフォルトの名無しさん:2009/08/29(土) 15:37:49
結局、緑一色は発なしでもOKってことで
いいよな??

57 :デフォルトの名無しさん:2009/08/29(土) 16:16:43
foreach(手牌全部){
if( 2,3,4,6,8s,発のどれかではない ){
return FALSE;
}
}
return TRUE;

58 :デフォルトの名無しさん:2009/08/29(土) 16:32:16
それを50近くある役に全部適応してたら
if文だらけになんな

59 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:43:10
>>58
役ごとに分ければすっきりするよ

60 :名無しさん@そうだ選挙に行こう:2009/08/30(日) 19:12:27
やっぱし大量のif文の整理は避けられないか

61 :デフォルトの名無しさん:2009/09/28(月) 21:42:45
で咲の脱衣麻雀はまだなのか?

62 :デフォルトの名無しさん:2009/10/13(火) 08:30:34
自分は絵描きだけど、ソース用意してくれれば絵は描くよw
でもゆくゆくはキャラごとの特殊能力とかも加味していきたいし、
そういう特殊能力の解釈の仕方が難しいかもね。


63 :デフォルトの名無しさん:2009/10/13(火) 18:44:28
ぎゅわんぶらあ自己中心派のゲームとかは面白かったな
ゴッドハンドが地味に強かった

64 :デフォルトの名無しさん:2009/10/25(日) 01:43:04
ぎゅわんぶらあ自己中心派が再販されると
きいて飛んできました

65 :デフォルトの名無しさん:2009/10/25(日) 16:18:24
>>56
ダメ

66 :デフォルトの名無しさん:2009/10/26(月) 10:08:06
>>65
ローカルルールで發無しを 認める・認めない を選択できるように
すればいいだけだろ。

67 :デフォルトの名無しさん:2009/11/09(月) 18:50:47
このスレ復活してたのか
即落ちして終了したのかと思ってたよ

68 :デフォルトの名無しさん:2009/12/29(火) 01:17:36
上げ

69 :デフォルトの名無しさん:2009/12/29(火) 01:47:23
sage

70 :デフォルトの名無しさん:2010/01/18(月) 05:12:36
あげ

71 :デフォルトの名無しさん:2010/01/26(火) 21:01:46
ない

72 :デフォルトの名無しさん:2010/02/09(火) 17:49:03
とでも思っているのか

73 :デフォルトの名無しさん:2010/02/10(水) 00:56:47
テンホーチーホー連発させればいいだけだろ

74 :デフォルトの名無しさん:2010/03/06(土) 09:36:05
そうでもないよ

75 :デフォルトの名無しさん:2010/03/27(土) 13:12:15
ちゅーれん出たage

76 :デフォルトの名無しさん:2010/03/27(土) 13:20:21
おまえは明日しぬ
おめ

77 :デフォルトの名無しさん:2010/04/08(木) 12:11:49
この麻雀の問題、あなたはプログラミングできますか?史上最大のコーディングスキル判定
http://tsushima.2ch.net/test/read.cgi/news/1270357224/

78 :デフォルトの名無しさん:2010/04/23(金) 09:49:50
アミナがバファリン漬けにされてて、高津さんは実はひどい人と発覚
したあたりまでは読んだんだけど、その先どうなったんだろう。
ていうか、Kを庇って死んだチンピラが浮かばれないぜ・・・
そういう漫画だけど。

79 :デフォルトの名無しさん:2010/05/14(金) 11:59:49
そろそろおまいらの本気が見たい

80 :デフォルトの名無しさん:2010/05/14(金) 14:21:23
近代麻雀オリジナルに凍牌のスピンオフが載ってたね

81 :デフォルトの名無しさん:2010/05/14(金) 22:52:54
あのリモコンは吹いた

82 :デフォルトの名無しさん:2010/05/18(火) 06:25:42
http://japanese.joins.com/article/article.php?aid=129167&servcode=400§code=430

83 :デフォルトの名無しさん:2010/06/05(土) 05:54:23
1000なら次スレですごい脱衣マージャンがアップロードされる

84 :デフォルトの名無しさん:2010/06/22(火) 07:18:44
それは

85 :デフォルトの名無しさん:2010/06/27(日) 01:18:35
君が見た光

86 :デフォルトの名無しさん:2010/06/27(日) 22:20:52
>77の問題
C++の勉強を始めてから2日目で挑戦してみたんだけど
プログラム作るまでに5日かかった。結果正しく出たよ。

87 :デフォルトの名無しさん:2010/07/04(日) 10:00:30
天鳳shirou_0のタメロンタメツモ逆切れ粘着ストーカーが最強でしょ


88 :デフォルトの名無しさん:2010/07/17(土) 05:40:20
>>86
ソースは上げろ

89 :デフォルトの名無しさん:2010/07/18(日) 03:25:54
http://cmj3.web.fc2.com
なんか作ってみた

90 :デフォルトの名無しさん:2010/07/18(日) 12:36:39
>>89
goggle思い出した

91 :デフォルトの名無しさん:2010/07/18(日) 13:15:04
>89
まだ読んでないがよくやった

92 :デフォルトの名無しさん:2010/07/18(日) 23:50:47
感動した

このスレを定期巡回してきて
よかった

93 :デフォルトの名無しさん:2010/07/18(日) 23:58:22
>>89
ほれてまうやん

94 :デフォルトの名無しさん:2010/07/19(月) 00:04:52
>>89
素晴らしい
一年前に欲しかったサイトだ

95 :デフォルトの名無しさん:2010/07/19(月) 01:11:16
1年前なんて言わなくても
今であっても全然嬉しいサイトです ><;

96 :デフォルトの名無しさん:2010/08/02(月) 15:22:24
夏厨来いよ

19 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)