カテゴリ
以前の記事
|
実は一週間ほど前から、天鳳対戦ログの管理について頭を悩ませている問題1つがあります。それは対戦日時に関する情報です。
現在、おさむくんの協力もあって、成績管理ツールをmjlogファイルから直接データを読み込むプログラムを作っているんだけど、対戦日時を正確に判断することができないという問題に直面しちゃいました。 そもそもmjlogファイルはファイルを展開をしなくても、ファイル名から対戦の日付と時間の情報までは得られます(逆に言うと、mjlogファイルの中身を調べても対戦日時に関する情報は書かれていません)。例えば、 2009031123gm-0061-0000-e82aaa78&tw=1.mjlog というファイル名であれば、2009年の3月11日23時台の対戦であることが分かります。しかし、東風戦など対戦が短時間で終わる場合などは、上の例で言えば23時台をまたがずに次の対戦を始めると、mjlogファイル名の対戦日時情報が書かれている部分は全く同じになってしまい、分単位の情報が得られない以上、どちらが先に行われた対戦かどうか判断することができません。 唯一の方法は、1回対戦が終わるたびに牌譜解析スクリプトで牌譜データをダウンロードすれば、ファイル名からの判断はできませんが、ファイルの作成日時の情報が変わりますので、ここで判断することができます。複数の対戦データを同時にダウンロードした場合、タイムスタンプは全く同じになってしまい判別が付きません。でも、いちいちこんなことやるのは死ぬほど面倒くさいよね(^^;) いぶしのけんさんがつのさんに確認を取ってくれたようですが、残念ながらこれは仕様で現状では分単位の対戦情報は欠落しているようです。 牌譜解析スクリプトで、[牌譜の内容表示]→[すべての牌譜をファイルに保存]とすると、mjlogのデータがテキストに落とされて新しい順番にソートされるようになっています。僕はこのソートをどのように行っているのか分からないけれど、もし上に書いたような仕組み以上のことが実装されていなければ、厳密には分単位で対戦が前後して表示されることもおきるってことだよね。 何とかならないかな・・・。 牌譜解析スクリプトには、[順位解析]と[Rateグラフ]という項目があって、コイツらはX軸を対戦数にして成績の推移をグラフ化してるよね。でもこの問題があるとすれば、このグラフだってある意味正確とはいえないんじゃないのかな。いや、もしかしたら僕が知らないだけで正確なのかもしれないけど、正確ならどうやってソートしてるのか教えてほしいな。 誰か知っている人がいたら教えて下さい(^^) 現状では、mjlogファイルをリストとして読み込んだ後、ファイルの作成日時の情報でソートをかけ、その後、ファイル名の頭の対戦日時情報の部分で2回目のソートをかけて、対戦の順番を整理するようにしています。多分、現段階で分かっている範囲では、これが一番現実に近いソート方法だと思います。
by doraaka
| 2009-04-08 17:55
| 天鳳
|
その他のジャンル
Twitter
記事ランキング
画像一覧
| |||||||||||||||||||||||||||||||||||||||||||||
ファン申請 |
||