Repo

kjana00@gmail.com

older <-

2010-11-13 02:10:31

今朝は晴れ。朝ごはんはパンとソーセージとゆでたまごとサラダ。毎朝ゆでたまごっていうのはちょっと食べ過ぎ、と言われはしたけど何となく食べてしまうのだね。いつの間にやら淀川に鴨がやってきてるのを見掛けたりしつつ。

構造体のメンバを真面目に吐くためにはどうしようかというのでちょっと考える。で、実は配列の中身を吐いてるのと概形は変わらないんだよなということで、構造体への対応は置いておいてちょっと書き換え。構造体の配列だの配列を持つ構造体だのあるから、再帰的に操作するなり繰り返しで操作するなり、何にしろ適当に関数にまとめておかないと面倒だから。ちょっと型を表現してるクラスのメソッドにすることも考えたけど、そっちにしようとするとかえって面倒臭いっていうか結構な書き換えが必要になりそうだったからやめておく。凝り過ぎてもしょうがない。

とりあえず配列の展開がちゃんと出来るようになったところでさて、どうしようかと。再帰的に展開っていうこと自体は変わらなくても、関数の再帰で表現する必要は無いんだよね……で、各エントリに対して最初は [entry]、配列の内容が単純型でなかったら flatten 的に展開、っていうループにしてみた。しばらく構造体と配列でちょっと表現の仕方が違うっていうので悩んだり、それを判定するメソッドを型のクラスに入れたら列挙型も構造型になってしまって無限ループさせてみたり、typedef を表すクラスが型を表すクラスを継承してたのをやめてみつつ移譲するメソッドは method_missing で渡せばいいかと思ったら一部は typedef で持ってなきゃいけないっていうのを思い出させられるはめになったり、ビットフィールドのオフセットをどうしようかと悩まされたりしつつもどうやらいい感じに動かせた。

それから共用体の対応へ。このプログラムだと共用体使ってるのはごく一部で、uint8_t の配列と構造体の選択になってる。要するに、ビット単位でのパッキングに使ってるのよね。それで通信のためには uint8_t の配列をバッファとして渡してる。全部そうだっていうのを確認したんで出力するのは構造体のパートでいいねということでそのように展開関数の中身に書き足し。これで十分か。ちょっと表示名の作り方を間違えて、何故だか共用体が勝手に配列に、なんて間抜けをしたりしたけど。

所属ファイル名が不明なシンボルを "NEED_FIX" とかで置いておいたのを上書きするスクリプトを書かなきゃね、ということで無駄に苦労する。あんまり簡単になりようがないから全部手で調べたん……デバッグ情報から変数定義のパターンを作ってソースと照合するとかいう手も無くはないけど、そこまで手をかける気になれなくて。変数定義が一定の形式だったら考えたけどね……まあとりあえず、これで一通り出来上がり、かな。詳しく調べたらバグって変なエントリだの抜けてるシンボルだの見つかるかもしれないけど。

まあ定時退社日だことだしと、いつもより更に早く帰る。……で、何で自分の部屋で着替えもせずに立ち読みしてるんでしょうか? ……それはともかく一休みの後晩ごはんにとり汁のそばとひじき蓮根天を焙ったの。枝豆も付けようと思ってたけど無かったん。でも、お腹一杯になったから無くて良かったかも。あったら確実に食べ過ぎ。

それで WWW 見たりゲームしたり。良く頑張って勝ちを拾った後に、さくさくカルヴァリンに矢を刺されて死んだりすると残念なものです。どうもなかなか吟遊詩人は調子に乗らない。それで後で 7 ポイントマッチで 17 ポイントって馬鹿ですか、な勝ち方をした後で、こないだ鍛冶師でって書いたけどあれは魔道具術士だったなと思いつつ、今度は本当に鍛冶師でワーグを倒してみたりする。白兵戦力が充実したクラスの方が楽っていうところは結構ある。それにしても何だってこうも鍛冶師は耐久力が無いかね……

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12