タグ

ブックマーク / kmo2.cocolog-nifty.com (8)

  • 麻雀ゲームが弱い理由(と羽生2冠が強い理由)~読みと見切り編~ - マッタリプログラミング日誌

    先日の記事が割と評判が良かったようなので、続きを書いてみたいと思います。 前回は、局面の数に着目して麻雀の難しさについて書きましたが、今回は読みと見切り(探索と枝刈り)について紹介したいと思います。 将棋の場合:MIN-MAX法 将棋やオセロのようなゲームは、情報科学的には2人零和完全情報確定交互ゲームに分類されますが、このタイプのゲームではmin-max探索という先読みとαβ法という見切り(枝刈り)が有効であることが分かっています。 次の図のような感じです。 今、Aという局面で先手の順番です。このとき先手にはB,Cという2つの手が考えられます。 先手がBを指すと後手はDとEの2つの手が考えられ、先手がCを指すと後手にはFとGという手が考えられます。 D~Gに書いてある数字はその局面で先手番からみた局面の有利さ(形勢判断)を数字化したものです。先手は出来るだけ数字が大きい局面に誘導したいで

    麻雀ゲームが弱い理由(と羽生2冠が強い理由)~読みと見切り編~ - マッタリプログラミング日誌
    otsune
    otsune 2012/05/25
  • 槓のルール考えたやつ出て来い - マッタリプログラミング日誌

    槓がらみのGUI操作部分とゲーム進行役部分を作成中 毎度思うんだが、麻雀ゲーム作ってると槓のルール考えたやつに文句を言いたくなる。 槓こそが、麻雀を面倒なものにしてる諸悪の根源に思えてならない。 チャンカンとかリンシャンとか作るの当に面倒くさいし、明カンのときのカンドラ後めくりのルールなんて、明カンしたあと暗カンしたらどうやってドラをめくるのかとか当にちゃんと考えてるかといいたくなるし、一発とかハイテイとかとの複合のルールもローカルルール満載だし。 それに、三槓子とか四槓子とか、役の難易度と点数設定のバランスに無理がある。 チャンカンをロンせずにスルーするとフリテンになるのに、つも上がりできるときに上がらずにカカンしても、フリテン扱いにならないのもなんだか納得いかないし、プログラム作るのが無駄に面倒になる。 そもそも何で、カンした後の補充牌を王牌からとるんだろう。どうせ王牌を14枚残す

    槓のルール考えたやつ出て来い - マッタリプログラミング日誌
    otsune
    otsune 2010/06/30
  • これから麻雀ゲームを作り始めようとする人に - マッタリプログラミング日誌

    ITProの地球に優しいアルゴリズムの連載で麻雀の役判定のアルゴリズムが紹介されてます。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070516/271225/?ST=develop&P=1 参考までに。 はてぶのブックマーク数をみるとこの記事を書いている現在で236もブックマークされている。 結構麻雀プログラムに興味がある人は多いのでしょう。 これから麻雀ゲームを作り始めようとする人に僭越ながらアドバイスを。 役判定プログラムは麻雀ゲーム作るとき最初のほうで作り始める人も多いでしょう。 そして多くの人は、はじめに作るときは性能を考えず確実に動作するものを作ろうとすると思います。 ですが、役判定プログラムの処理性能はかなり重要で、後々AIの強さに響いてきます。 また、役判定に限らず、麻雀ゲームを作っていると何度も処理速度の問題で悩まされ作り直

    これから麻雀ゲームを作り始めようとする人に - マッタリプログラミング日誌
    otsune
    otsune 2007/07/08
    たぶん、最初に完成したプログラムがあって、其れをネタに解説記事を書いちゃってるのが判りにくくしてる原因なんだろうな
  • 東風荘牌譜形式のライセンス - マッタリプログラミング日誌

    まだまだ、鳴き対策の修正中。 全然作業が進んでないんだけど、脳内では次の次(0.8.10か0.9.0)での機能を考え中。打ちスジの修正ではなくて機能追加をする予定でいる。 修正項目としては以下のどれか(または複数の項目)をやる予定。 ○GUIの修正 ○牌譜 ○ウェイト 牌譜は東風荘形式のデータを出力してみようと思うんだけど、著作権などの知的財産権上問題がないかが多少気に掛かるところ。 ちょろっとWEBで調べたところによると、データフォーマットそのものに著作権は及ばないらしい。弁護士などのページを調べたら、EXCELやWORD形式のファイルを出力するソフトを作ったとしても著作権上は問題がないという認識らしい。(ただし、GIFやMPEGのように著作権ではなくて、特許で権利をガードしているものもある。)。 はっきりとした判例があると楽なんだけど、見つからなかった。似たようなものにTVゲームのセー

    東風荘牌譜形式のライセンス - マッタリプログラミング日誌
  • K&Rの弊害 - マッタリプログラミング日誌

    綺麗なプログラムを書くのは難しい。 そもそも、綺麗の基準が人によって違ったりする。時々、つまらない違いで喧嘩になったりもする。 つまらない例の最たるものが、インデント、{のぶら下げ方、と2単語のつなげ方(fooBarかfoo_barか)、カッコの前後の空白。 これらは別にどのように書いたところで、統計的にバグの数に違いがないという結果が出てる。チームで統一さえ取れてれば別にたいした問題ではないんだけど、どいつもこいつも自分の感情だけでギャーギャーわめく。案外科学的じゃないんだなソフトウェア業界って奴は。 他にも、Cの場合で意外とケンカになるのが、K&R発祥のいかにもCっぽい書き方 例えば、こんなのとか if ( (fp = fopen("file.txt", "r")) != NULL ){ こんなの while (*p++ = *q++); K&Rはそもそも、Cの特徴を際立たせるため他の

    K&Rの弊害 - マッタリプログラミング日誌
  • 1フーロー和了集計 - マッタリプログラミング日誌

  • 役読みアルゴリズム - マッタリプログラミング日誌

    立直牌の描画部を作成中。 同時に、脳内では、Version0.8.4を出した後の機能を検討中。 今のところ、次はパイの大きさの問題と、鳴き仕掛けへの防御についてを同時にやる予定。 鳴き仕掛けへの防御アルゴリズムの実現方法として、今アイデアとして考えているのが、ベイジアンフィルタを用いた役読みアルゴリズム。 GoogleとかMSがベイズ理論に注目してるって記事を読んだときから、気になって、WEBで調べていたけれど、スパムメールフィルタ(ベイジアンフィルタ)などはベイズ理論の典型的な応用例だそうだ。 ベイジアンフィルタは麻雀にかなり応用が出来そうな予感がしてる。 たとえば、鳴き仕掛けへの防御。 鳴き仕掛けへの防御は、門前と異なって、役や点数を読むことがある程度可能。それをコンピュータにやらせることを考えたときに、スパムメールか通常のメールかを判断するのと同じ要領で役を読む(例えば、混一かどうか

    役読みアルゴリズム - マッタリプログラミング日誌
    otsune
    otsune 2006/01/26
    >ベイジアンフィルタは麻雀にかなり応用が出来そうな予感がしてる。
  • まったり麻雀Version0.8公開します - マッタリプログラミング日誌

    おおおおおーーー!!(≧∇≦)ウレシー 遂に遊べる日がやってきましたね。 早速ダウンロードしてプレイしてみましたが いきなり大三元和了られて2着。。 (゚皿゚; ヤメレ 結構CPU積極的に晒しますね。 他のゲームと違うところはガードが若干堅めなのと 聴牌速度が早そうな点かな。 まだ半荘1回しか打ってないので何とも言えませんが 勤務中に打ってみたいと思います。 久し振りにワクワク感ありw ってことで、完成おめっとヽ(´▽`)/ 早速5回打ちました。 2→2→4→1→2 速度重視の打牌っぽく全体的に攻撃的。 ドラの見切りが早いかも。 こちらが翻牌喰ってドラ対子のところに 七対子二向聴で生牌のドラを切ってきたのが謎? 一家リーチに対する守備は堅いが 二家リーチになるとノーガードになる。 現物がないと不要牌を切る仕様なのだろうか? 染め手に対する数牌絞りはGood(字牌除く) しかし、そこにリーチ

    まったり麻雀Version0.8公開します - マッタリプログラミング日誌
  • 1