おまいら最強の麻雀プログラムしてみろよ Part2
946 :
デフォルトの名無しさん:2008/11/27(木) 07:59:18
フォローをするけど
>>942を書いたものだが自作自演じゃないよ
でも傍から見てるとあと1年は掛りそうなペースだな
人の意見を取り入れないからだれも手伝わなくなっちゃうんだよ
配牌の方法がわからん俺にヒントくれ
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
配牌で配られる手牌って別に自分で
決めるわけじゃないだろ???
AIだけ作ってる奴なんていない。みんな自前で雀卓周りのコード書いてる
でなきゃAI強化したとき本当に強くなったか検証できないだろ
952 :
デフォルトの名無しさん:2008/12/01(月) 23:45:01
なら配牌の方法くらい自分で好き勝手に
定義すりゃいいじゃん
わざわざ聞くことでもないだろ
アホか。俺は答えた方だ
954 :
デフォルトの名無しさん:2008/12/02(火) 00:06:47
奈々氏ばっかなんだから
どっちがどっちなんか分るわけねーだろ
並の読解力があれば想像付くんだけどね。
136通りの牌をシャッフルして順番に並べて
席順とサイコロ振れば、配牌は自動的に決まるだろう。
白とか赤牌を入れたいときはどうすればいいの?
入れたって全体の数が増えるんじゃないんだから、id差し替えればいいだけでは
959 :
デフォルトの名無しさん:2008/12/06(土) 21:58:05
結局配牌はできたのか?
その前に自分自身に少なくともプロ並みの雀力がないと駄目だと思から、
俺は雀力向上と数学の知識を身につけてる。
配列のシャッフルが実装できないやつなんていないだろ
空鍋をかき回すように中身のない配列を…
963 :
デフォルトの名無しさん:2008/12/06(土) 22:20:22
>>960 それはプログラム投げ出したいいわけか?
「WOLF RPGエディター」とは?
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
慣れた人やRPGツクールでは物足りないけどプログラミングはちょっという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、バグ報告などなど書き込みお願いします。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
一度サイトにお越しくださいませ。
2ちゃん本スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1226294070/l100
>>960のAIは完成しないに1000ジンバブエドル
年明けには第4ジンバブエドルの発行来るかな?
今度は何桁切り捨てるんだろうね。
「国(政権)の崩壊が先に来る」に100第4ジンバブエドル。
ひとつ質問。基本的な麻雀の質問ですまないが。
暗槓3つと1枚の計13枚は七対子で言うと何向聴?
例えば、AAAABBBBCCCCDだとすると自作で判定させると5向聴なんだが、
実際5枚入れ替えても七対子として聴牌しない。
普通に考えたら六向聴だね。
多分だけど、たとえば AAEEBBFFCCCDD みたいになったときに、
CCC を対子ひとつと単騎の待ち牌とに誤認してるんじゃないかと思った。
>>968 槓しておいて七対子は無理でしょ
手牌が AAAABBBBCCCCD なら既にテンパイでは?
>>970のようなやつがジャンラインを作ってしまうと言うことがよくわかった
973 :
デフォルトの名無しさん:2008/12/10(水) 07:56:08
>>969 うわ本当だ。そっちのパターンでも間違えた。
AAEECCCZXYWVUみたいな他がバラバラの時は正しかったから見逃してた。
>>970 11112222・・・じゃなくてAAAABBBB・・・って書いた理由を察してくれ。
その誤解を避けるために
>>959はAAEEBB・・・ってしてくれたけど。
>>971 字牌でで順子が作れるやつかw
>>972 おお。同じ考え方だ。
でもそのページの一番下も14枚で考えてるだけで6向聴の間違いじゃないのかな?
実際ここから七対子狙いになんか行かないから実用上問題無いんだが、
例えば特殊なルールで七対子縛りとかあった場合にリアル麻雀では
何向聴扱いなのかなと疑問に思ったもので。
AAAABBBBCCCCDなら、カンを3回すれば2向聴じゃないの?
まあすぐ流されそうだが。
>>974 >でもそのページの一番下も14枚で考えてるだけで6向聴の間違いじゃないのかな?
AAAABBBBCCCCDDから何を捨てるかという話ですね
AAAABBBBCCCCDなら6向聴
AAAABBBBCCCDDなら5向聴
もうすぐクリスマスだけど、どうよ?
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クラスを追加
どうよも何もここで完全に放置しているし
このスレも収束かな?
チョンボ君はあれだけの情熱を見せたんだからきっと作ってるよ
実は前に向聴数を高速に数えるルーチン考えたことあるんだよね
最初から面子単位で考えていくんだよ
一筒なら、一筒二筒三筒しか考慮しない
面子に1つ足りないのも一応保持しておいて
一筒三筒だったら、あと1つで面子、と数える
こうすると、全種類の牌をいちいちツモって来なくてもいい
それだけ聞くと凄く穴がありそうだな
あと1つで面子ってところはちょっと気をつけないと行けないんだけど
一筒二筒だけとか二筒三筒だけの時にヘタすると重複したりするんで
他にも何かあった気がするが思い出せない
>>980 一三三三四五五五七
とあったら、どうするの?
普通にテーブルで処理するのが一番高速だと思うね
実行回数が少ないなら、再帰で抜き取っても十分高速だろうし
最短いくつであがれるか調べるのは意味ないと思う。
街牌が一枚もなければ、絶対にあがれない。
すでに表示されている牌を除いた牌全体から、ランダムで試行して最短上がりの平均取った方がマシ。
ランダム試行じゃなくても、全部調べりゃいい気もするが
しかしひっかけとかしないと、単純にこれだけだとなかなかあがれないかもな。
起こる確率も大事だ。
めったに起こらないなら無視しても良い。
起こる確率とその得点をかけた物の平均値が大事だろう
988 :
デフォルトの名無しさん:2008/12/28(日) 16:00:40
話がややこしくなってるな。。。
そもそも、前提で
・ 全ての組み合わせて求めて、一番小さい向聴数を確実求める
・ マージャンゲームに実装するために、出来るだけ効率的に向聴数を求める。
↑の二つだけでも、アルゴリズムは全然変わってくる
向聴数を求めることが意味がない。あと一枚でも牌がでなければ確率0。
見えていない牌から期待値を求める方が価値ある
だからランダムにしなくても
晒されてない牌の数を数えれば
きっちり確率は出るだろう
>>990 きっちり確率を出すだけなら、晒されていない牌を数えるまでもなく出る
さもなくば、晒されていない牌を数えてもきっちりとは確率は出ない
こんなものは、麻雀打ちとしても、麻雀プログラマとしても当たり前だろ
992 :
デフォルトの名無しさん:2008/12/28(日) 20:23:42
おまえら、麻雀プログラム作る気
本当にあるのか?
すげえ初歩的な話に終始しているようだが?
ウザ
>>983 シュンツを作ろうとする前に
その構成要素がコウツを形成するかどうかを見る
で枝分かれ分岐していく
最終的にはツリーを作る
1向聴、2向聴ぐらいなら総当りでも間に合うけど
もっとできてないと対策は欲しい
どの程度できてるかによって作戦は変わってくるはず