2010年07月01日

活動停止中

2ヶ月ぶりです。
コメントとかほったらかしで、すみませんでした。


言い訳的には

「来週には暇になる予定だから、それから返事すればいいかな」

なんて思ってたら、どんどん予定外のことが発生し続けて早2ヶ月って感じです。



そんなわけで今、日々の忙しさが自分の予想を遙かに上回って来襲してまして、こちらの作業まで手が回らなくなりました。
それも最近、数年単位で解消できないのが確定しまして、今後もいろいろ停滞する予定です。
ちなみに、またもや自宅サーバーのHDDが故障してしまい、当面は鳳凰民の解析も更新できません。


でもまー、やる気がなくなったわけではないのでツールはできるかいぎり維持します。
何か不具合があったらコメント下さい。
(ちょうど今日、天鳳の鯖が移動するみたいですね。こちらも何か影響あるかもです。)

牌譜の調査依頼は受けられなくなりましたが
不定期でも麻雀関連プログラムを何かやれたらいいなぁと思ってます。


ではまた。
posted by idaten! at 13:00| Comment(9) | TrackBack(0) | 開発日記

2010年04月08日

オンライン解析ツールの今後

解析ツールを修正しました。


それで、前回の続きですが、当サイトは

天鳳の非課金IDの牌譜URLを登録不可にします。

1週間くらいしたら非課金牌譜の新規追加だけできなくします。
個室や課金済の牌譜はOKですし、登録済みの非課金牌譜もそのままのつもりです。



牌譜の形式を調べて勝手に解析ツールを作るのも
非課金IDの牌譜URLから牌譜をダウンロードできるようにするのも
同じ非公式ツールだとは思いますが
天鳳側も重い腰をあげて対策しようとしているみたいなので
(いたちごっこをするのは簡単ですが)
まぁ、天鳳側がやらないでね、と言う部分はやめようかなと。
天鳳はいろいろザルですが、突っついても私はあまり幸せにはなれないので…


別に推奨する訳じゃありませんが、
それでもタダで非課金IDの解析をしたいよ!って人は
天鳳の牌譜は割と簡単に取得(課金化)できるのでご自分でお願いします。
IEのキャッシュから拾ってくるとか、非課金IDのURLを課金済のURLに変換するとか。



それで、非課金の牌譜を解析できないとなると
オンライン解析ツールの価値は激減するので、解析ツール閉鎖も考えたんですが
天鳳のSNS内では課金オンリーでも続けて欲しいと言うありがいたい意見をいただいたので
公式の解析ツールの開発状況を見守りつつ、
牌譜URL(課金済)から解析できるツールとして、
もう少しやってみようかなと思います。



おまけ1
ちなみに、こういう便利なツールを作った人もいます。
tw=?が間違っている気がしますが、ソースが公開されているので修正できる人がいれば直して欲しいですね。
(天鳳のSNSで作者の方に連絡したんですが、返信を貰えませんでした。)

おまけ2
ところで、牌譜の解析部分(java)を公開したら機能を追加したい人ってどのくらいいますか?
オープンソースとかやったこと無いんですが、もし意欲のある人がいるなら挑戦してみようかな
なんて、思い始めました。
posted by idaten! at 13:00| Comment(6) | TrackBack(0) | 開発日記

2010年04月07日

オンライン解析ツールって必要?

オンライン解析ツールで、またエラーが頻発しているみたいです。
昨日までは動いていたと思うんですが…
しばらく原因を調査します。


ところで、半年以上やってきたオンライン解析ツールですが
これ必要ですか?


つづきはまた後で。
posted by idaten! at 18:07| Comment(7) | TrackBack(0) | 開発日記

2010年03月31日

麻雀AIの叩き台

問題が簡単そうになったところで、具体的にどう選択するのか?
と言っても、そもそも私の麻雀の実力は初段程度しかなく
(それは棒聴即リー全ツに負ける程度の強さです)
AIについても詳しいわけでもなく
ニューラルネットワークだとかなんたらアルゴリズムだとか、
さっぱり分かりません。

なので、とりあえず適当なAIを考えて作ってみることにしました。
いろんな案はあるんですが、始めに作ろうと思っているのは…
続きを読む
posted by idaten! at 13:00| Comment(3) | TrackBack(0) | 開発日記

2010年03月30日

麻雀AIが選択するのは

麻雀AIとは、麻雀上で可能な行動を選択できるプログラム。


と決めつけました。

では、具体的に何を選択するのか
麻雀上で自分の考えを反映できる行動と選択内容を洗い出してみます。



打牌
・どの牌を捨てるか?

立直
・立直するか?しないか?

副露
・副露するか?しないか?
・どの形で副露するか?

終局
・終局するか?しないか?



こんな所でしょうか?

それ以外の行動は自動的なので選択する必要はありませんが
その行動があったという情報はAIに入力する必要があります。

他の人(プログラム)に選択を迫られた時、
AIは入力情報をもとに行動を選択して答えるだけです。
続きを読む
posted by idaten! at 21:00| Comment(0) | TrackBack(0) | 開発日記

麻雀AIは何ができるか決める

プログラミング的にも麻雀的にも参考になる事は無いと思いますが
私が麻雀AIを作っていく過程をぼちぼち書いてみようと思います。



まずは、麻雀AIに限らずプログラム的な何かを作る時
作ったものは何ができるのか?それを決めなければ作れません。

私の考えるAIとは、自分で設定した目標を達成するべく
ベストな行動を選択する仕組みだと思っています。
なので、


私の作る麻雀AIとは、麻雀上で可能な行動を選択できるプログラム


となります。
当たり前の事なんですが
こういうスタートイメージが無いと作れないんですよね。
続きを読む
posted by idaten! at 18:00| Comment(0) | TrackBack(0) | 開発日記

2010年03月29日

修正完了

解析ツールの修正が終わりました。
しばらくはツールが重いと思います。
なので、ちょっとエラーがでるかもしれませんが、勝手に回復するはずです。

2日以上解消しなければ、また報告お願いします。

続きを読む
posted by idaten! at 12:23| Comment(2) | TrackBack(0) | 開発日記

2010年03月27日

解析ツールのエラー

今朝からエラーが頻発してるみたいです。
数日中に対処します。
posted by idaten! at 17:44| Comment(0) | TrackBack(0) | 開発日記

2010年03月26日

麻雀AIを開発中

最近は麻雀AIを開発してます。
目標は、ユーザがカスタマイズ可能な遊べるAI。

最終的には、いろんな人が考えた麻雀AI同士を対戦させる
AI対戦の様な事ができたら楽しいかなぁ
なんて思ってます。

まず、カスタマイズ不可の設計で一通りの事が出来るAIを作って
その後、全部作り直しでカスタマイズ可能にしていく予定。
開発期間の目標としては、1年とか2年とか、その位。


とりあえず、打牌選択と副露選択の仕組みが少しできたところで
(仕組みだけなので、実際に選択するAI部分はまだ全然です。)
次は役の評価とかかな。
続きを読む
posted by idaten! at 13:00| Comment(9) | TrackBack(0) | 開発日記

2010年02月08日

解析ツール メンテナンス中

解析ツールを今日から毎日ちょこちょこメンテナンスします。
外見は変わりませんが…

その影響でエラーが起きると思います、長い間解消しなければコメントしてください

2010.02.15 追記
一応メンテナンス終了しました。
エラーで見られなかった現象は解消したと思います。
見られない人はコメントください。
posted by idaten! at 20:46| Comment(5) | TrackBack(0) | 開発日記

2009年12月14日

突破

とうとう、サーバーのHDD使用量が限界を突破しました。

今では1TのHDDでも格安で購入できる時代なのに

たかだか1〜2G程度であたふたするのがとても悲しいです。


とりあえず、小手先の対策その2を発動したので

もう1〜2ヶ月の延命はできたと思います。



ちなみに、まだ偏差値表示機能はできていません。

標準偏差を集計している途中で、

鳳凰卓の全員分の解析結果を出してみたくなって

その辺の作業してましたが

最近は、さらに別の事をやってます。




いろいろ手を付けて、いろいろやりかけ

ダメな趣味プログラミングの典型だなぁ
posted by idaten! at 09:20| Comment(3) | TrackBack(0) | 開発日記

2009年11月16日

解析ツール更新(集計結果の公開機能)

集計結果を公開できるようにしました。


idaten!の最近の解析結果
ブログに書くのがホントに恥ずかしいです(´Д⊂

まぁ私の成績はどうでもいいんです、要はデフォルトの集計条件を指定できますよって事デス。
また、集計条件を変更できなくする事もできます。
もちろん、非公開に戻す事もできます。
サーバーの負荷を考えて、常に変更できないようにしようかとも思いましたが
いけるところまでいってみます。
posted by idaten! at 12:00| Comment(2) | TrackBack(0) | 開発日記

2009年11月13日

集計結果の公開機能(案)

集計結果を公開する機能を付けようと思って、いろいろ試行錯誤しています。

単純にIDにパスワードを付ければ、あとはIDで表示できるようにするだけなんですが
牌譜を集計するのにいちいちパスワードも邪魔かな〜と思ってます。なので、

集計結果公開用のURLを発行してそのURLを知っている人だけ見られる

こんな仕組みにしようと思ってます。

プログラム的には、今のIDのハッシュを取って公開用IDを作って繋がりを保存しておけばOK。






集計結果を公開した人同士のランキングとか作りたいなぁ
posted by idaten! at 13:00| Comment(0) | TrackBack(0) | 開発日記

2009年11月11日

偏差値表示機能を作ってます

偏差値を表示する仕組みを考えたので作ってみました。
やっぱり、その場で見えるのが一番だと思ったのでこんな感じにしてみました。
(平均とか標準偏差はまだ出してないので、図の偏差値はランダムな数値を使ってます。)

偏差値表示

なめとんさんの偏差値表示を参考にしてカラーバーをオーバーレイ?で表示しています。
50点付近が黄色で、良くなると緑、悪くなると赤方向にグラデーションします。
マウスを数値の上にもっていけばツールチップで偏差値を表示します。

ほぼイメージ通りにできたので、ちょっとうれしいですね。
偏差値を出して実装するのが楽しみです。続きを読む
posted by idaten! at 13:00| Comment(4) | TrackBack(0) | 開発日記

2009年11月05日

解析ツール更新(良形・愚形情報の追加など)

解析ツールに以下の機能を追加しました。

・登録済みの牌譜一覧機能
・直近?戦の集計機能
(対戦数は日付で絞り込みした後カウントしています)


・非立直非2副露率を追加
・良形・愚形情報を追加
・良形・愚形での平均残り枚数を追加
・良形・愚形での平均幺九牌枚数を追加
・追っかけ情報のドラ情報を削除
・追っかけ情報に順目と残り枚数を追加

・副露時平均順目の不具合修正
・先制副露率の不具合修正
(これであってると思うんだけど…)

偏差値表示と解析結果の公開機能もできるだけ早く実装したいなぁ。
(付けるつもりだったんですがやりきれませんでした)
posted by idaten! at 17:45| Comment(2) | TrackBack(0) | 開発日記

2009年11月03日

結局、良形・愚形はどうしよう?

さて、分析はぐだぐだで筋道立てて何かを検証するというには程遠かったんですが
解析ツールに成果を反映させるとすれば、以下の2項目を追加すればいいのかな。
・平均残り枚数
・平均幺九牌枚数

順目が最も重要ですがもうあるので、平均残り枚数と平均幺九牌枚数を追加します。
残り枚数とは、見えている待ち牌(自分の手牌、河、副露牌)
を除外した、待ち牌の残り枚数です。
今気がつきましたが、分析ではドラ表示牌を除外するのを忘れてました。
解析ツールではドラ表示牌も除外しておきます。


項目追加はいいんですが結局、良形・愚形の分割をどうしようか?
私としては、待ち牌の残り枚数が6枚以上率が分かるとうれしいんですが
ユーザーには分かりにくいですし
結局、本家の解析ツールとあわせる事にします。

単騎、嵌張(辺張)、シャボは愚形、それ以外は良形。

ただし、うちのツールの場合は待ち形の判定が出来ないので
愚形はX種Y牌待ちの、Yが4枚以下と定義します。
(ノベ単、両面、3面張以上が良形)
posted by idaten! at 22:05| Comment(0) | TrackBack(0) | 開発日記

2009年11月02日

分析の成果

さて、やりたい事はいくらでもありますが、分析効率が悪く時間がたりないので
良立直、愚立直の分析はここまでにします。

個人的な成果はこんな感じです。
・javaからDBにアクセスする処理
・MySQLで100万件オーバーのデータ検索
・SQLで新しい構文を覚えた
・DBViewerを使えるようになった
・google chartを使ってみた

javaからDBへアクセスする処理は地味に良い経験だったかな。
技術的には調べるだけの話ですが、
ドライバーを用意したり、接続文字列を用意したり、クラスの使い方を覚えたり
一度やっておけば後は流用できるので次の機会があればその時、楽なハズ。


分析そのものの成果は無いに等しいですが、あえて挙げるなら

1.立直順目が早い
2.残り枚数が多い
3.残りの待ち牌に幺九牌が多い

と、和了率が高くなります。
影響度合いは上から順番に大きいと思えました。
そんなのは調べなくても分かっているので、
R2000付近の数値を出してみたって事になりますか…
んで、和了率が50%を越える分岐点は

残り3-4枚の立直で6巡目まで
残り6-8枚の立直で10巡目まで
残り9枚以上の立直で12巡目まで

こんな感じで、後は立直が3順遅くなると10%位和了率が下がります。
以上。



次は、放銃に関する分析をしてみたり、何切るをレベル分けしてみたり、してみたいですね。
押し引き判断もやってみたいんですが、分析で分かるものなのか…
posted by idaten! at 19:28| Comment(0) | TrackBack(0) | 開発日記

2009年10月19日

ロードマップ?

1.立直時の待ち形と和了率など
2.立直時の待ち牌の残り枚数と和了率など
3.立直時の順目と和了率など
4.それぞれの結果における、レートと和了率の相関

こんな感じの集計が進行中です。
グラフを出してる余裕はないので、集計結果を生で張っていきます。

これ以外に、待ち牌の種類について調べるにはどんなデータを出せばいいのか考えています。
同じレート、同じ待ち形、同じ残り枚数、同じ立直順目の時
残り待ち牌の種類ごと和了率をだせばいいのかな?
posted by idaten! at 21:08| Comment(2) | TrackBack(0) | 開発日記

データ登録中

立直の待ちと和了率について調べるためのデータをDBに登録してます。
テスト集計の結果に不自然さが無くなってきました。
バグのループからやっと抜けられたかな?

登録中の項目
・プレイ日時
・ルーム番号
・東南
・3麻4麻
・卓
・ルール
・プレイヤーのレート
・プレイヤーの局開始時の順位
・プレイヤーの局開始時の得点
・プレイヤーの局終了時の結果(和了とか放銃とか)
・プレイヤーの局終了時の得点移動
・プレイヤーのゲーム終了時の順位
・プレイヤーのゲーム終了時の得点
・立直情報(順目とか、待ちとか)

とりあえず、この情報で分かる範囲を調べていきます。

ゲーム数など
posted by idaten! at 12:14| Comment(0) | TrackBack(0) | 開発日記

2009年10月16日

問題点と解決策

良形・愚形以外にも良立直・愚立直を判断できるポイントを見つけたいと思って分析中です。

それで試しに

待ち牌の種類とその残り枚数(見える範囲)とリーチした順目についての和了率など

を調べたんですが、このデータは1万通り以上でてくるんですよ。
まぁ、当たり前っちゃ当たり前なんですがね。
エクセル君は以外と優秀で1万行でもさくさく動いてくれますが、
私のエクセル力が不足していて、ちょっと収集が付かなくなってしまいました。


それで、だいぶ悩んだ結果
いつか使わないとダメかなと思っていた方法で解決する事にしました。
続きを読む
posted by idaten! at 19:00| Comment(0) | TrackBack(0) | 開発日記