2009/04/22(水)続々・UO のジャーナル保存

UO のジャーナル変換プログラムを作ってみました。

UO Journal Fixer
UOJFixer.jpg


世の中には数多くあるし、HTML で色分けしてくれる便利なものもあるのでまぁ、自分用。
久しぶりに C どころか Win32 プログラムも楽しめたので満足しました。
さらに自分しか使わないんだけど、コマンドライン版の uojfix.exe は uojfixcli.exe として書き直す予定。

アイコンのデザインって難しい。

2009/04/19(日)UO のジャーナル保存

人狼してると UOのジャーナル保存機能を使いたいが、ゲームが用意している設定インタフェースからではジャーナル保存機能は有効にできない。
できないならまだしも項目はありつつ有効にならない。

ググって人様が得た情報を参照させていただいた。
人狼オンライン:ログを取ってみよう!
Fannelの独り言:UOのログのとり方

続きを読む

2009/04/18(土)大和人狼

人狼に参加してきました。

一回目は狼。
狼になると純粋な推理に割く時間や脳みそを作戦とかに回さないといけない分、誰が村サイドなのかを考える余裕がなくなる。
あと、チャットウィンドウに発言するはずの発言を普通に発すること2回。
結果は惨敗。

2回目は牧師。
村人サイドでブロックできるのは俺だけなので、初日のブロック発言に狂人にしろ妖孤にしろ狼サイドであることはわかるが、ほかの村人を説得する材料がないことにやきもき。狼じゃなくてもいいから吊るそうか、とも思ったが俺以外の人にはなんの疑いやらわからないはずで。
いっそ激烈に怪しいトマトあたりと同室になってブロックできないもんかと思うが、それもなくトマトは普通に死亡。むしろこちらが指名する段で狼サイドと思しき人を指名したら疑われるんじゃないか、という気持ちから村人候補を指名するというへたれぶり。
それでも俺だけが知っている偽ブロックの被害者を守り通して村人サイドの勝利。

普通にテキストエディタにメモ書いてるけど、アイデアプロセッサ?的な?グループ分けやその連結を書けるようなものがあると楽なのかもしれない。


トマトが初めてのくせに弁解の場とかで場慣れしてる風に話していたのがだったのがシャクだ。くそぅ、頭よさげでシャクだ。
あと、あんじの狂人率高すぎ。最後は「よくわかんないけど狂人の自殺としてカウントしておこう」という理由で判断したら当たってた。
マウスさんが狼サイドに立ったらデラやばそうだ。ぜひ見てみたい。


あと、Windows7 だと日本語変換の変換候補があさっての場所に表示されるせいでやたらと噛む。決して慌てているわけではないのだよ。

2009/04/14(火)閑話休題

プロのプログラマって一日にどのくらいの量のコードを書くんだろう。
(↑コード量で評価される職場があると本気で信じている)

例えば BOD管理プログラムでも、
  • 布バルクを処理する関数
  • 皮バルクを処理する関数
  • 金属鎧バルクを処理する関数
  • 武器バルクを処理する関数
  • 鍛冶小口のみのバルクを処理する関数
を書いたらコード量は一気に5倍なわけだけど、それだと後々の修正がめんどくさそうでなるべくまとめる。
長い条件分岐が関数の頭についたとしても、リファレンスが多重になっても同じ処理は少ないことの方がいいという考えで書く。「バンダナ」<->「bandana」の変換も、現状一単語しかないけどハッシュで辞書を持たせて汎用的に変換することを想定した関数を作る。
条件分岐の中身は変数の設定をしたりリファレンスの向き先を変えるだけで、分岐の中身が長いわけではない。

もちろん、短ければいい、という考えではなくあくまでも同じ処理は複数存在しない、という考え。いわゆる難読プログラムコンテストみたいなコードは書かないし、スカラー一つ分のメモリをケチる、とかはしない。
同じ処理が複数存在しない、といっても、コードパスが異なる場所に必要な場合は複数存在させる。この場合でも、完全に汎用的に書けるものは追い出す。例えば上の辞書変換みたいな関数。

正規表現についても、グローバルマッチアンカー等を使ってまとめられるならまとめる。

とか考えて書いてると、多くて数百行でお腹いっぱいになる。

いわゆるデスマーチとかの現場の人ってどのくらい書くんだろうなぁ、と気になった次第。デスマーチだと1日っていう時間単位は存在しないか。

# 最近 C 書いてねーなー