触発

ジャンルや分野が違おうと、本当に凄いものを見ると
なんというかこう、なにかやりたくなるよね。

というわけで、昨日の午後2時ごろから寝ないで起きたままの癖に製作開始。

目標:
Pythonで動くth123_aiの完成、少なくとも自作のアリスAI動くところまで行く!
(一つ前から一度も手を付けてないからまったく持って進んでないんだけどね)

11月24日2時50分追記:
無理でした。 というか、寝落ちてた。
やはり規則正しい生活の平日夜に作業するべきだな、うん。

見切り発車、もしくは無謀

pythonの組み込みがようやくうまく行き始めました。
そして今一番の壁は、自分がpythonの知識を欠片も持っていないこと。

main関数相当のものってあるの? 関数定義ってどうやるの? タプル?なにそれおいしいの?
大体こんな感じ

とりあえず、メモリー管理はリファレンスカウンター方式であることと、C←→Pythonで呼び出す方法は判った。
変数的なものに設定する方法が知りたいところだけど、それ以前に型相当のものがあるのか、あるならどんなのがあるのかを把握せねば。

というか、よくこんな状態で組みこもうなどと思えたものだ。
我ながら無謀すぎて笑えてくる。
だがそれがいい!

ちなみにif、for、whileの記法すらまだ知りません。
……まずpythonについてググルところから始めようか、うん

やる気コントロール

ぶっちゃけて言うとやる気が出ない。

いや、コーディング欲(?)はあるものの、th123_aiをやる気がおきない。
たぶん、スケジュールを大きくきりすぎて、目に見える成果が出ないまま数日たっているからだと思う。

というわけで、最終的な効率が悪くなるのを承知で、いきなりpython組み込む!
が、現行最新コードはばらしすぎて手を付けられない状態なので、公開済み最新版(ver0.90c)の上に乗っけてみようと思う。

多分、無理が出て失敗に終わると思うんだけど
自分はゴールが見えない中で頑張れるほど努力屋ではないので、ダメ元でも結果から先に追い求めた方が最終的には早そうなんですよね。
まぁ、物は試しって事で、ね。

非想天則ver1.10の話

最近黄昏フロンティアの日記更新も盛ん(?)なようで、巷ではそろそろ非想天則1.10パッチ出るんじゃないかと噂されているようです。
そこで先に言っておきますが、th123_aiは非想天則ver1.10に対応しません

といっても、開発ストップするわけでも、永遠に1.03だけで生きていくつもりでもなく
単純に”すぐさま1.11パッチが出ることが予想されるから”です。

th123_ai付属のSWRSAddr.iniを見てもらえれば判りますが、解析が必要なアドレスの個数が非常に多いです(実は記述を面倒がっているだけで、もうちょっとある)
現に非想天則対応には約一週間かかっています(開始終了)
一応、バグ修正程度であればアドレスは変動しない場合が多く、また変わっていたとしてもある程度相関性はあるので、解析しても無駄にはなりませんが
(現に、非想天則1.02と1.03ではほとんどアドレスが変わらず、緋想天と非想天則の間でも推測可能な程度の違いである事も多かった)
あまりにもやる気に満ち溢れてでもいない限り、無駄になりかねない作業に手を出せる気がしていません。

というわけで、一週間以内にパッチがでそうな内は対応作業はしません。
なので、おそらくは1.12か1.13が出る頃までは1.03のみ対応となります。
あらかじめご了承ください。
(と、ここに書いて読む人いるかは知らないけど)

ちなみに、すぐ1.11出るだろう事を批判する気はありません。
私自身「バグのないプログラムなぞ存在しねー!」が口癖なので、最終的に「言えば直る」なら問題ないと考えます。
なので、安定版でるまで細かい修正をまったり続けようと思います。

流石に3時間は無理があった

食事その他諸々込みで約3時間。
いつも7時間あって作業時間4時間ない気がするし、流石に3時間では作業に入るのすら(ry

ざっとiniぽいコードだけ洗いだしてきて、適当に整形してこれからリファクタリング始めるぞーってところで時間切れ。
3時間しかないことを考えるとよくやったほうだけど、エンジンがかかるところにすらたどり着けなかった。
てか、いつも思うけど自分エンジンかかるの遅すぎ。
あと鴨居に痛恨の一撃もらってタンコブ出来た、いてぇ。

明日がんばるからいいもん、ぐすん。

宣言その8

22:40分ちょいすぎに帰宅したばかりで時間ないけど宣言したくなったから構わずする。

・ini関連の切り出し。

地味に何度も挑んでは中途半端に終わり続けてきた難題。
iniといいつつ中にデフォルト値を持っていたり、動作中にころころ値を変えたりしているのが主な原因。
この辺を完全に切り分けて、iniローダーと内部設定管理クラスに分離するのが主目的。

それと、設定に依存する各種処理をコード中に散在させておくのが非常に気持ち悪いので
ちょっと考え方を変え、条件式と関数ポインターを渡して登録し、設定が変更されるたびに自動で条件を判定→真なら関数実行。
なーんて構造にして一箇所にまとめられないか考え中。
が、今日中に終わる気はしないので、やるなら明日に延長かな。

keyboard_emulaterその2

zip破損バグのせいでkeyboard_emulatorの更新が出来なかったので今頃更新。

keyboard_emulater@ver1.01
・vkEvent、dikEvent、eventクラスメソッドにバリエーションを追加
・sample追加
・Readmeの工事中を埋めた

次はini関連機能切り出しかな。
ただ、今開発できてる理由自体が”夜出社しなきゃいけないから”という状況なので、python乗っけるところまでいけるのはいつになることやら。

強敵ZIPバグ

今日は前回を無視してAIManagerのコードを漁り続けています。
理由はAIManagerで圧縮したzipファイルが一部アプリで壊れているといわれる件の調査のため。

レコードの構成はWindowsXP標準やLhaplusで生成したzipファイルとまったく同じなので、Ver違いによる構成差異では無い様子。
CRCの計算がおかしいのかなと思って調べたけれど問題は見つからず、Local file headerとcentral directoryでCRCが違うなんて事も無し。

丸1日費やしたにもかかわらず何が悪いのか見当すら付いていないという惨敗具合。
なんだろう、細部で解釈に違いがあるのかしら。
うーん、unsignedとsignedで動作変わりうる場所がないか調べて回る?
それとも、あまり関係ないからと触れずに居た細部のパラメーターまで見て回った方がいいのかしら。

keyboard_emulater

宣言したからには公開しないとダメだよね。
という事でコメント書いたりReadme書いたりしていたら1時間すぎても終わらなくて泣く泣くリリースすることにしたの巻。

keyboard_emulater

中身はth123_aiで使用しているキーボードエミュレート部分をクラス化して単体で使えるようにしただけ。
いつものごとく仕様決めで使った時間>コーディング時間。
そのくせ使い辛さは割りと高レベル、サンプルも今は無し、コメント以外の解説もなしと我ながら酷い有様。
明日起きたらサンプルとドキュメント付けます、はい。