サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
kmo2.cocolog-nifty.com
ネット麻雀とかネット将棋では強さを表す指標値として使われているレート(イロレーティング)について前から少し疑問を持っていました。 その疑問とは、休日ばかりプレイするユーザや、平日ばかりプレイするユーザ等、生活スタイルの違いでユーザが時間帯毎にグループ化されていて、平日の方が強いユーザが集まってて、休日にプレイしたほうがレート的に得とか(あるいはその逆)が有るんじゃないかということです。 ちゃんと調べたデータを見たことがなかったので、将棋倶楽部24をサンプルにちょっと調べてみました。 現在、将棋倶楽部24に将皇というソフトが常駐していて、ユーザの挑戦を24時間いつでも受けられるようになってます。このソフトの1600局のデータを基に、平日の安定Rと休日の安定Rの違いを集計した結果、以下のようになりました。 将皇Lv2のトータル安定R(信頼区間95%) 889(870~908) 将皇Lv2の土、
アプリストアの台頭、クラウド化、タブレットスマホへのシフト、Windows8。 これらが、無料のソフト配布することを趣味とする人間にはつらい状況になっていること、そして自分が若くないためか、「アマチュアプログラマとしての死」を意識する機会が最近結構あります。 そもそも私がやりたいことは、麻雀を真剣に取り組んでいる人の相手ができるガチで強い麻雀アルゴリズムを作ることだったのですか、環境やUIの変更にあまりにも多くの時間を割かれてしまいなかなか肝心の思考アルゴリムの開発に手が回らなくなっていました。 実際Ver0.8からVer0.9へシフトしたときも2年近い時間をかけてしまいました。 死ぬまでの間にどれだけの時間を開発に費やせるかを考えたとき、もう、余計なことをしている時間は無いとも感じています。 次のメジャーアップデートに向けての作業は、私が本来やりたかった思考アルゴリズムの刷新にすべてのエ
先日のブログエントリに、LUFFYさんから以下の質問がありましたので、お答えします。 まったり麻雀の押し引き判断は「科学する麻雀」に書かれている基準よりかなり押しに寄っていると思ったのですが、あれは一体どのような計算式で出しているのですか?「科学する麻雀」ではベタオリが100%成功するものとして押し引きを計算していますが、オリウチの可能性を考慮するとあのような判断になるという事でしょうか? 押し引き判定の基本的な考え方は科学する麻雀と同じです。しかし、以下の点に違いがあります。 放銃点数と確率の違い 科学する麻雀の押し引き判断で利用している振り込んだときの点数は、ツモ和了もロン和了も一発もすべて入った点数になっていますので、実際の放銃点数より高く見積られています。まったり麻雀では、そういった点を考慮して放銃点数を算出しています。 また、ゼンツしたときに放銃する確率の想定もまったり麻雀と科学
先日の記事が割と評判が良かったようなので、続きを書いてみたいと思います。 前回は、局面の数に着目して麻雀の難しさについて書きましたが、今回は読みと見切り(探索と枝刈り)について紹介したいと思います。 将棋の場合:MIN-MAX法 将棋やオセロのようなゲームは、情報科学的には2人零和完全情報確定交互ゲームに分類されますが、このタイプのゲームではmin-max探索という先読みとαβ法という見切り(枝刈り)が有効であることが分かっています。 次の図のような感じです。 今、Aという局面で先手の順番です。このとき先手にはB,Cという2つの手が考えられます。 先手がBを指すと後手はDとEの2つの手が考えられ、先手がCを指すと後手にはFとGという手が考えられます。 D~Gに書いてある数字はその局面で先手番からみた局面の有利さ(形勢判断)を数字化したものです。先手は出来るだけ数字が大きい局面に誘導したいで
先日、将棋界では、米長永世棋聖vsボンクラーズの対局が行われ、ボンクラーズの勝利でおわりました。このことは、各メディアでニュースとして取り上げられ、ネット上の電子掲示板などでも話題になっていたようです。その話題のなかで、他のゲームはどうなんだ、麻雀はどうなんだ、という話がでてきます。そういった場でよくでてくる話は大体こんな感じです。「麻雀は、イカサマが可能なのであまり真剣に思考ルーチンの研究開発がなされていない。金にならないから誰もやらない。だから弱い」のだと。まあこれも確かにその通りなのですが、麻雀は将棋とは違った難しさがあるのです。 まったり麻雀は、他のコンピュータ麻雀ソフトよりは頑張ってる方だと自負していますが、人間のトップクラスの人から見ればまだまだな部分も多いでしょう。 コンピュータ将棋は、全幅探索、後方枝刈り、棋譜をベースにした教師あり機械学習をセットとしたいわゆるボナンザメソ
実は数年前から気がついていたのですが、googleトレンドによると、"麻雀"の検索数は年末年始に跳ね上がる傾向があるようです。 「数年前に気が付いてるなら数年前に記事にしろよ」とか「正月3が日がとっくに過ぎてから正月ネタかよ」とか数年と1週間タイミングが遅れてるという指摘もあろうかとは思いますが、とにかく下のGoogleトレンドのグラフを見てください。 ※クリックすると画像は大きく表示されます 昨年の年末年始はなんだか元気がない感じですが、それ以外の年は年末年始に検索数が急上昇する傾向が見て取れると思います。 また、年末年始以外にも目に付くところでは、2009年の4月~9月に検索数がアップしてます。これはアニメ「咲 -Saki-」の放映期間と一致しておりその影響であると考えられます。これについては後でじっくり検証したいと思います。 さて年末年始に急上昇する現象についてですが、私はてっきり、
和了時に表示するダイアログを作成。 画面はこんな感じ。 今回役の数に応じてダイアログのサイズを変更するようにしたのだけれど、気になるのが役の最大複合数。 役の数に応じてダイアログの大きさを変更した場合、役が複合しすぎてダイアログの縦の長さが大きくなりすぎてしまい、ダイアログが1024x768の画面内に収まらなくなってしまうケースが無いだろうかと心配している。(なので問題のポイントは飜数ではなくて役の数) 私が考えた役の最大複合数は以下のパターンの15個だと思うんだけれど、これ以上に役が複合することってあるのだろうか。 東場、東家 12中中 [暗槓:東東東東][暗槓:発発発発][暗槓:白白白白] ツモ3 立直 一発 海底撈月 門前清模和 混一色 全帯 三暗刻 三槓子 小三元 場風 自風 白 発 ドラ X 裏ドラ Y
槓がらみのGUI操作部分とゲーム進行役部分を作成中 毎度思うんだが、麻雀ゲーム作ってると槓のルール考えたやつに文句を言いたくなる。 槓こそが、麻雀を面倒なものにしてる諸悪の根源に思えてならない。 チャンカンとかリンシャンとか作るの本当に面倒くさいし、明カンのときのカンドラ後めくりのルールなんて、明カンしたあと暗カンしたらどうやってドラをめくるのかとか本当にちゃんと考えてるかといいたくなるし、一発とかハイテイとかとの複合のルールもローカルルール満載だし。 それに、三槓子とか四槓子とか、役の難易度と点数設定のバランスに無理がある。 チャンカンをロンせずにスルーするとフリテンになるのに、つも上がりできるときに上がらずにカカンしても、フリテン扱いにならないのもなんだか納得いかないし、プログラム作るのが無駄に面倒になる。 そもそも何で、カンした後の補充牌を王牌からとるんだろう。どうせ王牌を14枚残す
微妙。 麻雀をやってるときに、「統計データが少なすぎて有意差が出ないので確かなことはいえません」なんて悠長なことは言ってられない。最初は主観でエイヤと予測を立てて行動をし、捨て牌が増えて、新たなデータが出るたびに当初の予測を修正していくわけで、それはまさにベイズ統計の得意分野だと思う。 それに、麻雀ってのは条件付確率の塊なので、ベイズ統計は相性がよいんじゃないかと思ってる。 なのでちゃんと理解したいと前から思っているんだけど、普通の統計さえまともに理解してない私にとって今までのベイズ統計の本は難しすぎる。 この本は、ある程度理論はおいといて、実務者向けに応用例を提供している。ただ、応用例の紹介としてはそれなりに価値があるんだけど、この本ではベイズを使えるようになるのは難しいのではないかと思う。 書いている人はマイクロソフト社の人らしく実際実務にベイズを活かしているんでしょうが、実務のプロで
なにか使える麻雀素材は無いものかといろいろ検索してたら驚きの発見。 もしかするととっくに知っている人も居るかもしれませんが、なんと、UNICODE(文字コードです)に麻雀牌が割り当てられる予定があるようです。 ISO/IEC JTC1/SC2/WG2 N3147 Proposal to encode Mahjong, Domino, and Draughts symbols in the UCS(PDFファイル) Roadmap to UNICODE wikipedia日本語版のUNICODEページ Proposalが出たのは2006年なんですな。花牌も入るっぽいけど、赤ドラは無いみたい。 コード順が、索子->ピンズ->萬子なのはまだ許容範囲だけど、白発中が中発白の順にコードが割り当てられるのがいやな感じ。 索子=バンブー、ピンズ=サークル、萬子=キャラクターズってのは知ってましたし、白発
コンピュータ将棋協会のブログで知ったのですが、ゲームプログラミングの学会GPW2007の話題の中心はボナンザタイプの機械学習による評価関数のデザインと、UCTらしい。 機械学習については、以前調べて、大体のどんな感じのものかおぼろげに理解したけれど、UCTってなんなのか、まったく言葉すら知らなかったのでちょっと調べてみた。 ついでにプログラムを組んでみた。 UCTって何か? これは、モンテカルロ囲碁で最近流行の手法で、UCB1を使ってゲームの木のノードを下ってからモンテカルロシミュレーションする手法のことらしい。 UCB1ってなにか? ぶっちゃた言い方をすると、パチンコの台選びを想像するのが理解しやすいかも。 釘が読めない前提でパチンコで台を選ぶとき、それぞれの台を試し打ちして、スタートチャッカーへの入賞率が高い台(いわゆる良く回る台)を探す。 そのとき、「そこそこ回るパチンコ台を見つけた
先日、Nifyから新しいブログパーツブログ妖精ココロが提供が開始された。ちょっと試してみたら「牌は多い方が来るよ」とか「新しいバグが……」みたいなセリフもしゃべった。なかなか面白い。 でも可愛すぎてこのブログには合わない。っていうか萌えキャラを自分のブログに張るのはなんだか恥ずかしい。(今はこのブログにも下のほうに表示してるけどそのうち消すかも。) そんな恥ずかしがり屋さんのためにNiftyではMyNiftyのページでデザインをココロにしてひっそりと楽しむサービスも提供してる。 けれど、単にWEBのデザインがココロになるだけで、ココロが喋ってくれない。 なので、せっかくVistaに乗り換えたのでVistaのサイドバーガジェットの作り方をしらべてココロをサイドバーガジェットとして登録してみた。こんな感じ。 ココロの利用登録が済んでいれば、やりかたは割りと簡単。 萌えキャラ好きを世間に認知され
まったく、あんな手に引っかかる馬鹿はどこのどいつだよと思ってましたが、自分の親でしたか、そうですか。 朝自宅に電話ががかかってきて私が痴漢をしたので示談交渉中だとのこと。相手の女性はレイプされて流産?した経験があるので痴漢にあって通常以上にすごくショックを受けている。私は泣いていて、魔が差した、父親には言わないでくれと言ってたらしい。 私は公安に捕まっていて携帯電話も没収されていてることになっていて会社には体調不良で休むと連絡をしてるとのこと。すでに弁護士もそばにいると。父には言うなと念を押した上で、示談にしたいので金を振り込めと、言ってきたらしい。 私の電話番号を教えろといわれ、母は、素直に私の携帯電話の番号を教えてしまったらしい。名前も名乗ったそうだ。その直後、私の携帯には頻繁に出会い系サイトの料金滞納分を払えと催促電話がかかってくる。べたな脅迫で面白がって相手していたんですが、何度相
ITProの地球に優しいアルゴリズムの連載で麻雀の役判定のアルゴリズムが紹介されてます。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070516/271225/?ST=develop&P=1 参考までに。 はてぶのブックマーク数をみるとこの記事を書いている現在で236もブックマークされている。 結構麻雀プログラムに興味がある人は多いのでしょう。 これから麻雀ゲームを作り始めようとする人に僭越ながらアドバイスを。 役判定プログラムは麻雀ゲーム作るとき最初のほうで作り始める人も多いでしょう。 そして多くの人は、はじめに作るときは性能を考えず確実に動作するものを作ろうとすると思います。 ですが、役判定プログラムの処理性能はかなり重要で、後々AIの強さに響いてきます。 また、役判定に限らず、麻雀ゲームを作っていると何度も処理速度の問題で悩まされ作り直
まだまだ、鳴き対策の修正中。 全然作業が進んでないんだけど、脳内では次の次(0.8.10か0.9.0)での機能を考え中。打ちスジの修正ではなくて機能追加をする予定でいる。 修正項目としては以下のどれか(または複数の項目)をやる予定。 ○GUIの修正 ○牌譜 ○ウェイト 牌譜は東風荘形式のデータを出力してみようと思うんだけど、著作権などの知的財産権上問題がないかが多少気に掛かるところ。 ちょろっとWEBで調べたところによると、データフォーマットそのものに著作権は及ばないらしい。弁護士などのページを調べたら、EXCELやWORD形式のファイルを出力するソフトを作ったとしても著作権上は問題がないという認識らしい。(ただし、GIFやMPEGのように著作権ではなくて、特許で権利をガードしているものもある。)。 はっきりとした判例があると楽なんだけど、見つからなかった。似たようなものにTVゲームのセー
そろそろ、本体のアルゴリズム修正に着手する予定だけど、その前に鳴き対策に使うデータ表の整理を実施。 データを集計して検証するにしても、ある程度結論のアタリをつけてから、データを取らないと、効率が悪すぎてどうしようもない。なんでやっぱある程度私自身の麻雀力を上げないといけないだろう。 これでも、このゲームを作るようになってから結構東風荘のRは上昇した(トップクラスの人には遥かに遠く及ばないけれど)。牌効率のアルゴリズムを作って検証してるときは和了率が上昇したし、ベタオリのアルゴリズムを作ってるときは振込み率が下がった。前にも書いたけど自分の打ち方をコンピュータにやらせているというより、COMの打ち方を見て私自身が打ち方を変えている感じ。ゲーム作成を始める前の数年間よりゲーム作成を開始してからの1年間の方がはるかに成長が早かった。 でも、これから先は、どんどん難しい局面を考えていく部分を作って
綺麗なプログラムを書くのは難しい。 そもそも、綺麗の基準が人によって違ったりする。時々、つまらない違いで喧嘩になったりもする。 つまらない例の最たるものが、インデント、{のぶら下げ方、と2単語のつなげ方(fooBarかfoo_barか)、カッコの前後の空白。 これらは別にどのように書いたところで、統計的にバグの数に違いがないという結果が出てる。チームで統一さえ取れてれば別にたいした問題ではないんだけど、どいつもこいつも自分の感情だけでギャーギャーわめく。案外科学的じゃないんだなソフトウェア業界って奴は。 他にも、Cの場合で意外とケンカになるのが、K&R発祥のいかにもCっぽい書き方 例えば、こんなのとか if ( (fp = fopen("file.txt", "r")) != NULL ){ こんなの while (*p++ = *q++); K&Rはそもそも、Cの特徴を際立たせるため他の
立直牌の描画部を作成中。 同時に、脳内では、Version0.8.4を出した後の機能を検討中。 今のところ、次はパイの大きさの問題と、鳴き仕掛けへの防御についてを同時にやる予定。 鳴き仕掛けへの防御アルゴリズムの実現方法として、今アイデアとして考えているのが、ベイジアンフィルタを用いた役読みアルゴリズム。 GoogleとかMSがベイズ理論に注目してるって記事を読んだときから、気になって、WEBで調べていたけれど、スパムメールフィルタ(ベイジアンフィルタ)などはベイズ理論の典型的な応用例だそうだ。 ベイジアンフィルタは麻雀にかなり応用が出来そうな予感がしてる。 たとえば、鳴き仕掛けへの防御。 鳴き仕掛けへの防御は、門前と異なって、役や点数を読むことがある程度可能。それをコンピュータにやらせることを考えたときに、スパムメールか通常のメールかを判断するのと同じ要領で役を読む(例えば、混一かどうか
おおおおおーーー!!(≧∇≦)ウレシー 遂に遊べる日がやってきましたね。 早速ダウンロードしてプレイしてみましたが いきなり大三元和了られて2着。。 (゚皿゚; ヤメレ 結構CPU積極的に晒しますね。 他のゲームと違うところはガードが若干堅めなのと 聴牌速度が早そうな点かな。 まだ半荘1回しか打ってないので何とも言えませんが 勤務中に打ってみたいと思います。 久し振りにワクワク感ありw ってことで、完成おめっとヽ(´▽`)/ 早速5回打ちました。 2→2→4→1→2 速度重視の打牌っぽく全体的に攻撃的。 ドラの見切りが早いかも。 こちらが翻牌喰ってドラ対子のところに 七対子二向聴で生牌のドラを切ってきたのが謎? 一家リーチに対する守備は堅いが 二家リーチになるとノーガードになる。 現物がないと不要牌を切る仕様なのだろうか? 染め手に対する数牌絞りはGood(字牌除く) しかし、そこにリーチ
いままで自宅のサーバでまったり麻雀のダウンロード用ページを運用していましたが、ISPとの契約を解除して、自宅のサーバを閉鎖したので、今後はGoogle Dirveからダウンロードできるように修正しました。 リンクは右側のダウンロードの画像ボタンからお願いします。 ここ数年体調を崩すことが多くなり、まったり麻雀の開発に割り当てる体力がない状態が続いていました。更に今年になってからいくつかの病気を併発するようになってきており今後の開発を続けていくのはもう難しいかもしれません。 実装できていない要望もコメントで頂いていますし、やってみたいアイデアも多数あるのですが、まとまった時間と体力を確保する目処が今後立つかどうかわかりません。 このブログはそのまま残しますが、コメントで要望をしていただいても、すいませんが実現できる見込みはない思ってください。 といいつつ突然バージョンアップしたりするかもしれ
まったく非常に腹が立つ。なにがって、ココログのレスポンスの悪さだ。 フリー版のココログサービスが始まって以来、私が記事を書いてる時間帯は使い物にならない。 この件について@nifty側から説明が出ている。 スタッフによる説明 社長からの説明 要点は以下のとおりらしい。 ●フリー版をはじめたことによってレスポンスが悪化したのではない。 ●フリーと従来版はシステムが別である。 ●負荷はトラックバックスパムによるもの。 (これに、加えて社長からはフリー版のほうが高機能であることについて、わけわからん説明文があるが、意味不明で要点がまとめられん。) スタッフからの説明にはご丁寧にもトラックバック数についてグラフがのせてあるが、まったく説明になってない。 この件について、自称デジタル&心理戦のハイブリッドギャンブラーである私の視点で深読みする。 まず、グラフから読み取れることは以下の4点。 ●日付が
このページを最初にブックマークしてみませんか?
『マッタリプログラミング日誌』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く