« 2005年02月 | メイン | 2005年04月 »
2005年03月31日
日記
■FF7
もう、ゴールしたい。
けれど、まだ大詰めが残っていますので後少し、後少しだけ頑張ります。
本当にこれが終わったらどうなるかが心配になってきたり。
頑張りすぎると暫く電池切れになりますからね。
ゲームに対する電池が切れるだけならいいんですが。むしろそれなら大歓迎。
しかし、そう都合良くは行かない気もします。
何にせよ、もう、ゴールしたい、ただ、それだけ。
タイムリミットには間に合いそうなのが唯一の救いですが……。はぁ
2005年03月30日
消える飛行機雲~
http://d.hatena.ne.jp/moonphase/20050328
うむ。良いですね。
国崎最高が見られない事が悲しいですが、それはそれ。
さて、FF7やるべか……。
日記
義務でやるゲームほど面白くない物は無い。
ROも最終的には義務と化してしまったのでフェードアウトした。
とか言ってる暇あったらFFやらないと……げふう
2005年03月28日
液晶
デュアルにして並べているので今まで使っていたモニタとの違いがはっきりわかって愕然。
今までこんな画面で作業していたのかと思うと寒気がします。
お金を出した価値は、ありました。
2005年03月27日
履修登録
■履修登録
政治学とマクロ経済ですが、もう一度引いた視点から時間割を見直すとバイトの関係からマクロ経済を取る事が危険だと気付き、政治学に変更しました。
この二科目なら両方取ってもよかったんですが、履修可能単位制限に引っかかるので仕方無いです。
月 | 火 | 水 | 木 | 金 | |
1 | 英語4a | ||||
2 | 政治学 | 統計学 | 基礎演習 | ||
3 | 情報管理2 | 中国語8a | コンピュータシステムの基礎 | 基礎数学(線形代数) | 英語5a |
4 | 基礎数学(代数) | コンピュータ犯罪 | プログラミング実習(C) | ||
5 | 心理学 | データベース |
最終確定した時間割はこんな感じです。
今回は後の履修の為の布石的な科目が多いですね。
期待している科目はデータベースと代数。
リベンジに燃えているのが統計学と線形代数。
どうでもいいのが情報管理とコンピュータシステムの基礎、そして基礎演習。
息抜きが心理学とコンピュータ犯罪。
そして、どうでもいいんですが時間割が負の相関に。
これが意味する所は、大学に行く時間が遅くなり、朝のラッシュを経験する事が少なくなるという事です。
月曜朝1の英語だけが辛いですが、他は無理のあるスケジュールでは無し。
講義の間に空いている時間が無いのが良いですね。
更にどうでもいい事として、これが本日3つ目の日記です。
買い物から帰って、4つ目の日記を書く気がするので、無駄に日記が多い日となってしまいました。
日記
■履修登録
夏には登録を忘れていてかなり危険な状況になりましたが、今回は忘れずに済ませる事ができました。
半年間の自分の生活を決定する作業ですから、自分に対する責任が非常に大きいのがプレッシャー。
今まで水曜にあった休みが、必修の下らない演習が割り込んだ事により消滅したのが悲しいというかなんというか。
そして、最後の1コマを決定するのに色々な科目のシラバスを見ていると下らなそうな科目でも面白そうに見えてくる不思議。
政治学、コミュニケーション論、マクロ経済モデル、情報文化論……。
しかし、コミュニケーション論と情報文化論は面白そうであるけれど、それは雑学の本を面白がるのと同じような興味なわけで、学んでも得る物が少なそうなのでアウト。
よって、政治学とマクロ経済のどちらかを選択する事になります。
これらは1回の間に行政学と経済学の単位を取り、この二つの上位科目となります。
ちなみにどちらも優でした。だから余計に迷う。
ただし、マクロ経済は細かい数式の理解が難しい。これは明らかな事で、経済学でも結局細部の式までは覚え切れませんでした。
概要の把握だけならそうでも無いんですけれどね、それはどの教科でも同じ事でしょうが。
#とか書きつつ、試験勉強の際に経済学は一晩中Webで調べ物をしていた記憶有り。
悩む……。
- 政治学
-
教科書は用いませんので、暗記力よりも、オリジナリティーのある考え方を持っている、
あるいは、それを持つことが重要であると考えている学生には、積極的に履修してもらいたいと思います。 - 出席を重視する講義ではありませんが、出席しなければレポートを提出できず、高い評価を得にくいような講義システムです。
- 経済学
- 経済「学」というハードサイエンスの理解は大学ならではの勉強の1つとして、分析的観点が養えると思います。
- 一見、むつかしそうな数理的モデルをかみくだいて授業をすすめます。高卒程度の数学を復習しながら行います。
経済学の教授は熱い人で講義もわかりにくく無いんですが、親朝鮮・中国派なのが困り物。
それさえなければいい人なんですけどねえ。
今更中国最高とか言うのは経済学者としてはどうなんでしょう……。
ただ、株の話等が専門のようなのでまあ。
しかし、その株の話に関しても株価の変動を音で表すとかいうトンデモっぽい事をやっていらっしゃいまして(汗
いや、経済に全然明るくない私がこんな事書いても寒いだけなんですが。
経済的な面から言えば、教科書の新規購入が必要無い経済学。
これはレポートも無いので負担も少なそうです。
1 政治学の目的(オリエンテーション) 2 民主主義について 3 正義論 ~社会的配分の理論 4 選挙制度論 ~社会的決定の理論 5 投票行動論 6 メディアと政治 7 政策決定の理論 8 議会 9 官僚 10 中央地方関係 11 地方政治論 12 国際政治論 13 日本政治の課題と展望
政治学も普通に面白そうなんですが……。
行政学に関しては、大して面白くも無い講義なのに毎回真面目に受けていた記憶が。
今にして思えばあれは何だったんだろうかと考えると、やはり教授の人柄かな?
ただ、政治学の人は違う人のようなので微妙。
マクロ経済くらいは大学生の嗜みとして知っておくべきとは思うし、それを言えば政治学もそう。
悩むのがアホらしくなってきたので前期でマクロ経済、後期で政治を取る事にしました。
数学二科目と統計学を取るのでレポートが割と重くなりそうなので……。
いや、物理化学科?に行った友人の話を聞いていると実験レポートの連続で物凄く大変そうで、この程度でレポートが重くなるとか書いてるようじゃ先が思いやられるんですが。
むしろ、大学がこんなにぬるくて大丈夫なのだろうかと本気で心配しています。
理系の学部に行った友達は皆もっとまともな科目をまともに受けて、レポートもそれなりに大変そうだし、その分得る物も大きそうなんですが……。
だから、自分で勉強するしか無いわけで、しかしその手段が基本情報の資格試験勉強だというのも情けない話だよなあ。
あんな物現場では何の役にも立たないみたいに一刀両断されてしまったし、ちょっと悲しい。
でも、確かに内容的には基礎の基礎で、実践現場で役に立ちはしないというのも納得ですが。
むしろ常識の部類ですよね、きっと。
シスアドは言わずもがな、ソフ開だってどうなんだか……。
とはいえ、いくら実践現場で常識であろうと私にとっては知らない事の方が多いわけで、やるしか無いわけです。
勉強、すすんでないな……。
日記
■日記
体調がわろし。
原因は生活リズムの乱れです。
どれくらい乱れているかといいますと、
9時に寝て16時に起きてすぐバイトに行き、初めて食べたまともな食事が22時に食べた夕食。
わろし
■液晶モニタ
http://www.nmv.co.jp/mitsubishi/product/rdt1710s/index.htm
4万円辺りでゲームをするために応答速度が高く安い物を探していた時に友人から薦められました。
まだ店頭で実際に見てみるまで決める事はできませんが、最有力候補です。
■デュアルディスプレイ
http://homepage3.nifty.com/amachi/md/guide/windef.html
2chってやっぱり便利だ、と思うのはこのような時。
ちなみに調べている最中に家のビデオカードに乗っているチップが地雷品だという事を知って凹み。
PCIビデオカードは性能の割に高い気がする。それから発熱が気になる。
気になりますが、PCIの方が良いであろう事は間違いなし。
http://www.telegnosis.jp/index_usbvga.html
最悪でも、これを買ってきますが良くて安い物があればそっち買います。
ネタ的には絶対にこっちなんですけどね(笑)
こっちの予算は1万円。
2005年03月23日
作戦記
■mSTGTool
ついに作成する時がやってきました。
ここまで来るのにどれだけ無駄な時間を費やして来た事か……。
結局、モードレスダイアログボックス(パラメータ指定)+子ウィンドウ(座標指定)という形で行きます。
MDIにしようか迷いましたが、とにかくここは実現可能な形に収束させる事に。
というわけで、製作と同時進行で書いていきます。
■以前のプログラム(mSTG)で悩まされたバグの意味がわかった
つまり、この前の日記でも書いたのと同じ罠にはまっていました。
よく考えたらそりゃ、左上の座標がわかったら後はそこからの相対距離で書く方が便利に決まっていますしね。
■変数名の作り方
普通英語で書きますよね?
以前によんだサイトでは、その理由を西洋コンプレックスと分析していましたが、
私はローマ字では読みにくく、認識しにくくなるので英単語で書きます。
ですので、コーディング中にgooの和英辞典は必須です(笑)
■デバッグ
Syntax Errorのなんと多き事よ
■罠その2
BOOL Rectangle( int x1, int y1, int x2, int y2 ); BOOL Rectangle( LPCRECT lpRect ); パラメータ x1 四角形の左上隅の x 座標を指定します (論理単位)。 y1 四角形の左上隅の y 座標を指定します (論理単位)。 x2 四角形の右下隅の x 座標を指定します (論理単位)。 y2 四角形の右下隅の y 座標を指定します (論理単位)。 lpRect 四角形を論理単位で指定します。このパラメータには、CRect オブジェクトまたは RECT 構造体へのポインタを渡すこともできます。
これだから勘違いしていた、という事が発覚。
統一してくれないのは何でだろう、と思ったけれど、きっとこっちの方が便利なのだろう。
だがしかし、
ウィンドウの大きさ:370,490 Rectangle(hdc,30,30,340,460);
で、四角形がウィンドウからはみ出るのは納得できない。
何を考えて動作してらっしゃるんだ、むしろ一体どこで間違えたんだろう私は。
■重要マクロ
LOWORD,HIWORD
■なんでやねん
CreateWindowの引数でウィンドウの高さを490にしているのに、マウス座標の追跡で座標を見て行くと460の高さしか無い。
■結局
原因不明のまま、小手先の対応であきらめた。
具体的には、作成されるウィンドウの大きさが想定していた物と同じサイズになるようにコード中のサイズ指定を変更。
きっと、私が何か勘違いしている事が原因なんだろうけれど……。
気持ち悪い。
#どうも、「デバイス単位で指定」というのが曲者な気がしてきた
■びっくり
○ウィンドウプロシージャ
×ウィンドウプロージャ
私が馬鹿でした。
WndProcって書いてたのに、書いてたのに!
■リソースエディタ
これは便利ですね。
テキストで自力指定していたら思い通りのデザインにするのにどれだけの時間がかかるだろうと考えると寒気。
■nCmdShow
今まで起動時の引数を使いまわして来ましたが、よく見たらこれは単なる定義された定数のようで……。
何とは無しに損した気分。
■モードレスダイアログボックス
どうも動作が不安定だと思ったら、ダイアログボックスに送られてきたメッセージをDefWindowProcに送っていた事が原因だったようで、
その部分を削ったら普通にダイアログボックスが表示されました。
■紆余曲折を経て
完成しました。
ほんっとーに、VBで作った方が早いですね。
もっとも、VBの使い方はほとんど忘れてしまったので勉強し直さないと無理ですが。
少しは文字列について理解できたかも?
だがしかし、文字って色々あってしんどい対象ですね。
UNICODEなんてなくなってしまえばよいのに。
#完全に全てのシステムがUNICODE化されたら、むしろ楽になるのかもしれないけれど
■ひまわり
http://hima.chu.jp/cgi/prog-bbs/hmw/453.txt
検索にたまたまひっかかったんですが、日本語のプログラミング言語を特徴とするひまわりからWIN32APIを使おうとしているコードです。
正直な話、ひまわりの外の物を取り込もうとすると必然的に英語が大量に出てくるわけで、逆に意味不明になっているように見えます。
まともに使おうと思ったら、この差を埋めるためのひまわり用ライブラリを作るしか無いのでしょうね。
日記
■日記
http://images-jp.amazon.com/images/P/B0007WZZI8.09.LZZZZZZZ.jpg
手前の男はロリコンかつ仮面なのでシャア。
後ろに居るのは彼のコレクションで、マイケルジャクソンのネバーランドのような物。
一番前にいるのが新たに彼のコレクションに加わる者。可愛そうに。
エリュシオンが「楽園への前奏曲」なので、これは間違いないですね。
楽園=ネバーランドもしくはシャアと彼女らとの……うわ、考えたくない。
しかし、いかに彼と言えどもここまでやってる事を世間に知られるのは恥ずかしいために、
歌詞が遠まわしでわかりにくくなっているのです。
例えば、魔法使いサラバントは彼がランプから出てきた幼女を拉致した上でてごめにした話。
一言で言えば拉致監禁強制猥褻罪を犯した瞬間の物語だったりします。
陳腐な解釈ですが、きっと正しいとCS君が保証してくれ……るわけないか。
■富野監督
http://photo-collage.jp/makoto/archives/2005/01/post_175.html
トミノと見ると富野に脳内変換してしまう悲しい性。
■RagnarokOnline - 妄想
妄想ですよ、あくまで妄想です。
WIZもLv95になり、ヒルクリやカード刺しsグローブなどの装備もそろって来てなかなかよし。
大魔法の詠唱速度も実用レベルになり、時計塔で暴れるのが楽しいこと限りなし。
ついでに、ADの敵もなかなかおいしいし、WIZ楽しいです。
接続者数も多くも無く少なくも無いレベルで、ラグも少なく快適。
転生まで一気にもって行きたいところですね、何しろ廃WIZの魔法の中の武器の属性が乗るってのが早く使いたいので。
GD4はフェイクエンジェルが鬱陶しいので、闇もしくは不死属性の魔法が使えたら強い。
また、アークエンジェリングも狩れるようにもなるしいい事尽くめですよ。
とはいえ、転生したら二倍だからなあ・・・
やる気なくなりそう(笑)
以上、妄想でした
2005年03月21日
日記
■同窓会
小学校の同窓会。
懐かしすぎましたが、ほとんどの顔を覚えていてびっくり。
行く前は全然思い出せなかったんですが、顔を見たら思い出しました。
恐るべし、認知科学、と。
それにしても僕等の学年が卒業してすぐに小学校の教師を辞めて小料理屋を開き、
それが今も続いているというのはたいした物です。
ただ、一つだけ言いたいのは、他人の行ってる大学を糞呼ばわりするのはやめて欲しい。
ちょっと悲しいですよ。
自分が落ちたからってーっ!
■基本情報
通信の話は普通に面白いですね。
テキストで読んでいたら恐らくつまらなかったと思うので、別冊を用意したのは正解だったと思います。
もっとも、当然ながら基本情報レベルの話なので浅く広いんですけどね。
本を読むための本……かな。
2005年03月20日
日記
■FF7
ロストナンバーが倒せないので終了。
凄く嫌な感じです。
最後にセーブしたのどこだったかな……。
■舞HiME
24話まで見ました。
どうにもこうにも悪人っぽい人が皆悪人なのはどうしたものか。
ま、いいか。
■ファフナー
最後まで見ました。
何であれ完結した時点でエヴァンゲリオンとは比べ物にはならない、とだけ。
んー、でも割と面白かった。
■基本情報
通信の本を、読み進め。
間に合わせるしかなし。
そろそろ過去問買わないと。
2005年03月19日
日記
■こんな時間
ほんと、だめですねえ。
早く人間になりたい。
■ウェブサイト
私が最初にサイトを今の方向性で製作しようと考えた時の目標は、
「そのジャンルについて網をかけようとする書き込みがどこぞの捜索BBSにあった場合にとりあえず紹介されるサイト」でした。
そして、その目標はこの界隈で現在の最大手と言えるBBSからのリンクを確認した事で果たされました。
感慨深い物がありますね。
足掛け二年でしょうか、長かった。
ついでに50000HIT達成で尚めでたい。
しかし、だからといって何か企画を行うわけでもないのがまいさいつくおりてぃー。
リンク集と言うとなーんだ楽してアクセス数を稼いでいるのかって感じで見られる事が多くてちょっと(・み・` ですけど、
まあ、所詮他人の褌で相撲を取ってるような物ですしね。
とか書きつつもまあ、一応リンク集にはリンク集なりの自負みたいな物があったりなかったり。
それ以前に更新支援プログラムでも書けばいいのにとか他人事のように思ってみたり。
更新支援プログラム……。
魅惑の響き。
/*---ここからコメントアウト--- 何か大きな事言ってますが、実態は一日200ヒットの弱小サイトです。 アクセス数を稼げた理由は「他に同じ事をやっているサイトが無いから」、これは当初の狙い通りで本当に嬉しい部分の一つ。 でも、マニアックなジャンルすぎてあんまり他人には見せれないのが悲しい所 ---ここまで---*/
■彼岸
なので墓参りに行ってきます。4時間後。うわ、睡眠時間が全然取れない……。
ついでに基本情報は通信のところ以外は一応ある程度覚えたかな、かな?
後は模擬試験問題や過去問題をやって覚え切れていないところを補完、と。
というわけで、合宿やるぞ、絶対やるぞ、OK? > 某C
■舞HiME
観ました9話まで一気に。
ファフナー最終話が気になります。
2005年03月18日
ウィルス - P2P
- 主にP2Pネットワークを介して感染
- きんたまウィルスの後継
P2Pネットワークって、ぶっちゃけnyです。
きんたまウィルスの後継なので、今のところはnyに接続していなければファイルのばらまきはなさそうです。
苺きんたま機能が付いたらやばいですが。
デマ情報に注意ですよ
・きmす→金子 と変換されたら感染
きmす→きんす→金子 と、IMEが自動補完しているだけです
・svchostが複数起動していたら感染
嘘です。普通に複数起動しています。
ただ、ウィルス自体がsvchostに偽装して活動するらしいので、完全な嘘では無し。
ユーザー名義で起動しているsvchostを疑うのがいいらしい。
ウィルスの本体はC:\WINNT\system32\driversにsvchost.exeというファイルをコピーする模様。
ちなみにアイコンはフォルダの形みたいです。
一応そこを覗けば感染しているかどうか確認できるかもしれない。
場所が固定とは限りませんが。
また、
C:\WINNT\system32\wbem\(値の設定なし) .exe"
というファイルもコピーするとか。
まあ、とりあえずWinnyを使ってない人は問題無いようですね。
デマ情報で一瞬焦ったのは秘密です。
Winny、使ってないのにね。
日記
とりあえず9時に目が覚めたので少しマシになったけれど、まだ社会不適合な生活である事に変わりなし。
他人に厳しくなる時は自分に余裕が無くなっている時というわけで、
今は我慢の時、我慢我慢。
http://www.kumei.ne.jp/c_lang/sdk/sdk_34.htm
雛形
蒼穹の
■ファフナー
本当ですよ。
面白い。
これが2クール構成だったらよかったのになあ。
1クールとは、なんと悲しい事か。
■色々
比較的恵まれた環境にいるのはわかってるんですけどね、
でも、こう言いたくなる事もあるんですよ。
経済的な問題に起因する奨学金を下さい!
成績優秀奨学金という存在もあるにはあるんですが……。
親の収入はそりゃ奨学金もらえないラインなんですけどね、家族が多いので実際はかなり困ってるんですよ。
どれくらい困ってるかといふと、収入が消えていく……。
ごめんなさい、贅沢言い過ぎました。自分の選択の結果だし受け入れるしか無いですね。
むしろ勉強して成績優秀奨学金を取れと。
……ごめんなさい、ごめんなさい、ごめんなさい。
本当は、本当はバイトなんてしたくないんです。
月1万くらいを短期バイトで稼ぐくらいを望んでいるんです。
どうせ毎日働いても手元に残るのは……。
とか書いても仕方ないんですけど、たまには……ね。。
さーて、今日は人間らしい生活という事で今から寝ますよ、いやほんと。
1:30が人間らしいかどうかはともかく。
2005年03月17日
朝
こんな時間に起きた。
わーい
眠たくて死にそう
こんな時間まで何をやっていたんだろう
A.何もやっていませんでした
がー……がんばらないと。
とりあえず今晩のAIR11話?で気力を補充だ。
ああ、その前にアルバイトがあった。
ちなみに、情状酌量とか言ってるとキリが無いので殺すなら例外なくやらないと。
だがしかし、死刑執行人も殺人者になるのでその人も殺さないと
あはははははははは
KOOLにならないとね。
2005年03月16日
日記 - 苛立
■弾外伝
ボタンコントロールというキャプションのボタンコントロールを配置した練習プログラムを作った。
コンパイルして実行してみた。
ボタンのサイズが小さくてコントと表示された。
悲しかった。
反省して一から学びなおす事にしました。
実際のところコントロールに関してはほどんど勉強していなかった物で、そりゃーうまくいくはずもありません。
初心に戻って基礎からもう一度、もう一度。
春休み中に間に合うかな……。
間に合わせないと。
■基本情報
合宿でもしましょうか
■FF7
今日はやります。
日記 - 標準コントロール
■弾外伝
ツールを作るために必要な部品を考えました。
とりあえず、ウィンドウは一個。
実際のゲーム画面と同じように親ウィンドウと子ウィンドウの二枚構成にしようとも考えましたが、それではマイナスの座標が指定できないので却下。
まず、リストボックスに生成したコードを表示する事にします。
情報入力後コード生成を開始するためのボタンも必要。
さらに、情報を入力するためにドロップダウンボックス(勝手に命名)がいくつかと、数値入力用のテキストボックスも必要。
こんな物ですね。
実際に配置しようとすると指定の仕方がよくわからなかったりであーっとなっていたんですが、
よく見たら慣れ親しんだ「猫でもわかる」のWindowsSDK編で詳細な解説があったので、ありがたく読ませていただきます。
■Googleデスクトップ検索
検索すると恥ずかしいログなどが大量に出てきてちょっとあれです。
他人には見せれませんね。
■FF7
多分、こんな日記を書いたりSTGのステージエディタを作ろうとしている事自体がFF7からの逃避なんだと思う。
なんとかしないと……。
最近の現実逃避は、「FF7をやらなければいけない」という現実からの逃避、と。
いやいや、自分で望んだ事なんだから頑張らないと。
いつ頑張ればいいんだろう。
2005年03月15日
面倒 - 日記が
それ以上にもう何でも面倒。
面倒すぎるのでステージエディター作ることにしました。
いや名前はかっこいい(?)ですが単に座標とかの入力支援ソフトですけど。
何しろSTGプレイヤー暦短いし、それ以前にセンスが無いので、それ以前に全然真剣に考えてないので、
文字と数字の羅列を眺めていてもステージが思い浮かびません。
ここ数日神が降臨するのを待つようにボーっとしてましたが、何かもうしんどいのでいっその事、と。
出現ポイントと消滅ポイントをマウスで指定できるだけで随分違う、と思う、そうだといいな、ので、きっとうまくいくはず、いくといいな。
あと、ファフナー観てます。
本当はブレンパワードが観たかったんですが手に入りませんでした。
友達は舞-HiMEを観て欝になったらしいです。
私は一話しかまだ観ていません。むしろ今から20話観ると思うとしんどくて……。
そのうち観るかも、FF7やりながら。
ああ、FF7やるのしんどいよ、しんどいよお。
面白いと思うけど全体的にしんどい。
理由を考えてみた
- ロード時間
- マップみにくいし
- 戦闘しんどい
- どうせ戦闘Aボタン押し続けてたら終わるし
- 移動速度二倍にして
- ラーニングとかいちいちやろうとするとしんどい
そうそう、そうなんですよ、ラーニングやら盗むコマンドやらがあると、
全てをラーニングしたり盗んだりしたくなるのでそれが完了するまで先に進めなくなるんですよ。
だからなんかもうしんどい。
FFTAもそれでクリア寸前で止まりまくり。
クエストやらなんやらで出てきた敵を全員裸にしてから殺すのが面倒で……。
ああ、何も気にせずにプレイできたらどんなに楽しいだろうか、きっと楽しい。
あと、RO、あれはいいですね。
必要EXPが1/50くらいで、ドロップ率が30倍くらいで、ギルドの共有倉庫とアカウント共通の銀行があって、
ポイントがもらえるクエストみたいなのがあって、そのポイントを貯めるとS装備がもらえるとか、
各地のダンジョンの各階層に直接転送するNPCがいるとか、ステータス、スキルポイントを特定の条件でリセットしてくれるNPCがいるとか、
Lvが155くらいまであってLv100以上での獲得ポイントは転生後に持ち越せるとか、やたら難しいダンジョンがあってそこに挑戦できるとか、
GvGは毎日20時から21時までとか、ロリルリカードとかそれ系が実装されていたりとか、製造材料を売るNPCがあったり、
エルニウム原石からエルニウムに数を指定して変換できたり、精錬も指定した数字まで一気にできたり、
そんなROだったら今でも続けていただろうなあ。
大航海時代は面白いんだけど、面白いんだけど、ね。
基本情報勉強しないと、基本情報。
後2つの章で一応一周だけれど、ネットワークの本はまだ一章しか読んでないしスケジュールが乱れている。
とりあえずさっさと終わらせて問題演習に入りたいというのは間違いない。
ついでに明日学校の成績発表、怖くはないよ、うん、怖くない。
来期の履修はどんな風にするかなあ。
東方最萌トーナメント、途中からぐだぐだになりすぎて本気でさめた。
ごめんなさい、自分のひいきにしているキャラクターが全部負けたんで見る気がなくなっただけですごめんなさい。
でも、唯一の男キャラの彼はほんとに面白かった、それだけでも開催された価値はありましたね。
勢いで全保存しちゃいましたよはっはっは。
ああもうなんだろう
2005年03月12日
Livedoor - 裁判
■Livedoor
http://www.yomiuri.co.jp/main/news/20050311it11.htm
Livedoorの何が嫌って
- 昔ちょっと利用していて愛着が無くは無いLivedoorを乗っ取った
- ネット上のサービスでLivedoorに吸収されて良くなった物は無い
- したらば:重い、重い、重い
- ねとらじ:デザインが最悪に、ユーザビリティーも超低下
- LivedoorBlogは無駄に重い
Livedoorに乗っ取られたら質が低下する事は必至ですから。
その意味で、この裁判の焦点となった「企業価値の低下」は正しい。
Livedoorも自分が乗っ取る事によって企業価値が下がるとは思えないとか言ってるならさっさとしたらばを軽くしてねとらじのデザインをまともにしてください。
あれ、ニッポン放送を乗っ取ってそこからフジに手を伸ばすという話でしたよね?確か。
違ったかな……。
別にフジがどうなろうとどうでもいいんですけど。
ただ、Livedoorが色んな分野に手を伸ばすとそれだけ被害が拡大しそうだから、さっさと潰れて欲しいのは確か。
第二、第三のねとらじが……。
整理 - 整頓
ごちゃごちゃになったコードを一本にまとめ、
秘匿性を高めて後の作業による影響を受けにくくし、
今後使われる可能性の低いオブジェクトを選別して一思いに捨てました。
ついでに構造をいじって少し触りやすくしてみたり。
まあ、部屋の片付けの話ですけどね。
2005年03月11日
事変 - あっちの話題
寝た後に昨日はAIRの放送日だったと気付いた。
色々大変な事が。
http://d.hatena.ne.jp/colonel/
これが本当だったらやばすぎです。
智代アフター……。
一部では何で杏アフターじゃないんだよという声が上がりそうです。
http://d.hatena.ne.jp/moonphase/20050308
これか。
もちろん、XXますよ
弾 - スクリプト風味のメモ
■弾
東方弾幕風で使用されているスクリプトを見てみたところ、
ぼくにはとてもできない
ので、できる範囲でできる事をと考えて、とりあえず敵配置などの操作をわかりやすくするための部分化をして、
ハードコードなりにスクリプト操作っぽくしてみました。
switch/defaultで一時間悩みましたが。
あほですね・・・
とりあえず円形弾を実装。
そのまま下に動かすとドップラー効果がよくわかり笑えます。
そして、弾を出しすぎてついに最初に想定していた処理限界を超えてしまいました。
処理効率が悪いので、簡単に処理落ちしまくりで。
なんか、こう、もっと効率のいいやり方は無いものか、いや、あるんだろうけど、あるからそれを考える事が必要。
■SH
http://gukko456.s59.xrea.com/http://music4.2ch.net/test/read.cgi/asong/1109468184/l50
メモ
2005年03月09日
弾とか
■弾
例の方法を実装しました。
書いていた通り第一段階までですが、弾と敵の制御関数を弄り、入れ替え、なんとか動くように。
思った通りの動作をしてくれてよかったです。
後は適当にあと何種類かの弾を実装して一つのステージっぽい物をでちあげ、ボスキャラという物について考えてみて完成です。
グラフィック?そんな物は飾りですよ。
■日記
二週間くらいかけて作っていたPCがやっと完成しました。
もっとも、私の物では無いのが悲しい所ですが。
途中で非常に困った時に助けてもらって本当によかったです。
あの時はありがとうございました。
2005年03月07日
割と真剣なメモ
■Sample
■main.c
#include "dfpfx.h" struct TESTS { int num; void (*func2)(int); }; int main(void) { struct TESTS test; test.num = 10; test.func2 = func(); test.func2(test.num); return 0; }
■func.c
#include "dfpfx.h" void funcc(int num); void (*func(void))(int num) { return funcc; } void funcc(int num) { printf("%d",num); }
■dfpfx.h
#include <stdio.h> void (*func(void))(int num);
■このコードについて
関数へのポインタを返す関数の作り方。
注目すべきは、funcc関数についての宣言はmain関数からは見えない事。
現在私が採用している方法では、全部の関数の宣言をヘッダファイルに書き込む必要があり、拡張作業が煩雑な原因の一つとなっています。
そこで、一つ前の日記に書いたコード+αを利用してよりスマートになる方法を思いついたので忘れないうちにメモっておきます。
時間をあけて見直すと改良点が浮かび上がってくると思うので、そのためにも。
■現状分析
現在、弾関連の処理は以下のようになっています。
- BUL.f : フラグ
- BUL.bnum : 弾管理番号
- BUL.num : Bul[i]の情報に対応するBJL.c内の構造体BulD[]の要素番号
BJL.cとBullet.cでは共通のヘッダファイルBulletData.hをインクルードし、そこに弾別ファイル内関数を全て記述。
BulletDeleteやBulletMoveではBUL構造体配列からフラグ記述用メンバのfが1(存在)になっている要素を探し、
その番号のBul[i].fを0にし、BJL_Delete(Bul[i].num)を呼び出してBulD[Bul[i].num].fも0にします。
しかし、ここで問題になるのはBul[x].bnumで番号を管理し、その番号により呼び出すHOGE_Delete関数を変えなければいけなくなるのです。
よって、新しい弾パターンを追加するたびに
switch(Bul[i].bnum){ case 1: BJL_Delete(Bul[i].num); break; case 2: HOGE_Delte(Bul[i].num); break; }
といった感じで追加しなければなりません。
これが削除だけならまあ、まだそこまで面倒でもないんですが、
Moveでも、更にはここでは取り上げていませんがEnemy関数におけるDeleteやMoveでも(Enemy情報に対して)同じ事をしなければならないのです。
これでは手間は増えるし間違いも多くなるし、何よりスマートではありません。
■改善案
そこで、BUL構造体に関数へのポインタを格納するメンバを追加します。
struct BUL { BOOL f; //フラグ int num; //弾タイプ内の管理番号(配列の添え字) float x; //x座標 float y; //y座標 void (*Draw)(void); void (*Delete)(int); void (*Move)(int); }Bul[MAX];
後はBJL_Create内でBul[i].DeleteにBJL_Delete(int num)へのポインタを格納し、
Bullet.c内のBulletDelete関数をこのように変更します
BulletDelete(int num) { Bul[num].f = 0; - switch(Bul[num].type){ - case BUAT_BJL: - BJL_Delete(Bul[num].num); - break; (略) + Bul[num].Delete(Bul[num]); }
これと同じ事をDrawやMoveでもやればOK。
こうしておけば、他の弾種を追加する時もそのファイル以外を触る必要がありません。
■問題点
しかし、この方法はこのままでは致命的な欠点があります。
それは、複数のファイル間にまたがるグローバル変数としてのBUL構造体を前提にしている事です。
このままでは、せっかく片方からの依存関係を整理したのに、もう片方からは強烈な依存関係が残ってしまいます。
そこで、原則として全ての変数を1つのファイル内だけでしか使わないように改善するために以下の方法を考えます。
もっとも、これは上記のような似非オブジェクト指向を全てのファイルで徹底し、
更に拡張性と保守性を高めたいと考えているmSTG2(仮)で一気に実装したいので、今回のプログラムには適用しません。
■現状分析
今度はBJLファイルに着目します。
BJL_Createでは、おおまかに書くと
1. Bul[i].fを調べ、空きをチェック。 空いている所を発見すると引数の開始座標やらスピードやらを入れる。 2. BulD[j].fを調べ、空いている所を発見したら自機狙い弾固有の情報を入れる。 更に、BulとBuldを関連付けるためにBul[i].numにjの値を入れる。
という事をやっています。
しかし、BulはBullet.c内で管理している変数であり、BJL.c内では初期入力以外ではほとんど呼び出しません。
(この「ほとんど」、つまり少しは呼び出している点が問題なんですが、これは解決できます)
更に、1の作業は他の弾定義ファイルでも全く同じの共通部分です。
ではなぜ、Bulletファイル内で前処理をしてからBJL_Create関数を呼び出す事により共通化をはからないのかと言いますと、
例えばBulletCreate関数とBJL_Create関数を使って以下のように処理するとします。
//開始x座標,開始y座標,当たり判定半径,威力,速度 BulletCreate(float x,float y,float r,int pow,float spd,float gx,float gy) { BJL_Create(gx,gy); } //目標x座標,目標y座標(この関数は本当は単なる直線移動弾発生関数で、呼び出しにその時点での自機座標を使う事で自機狙いとしている) BJL_Create(float gx,float gy) { 弾作成; }
しかし、このままでは拡張できません。
では、BulletCreateに"int bnum"引数を追加し、switch/caseをすればいいかというと、それは困ります。
なぜなら、それでは弾種を追加する度に新たにこの部分に処理を追加しなければならなくなるからです。
更に、このままでは別の弾種が更なる情報、引数を欲していた場合に対応できません。
よって、この方法をこのまま使う事はできません。
■解決案
可変個の引数を取る事のできる関数と、関数へのポインタを併用します。
上に、ヘッダファイルへの記入をできるだけ減らしたいと書きましたが、そのままでは外部から呼び出しができませんから、
HOGE_Create関数だけはヘッダファイルに記入し、Bullet.cから呼び出せるようにします。
そして、BulletCreateとBJL_Create関数の引数を以下のように変更します。
補足:
可変引数関数は引数を(int num, ...)と記述し、numの部分に自身を含めた引数の数を入れます。
後は関数内で引数を呼び出す処理を行えば全ての引数が抽出できます。
ただし、stdarg.hをインクルードする事。
BulletCreate(int num, ...); BJL_Create(int num, ...);
これで準備はOKです。
では、個別の処理を考えてみましょう。
BulletCreate(8,x,y,r,pow,spd,gx,gy) #define UNI_MAX 共通処理に使う引数の数 BulletCreate(int num, ...) { int x = num - UNI_MAX; float input[num]; //情報が失われる事を防ぐために一番幅を取る型で宣言する float output[UNI_MAX-x]; input[i]に対する抽出処理; Bul[i].hogeへの入力処理; for(i=0;i<num-UNI_MAX;i++){ output[i] = input[UNI_MAX+i]; } BJL_Create(x,output); } BJL_Create(int num,float input[]) { 抽出処理; BulD[i].hogeへの入力処理; }
これで、汎用的な値渡し処理が可能になったと思います。
実際には引数は全て配列を使って処理します。
添え字の最大数と共通処理に使う添え字の数はわかっている事ですし、その部分に不安はありません。
また、渡す値の数がいくつになるかわからないのでBJL_Createには配列を渡します。
しかし、これでもまだ足りません。
なぜなら、これではどのHOGE_Create関数を呼び出せばいいかわからないからです。
ですが、管理番号を使う事は止めたいのは今まで書いた通り。
ここで、関数へのポインタを使います。
呼び出し例 BulletCreate(9,BJL_Create,x,y,r,pow,spd,gx,gy) 引き出し例 void (*func_bcreate)(int, ...); //嘘が入ってます。ここら辺は実験しないと何ともいえませんがどうやってもできないって事は無いはず func_bcreate = va_arg(ptr, void*); input[1] = va_arg(ptr, float); (一つ前のコード例に書いた処理) func_bcreate(x,output);
これで、管理番号を使わずに弾をセットできるようになりました。
しかしこれだけではまだ不十分です。
■問題点
今回のテーマであった関数へのポインタを使ったmoveやdelete、draw処理に関する記述の一括化は、
BUL構造体がグローバルな事を利用していましたので、ここでは使えません。
■解決案
ここではポインタを渡して向こうでその内容を書き換えてもらう事にします。
すなわち、bcreate関数を呼び出す際にBul.deleteやdraw,moveのポインタを渡しておいて、
そこにHOGE_Create内でHOGE.c内においてのdeleteやdraw,moveのポインタを書き込めばいいのです。
moveに関しては、Bul[i].xやBul[i].yの値をHOGE.c内の処理をもとに書き換えなければなりません。
ですので、Bullet.c内のmove関数からHOGE.c内のmove関数を呼び出す時にも、
Bul[i].xやBul[i].yのアドレスを渡して向こうで書き換える事を忘れてはいけません。
もっとも、ポインタを渡しての直接書き換えはグローバル変数を使う事よりはマシな物の、
あまり好ましい事では無いようにも思います。
ただ、現段階ではこれが精一杯の案です。
■総括
以上の方法をBulletとEnemyのコードに適用する事で、弾及び敵パターンの拡張性は広がる事と思います。
BULD構造体はローカルである為、共通部分を他のファイルからコピー&ペーストし、
必要な部分(主にCreateとMove)のみ編集し、関数名を置換した後にCreate関数のみヘッダファイルにて宣言すれば良いわけですから。
使いまわしの処理、基本的に編集しないであろうDeleteやら初期化やらは継承できてしまえば楽なんですけどね……。
いや、オブジェクト指向プログラミングをやった事が無いので本当に楽かはわかりませんが。
半分は後の自分へ残したい遺産として書いたので読みやすいかはわかりません、むしろ関数名やらがごっちゃになって読みにくいと思いますが、
これが現段階での拡張性に対する精一杯の考えです。
後は、ステージ構成データ、スクリプトの問題が大きなハードルとして残っています。
また、現段階では背景について何も考えていないので、これも考えなくてはなりません。
これは、mSTGで1ステージ作成し、BOSSも実装した上で背景も実装してみた上で考えてみたいと思います。
もっとも、気まぐれなので先にそちらを実装してしまうかもしれませんが。
蛇足:
ステージスクリプトに関しては、敵の動きと弾の動きをまとめた関数を別ファイルに作り、
フレームに応じてそれを呼び出す形はどうかなと考えています。
もちろんハードコードになるのでスクリプトよりは柔軟性が低いですが、
高度な処理を行えて、思い通りのパターンが組みやすいのではないかと思います。
より良いスクリプトリーダーを実装して細かい制御をできるようにできるなら、もちろんそちらの方が断然良いわけですが現段階ではスクリプト解析については全く想像もできません。
いや、資料はあるんですが……。
ただ、これに関しては後で関数を取り替えれば済む話だと思っているのであまり危惧してはいません。
mSTG2が完成してから考えて、どうにも関数の取替えだけでもすまないと思ったら……mSTG3ですか?
ちょうどC++を学習したいと思う頃に重なると思うので、それも良いですね。
弾日記 - 速度調整
■mSTG
http://misp.s4.xrea.com/b/mSTG/mSTG.html
n-Way弾のバグは、基準となる弾が偶数弾では発射されず
計算の経過として一時的に必要なだけなのに、それを発射してしまっていたのが原因でした。
また、タイミングが100ms毎だと一度の移動距離が長く、当たり判定を飛び越えてしまう事により当るはずの弾が当たらないという事に遭遇しまして、
解決方法としてはあたり判定を大きくするなどのやり方がありましたが、それでは本末転倒なのでタイミングを変更しました。
おかげで少しなめらかになった気もします。
ちなみに、このタイマーは10msより短いタイミングは取れない仕様だったはず。
なので、今後はこれで固定になりそうです。
設計からやり直すmSTG2(仮)でも。
2005年03月06日
弾日記
■mSTG
http://misp.s4.xrea.com/b/mSTG/mSTG.html
n-Way弾がおかしすぎます。
偶数弾なのに止まってたらあたります。
敵弾などの制御方法の詰めが甘くてあれなのですが、とにかく一つのステージは作ります。
この調子だと作れそう。多分、きっと。
設計って難しい。
UML、ちょっと学習してみようかな。
しかしそれらの一般的な知識になると学校の図書館にあるので、入門本を買うのはもったいない・・・
2005年03月05日
早朝
■夜更かし
こんな時間になってしまった……。
■FF7
田代!田代!
2005年03月04日
日記
■mSTG
http://misp.s4.xrea.com/b/mSTG/mSTG.html
とりあえず、やっと当初考えていた骨格部分が完成しました。
ついに、色々な弾を実装していきたいと思います。
既存部分のバグを取りつつ。
それにしても誤算だったのが情報の表示。
親ウィンドウ(黒い部分)に描画しようと思っていたのですが、それをすると画面がちらつきすぎてどうしようも無い悲しさが。
仕方が無いので暫定的に子ウィンドウの上部に表示しています。
しかし、背景が透過されていないのでとても気持ち悪い。
ですが、透過させると今度は子ウィンドウまで透過してしまってもっと気持ち悪い事になるので、仕方なく透過ではなく背景の一部にする事に……。
将来的にはメモリ内に描画して、それをデバイスへ転送という王道なやり方を実装したいです。
一通り弾を実装して満足したら。
ステージ1つ分を構成する敵の配置やら弾のパターンなんて考え付かないなあ(汗
mSTG - STG forever
弾を避けるゲームです。
http://misp.s4.xrea.com/b/mydata/mSTG20050304.exe
http://misp.s4.xrea.com/b/mydata/mSTG20050304.zip
カーソルキーでの八方向移動に対応。
自機弾は無し。
ゲームオーバーになったらスペースキーで復活。
クリアしても何も無し(敵も何も来ずぼーっとするだけ)
弾種は撃ちっ放しの自機狙い、敵種は直線移動しか実装してません。
5分くらいは遊べる物になってたら、いいなあ。
ソースは恥ずかしいコメントとか残ってるかもしれませんが、何をいまさらって感じなので載せときます。
苦し紛れの部分は凄く目立つと思う……。
追記:
私は避けれませんでした。
皆避けれたのに _no
さらに追記:
忘れてた。メモっとかないと
joyGetPos
2005年03月03日
弾
ほぼ完成。
当たり判定OK、敵機移動OK、敵弾移動OK。
実際に思い通りに動きました。
キー入力以外は!
キー入力は悪魔です。酷い。
とりあえずオートリピートなどという物を考えた人物は**べきです。
いや、やっぱり無いと不便ですがあると不便。
スマートな方法が咄嗟に思い浮かばないのでちょっと休憩。
斜め移動を実装しようとしてこのような事になったわけですが。
お願いします、早く方向弾とか飛ばさせてください。
キー入力をうまく処理する方法は無い物か……いや、あるんだろうけどサ。
2005年03月02日
日記
■弾
ロジックは以前より洗練された筈。
が、うまく動かないのは確実にコーディングミス。
敵を動かす部分のバグが取れない。
ここがうまくいけば弾の部分もアルゴリズムはほぼ同じなのでバグも出ないと思います。そうだといいなあ
まあ、つまり正念場。
今回は当たり判定を二点間の距離で求め。
敵の情報は二段階に分離。
汎用の情報とその動作専用の情報。
弾も同じく。
これで、色々いじる基盤にできそうです。
<strong>完成すればですけどね</strong>
進行率40%くらい、かな
■大航海
面白い。
■基本情報
設計の基礎、外部設計の詳細をやったけどあんまり身になってない。我流で設計された今の試作STGを1から設計し直すのはちょっと……。
次からやってみます。次っていつだ