2009年8月31日月曜日

定数化の重要性を訴えてみる

「ゲームのプログラミングの上で、知っていると非常に楽になれる」初心者向けの記事です。

例えば、以下のようなコードがあったとします。
(関数Data CreateData(string name)は、引数nameを参照し、そのデータから別のデータを生成してそれを戻り値として返す関数とします)
---------------------------------------
void Main()
{
Data dat1 = null;
Data dat2 = null;
Data dat3 = null;
dat1 = CreateData("hoge.txt");
dat2 = CreateData("hoge.txt");
dat3 = CreateData("hoge.txt");
}
---------------------------------------

(まあ、こんなコードを実際に使う例はないと思いますが…w
ここで、CreateData()の引数となっているhoge.txtの名前が「hoge2.txt」になったとします。このとき、上記の方法だと、hoge.txtとなっている部分全てをhoge2.txtに置き換える、すなわち3回の置換の必要が出てくるわけです。
しかしながら、以下のようにソースコードを書き変えると…

---------------------------------------
void Main()
{
const string data_path = "hoge.txt"

Data dat1 = null;
Data dat2 = null;
Data dat3 = null;
dat1 = CreateData(data_path);
dat2 = CreateData(data_path);
dat3 = CreateData(data_path);
}
---------------------------------------
元となっている定数「data_path」の値を書き変える、すなわち1回の置換だけで、1つ目のソースコードと同様の置換ができるわけです。

マジックナンバーは、いつどのように変わるか予測できないものです。たとえば、仕様変更で画面の大きさを640*480から800*600にしたとき、それに関わる全ての数値を全て置換するには膨大な労力がかかるでしょう。ですが、定数方式をとっていれば、この面倒な置換処理などとは別れられるわけです。

この通り、非常に便利な定数化。使わない手はないでしょう。

---------------------------------------
9/1 AM1:06追記。2つ目のソースのCreateData()の引数が文字列そのままになってました。正しくは「""」を抜いた状態です。(修正済み)
指摘してくださったsle様、ありがとうございましたm(_ _)m

2009年8月30日日曜日

名刺を作ってみました

9月の全ゲ連に向けて、「2週間前の24時間テレビの会場」で購入してきたレザック紙を使った名刺を作ってみました。
色々載ってるのでここでは公開できませんが、割と普通のものに仕上がったのではないかと思います。


最後に告知。全ゲ連が9/13に開催されますので、ゲーム開発をなさっている学生の皆様やゲーム作りに興味のある皆様は是非参加されてみては如何でしょうか?
以下は公式の告知ページへのリンクです。
http://d.hatena.ne.jp/zengeren/20090825/1251192482

2009年8月24日月曜日

【緊急】Delphiを狙うウイルス「Induc」

どうやら、Delphi(しかも私の環境近辺)を狙うウイルス「Induc」の感染事例が多数報告されてきているようです。
今回はDelphi3~7という非常にマイナーそうな開発環境を狙ってきているものなので、実際の損害はそこまで大きくならないと思いますが、これがもし私たちの使っているVC++やVC#で起きたら…考えたくもないですね。

参考までに、下記にソース元のURLを。Delphi3~7あたりを使われている方は見ておいた方がいいかもしれません。
http://internet.watch.impress.co.jp/docs/news/20090821_310087.html

これを受けて、この度、HP移転時に公開する予定の全ての作品に関して、Norton Internet Security 2009においてウイルス検査を行いました。幸いなことに全作品とも感染はしていませんでしたが、今後はより一層ウイルス的な意味でのチェックを強化していかなければならないですね。

2009年8月23日日曜日

Moneto.age++;

void main()
{
Moneto.age++;
}

1つ年を取りました。今後ともどうぞよろしく。

2009年8月22日土曜日

レポート用紙について1行で語ってみる

厚口レポート用紙を切らし、薄口でいろいろ不便な思いをしつつ、1時ちょい前の妙なテンションで書いてみました。

「厚口最強」

------------------------

手書きコーディングでも数学レポートでも同じことが言えそうですが、やっぱり上手に消せないと見栄えがよろしくないんですよねぇ…。
私が現在使っている薄口の用紙だと、稀に消したところに皺が寄ってしまったり、筆圧によっては裏側が凸凹してしまうこともあるのです。
そこで厚口レポート用紙。厚さとしては普通のコピー用紙より若干薄い程度なので、紙に強度があります。なので、皺が寄ったり、裏が酷い凸凹になったり、そういうことがほとんど起きないわけです。まあ価格も若干高くなっていますが気にしない。

しかしながら、厚口は近所の小売店に売っていないという。かなり使いやすいので、是非ともいろいろな店で扱ってもらえるようになってほしいですね。

2009年8月20日木曜日

一応告知

新サーバーアカウント取得しました。1GBあるので、ある程度のファイルの保管はそこでできそうです。
まだファイルを上げていないので、アドレスを公開するのはもう少し先になりそうですが…

さっきのノリで

中学受験の問題とかによく「閏年の定義」を前提知識とする問題があった(ような気がする)ので、ただひたすら「~年はうるう年ですか?」と聞き続ける非常に退屈なプログラムを作ってみることにしました。

ただの悪ノリプログラムなので、明日までには出来上がる…と思います。公開はすると思いますが、それ以前に新しいサーバーがまだ見つかっていないため、公開の時期は未定です。

折角の悪ノリなので、レジストリか何かに情報を登録しておく機能でも作っておきましょうかね。でも邪魔なだけか…w

この関数は何のために?#01

.Netなどについて色々調べていると、何やら用途の良く分からない関数が。

http://dobon.net/vb/dotnet/system/isleapyear.html

このDateTimeクラスのIsLeapYearメソッドなのですが、日にちも含めた時計機能を内部で実装するプログラムでもない限り、まず使う機会がないような気がするんですよねぇ…

折角だ、ちょっとこれ使って妙なプログラムでも組んでみますかw

2009年8月16日日曜日

@C76 3日目

さてさて最終日。(2日目の戦利品のうpが終わってないが気にしないwデジカメの電池がお亡くなりになっているのでまあ…

今日はあまり資金的に余裕がなかったので、気になったサークルいくつかを巡る+空き気味の企業に行ってみる程度のことしかしていません。
さて戦利品をテキスト上にて…

・評論東方(オタクブックス)
・等身大アズぬいぐるみ(音泉ブース、角砂糖の委託…だったかな?)

何という量の少なさ。やっぱり1・2日目で資金を使い過ぎてましたね!
しかし評論東方の外見が非常にそれっぽいですね…。下手すると三○堂とか書○とかに置いてそうなくらいに上品な見た目です。

2009年8月15日土曜日

@C76 2日目(Neetpia)

C76 2日目に参加してきました。

私の入っているサークルNeetpia(東O-32a)では、昼頃には既に新作「Age of Ethanols Test of Trial Version C76」が完売していたようです。手に取ってくださった皆様、本当にありがとうございますm(_ _)m

…戦利品などの報告は後ほど。

2009年8月14日金曜日

@C76 1日目

C76、1日目に行ってきました。
今回のコミケも前回同様、1日目は企業中心です。
さて戦利品…



全部広げてみました。
とりあえず今回購入してきたのは、
----------------------------------------------------
・AUGUST 夏コミセット
・AUGUST Future Passport
・とらのあな 東方水酔祭
・とらのあな 東方夏酔祭
----------------------------------------------------
の4点。遂に企業の1回の消費金額が10kを突破…(ぉぃ
さて、上の写真の左側にちょこんと載っている2つの段ボール箱。その中身は…



何というおちょこw
私は酒が飲めない(年齢的な意味で)なので、専ら鑑賞用or保存用になりそうですね。
しかしこれが4つも…w

ということで、C76 1日目の報告はこんなところで。


ところで、明日は先日の告知通り、東O-32aにおいて、私の入っているサークル「Neetpiaより「Age of Ethanols Test of Trial Version C76」が頒布されます。1枚200円。
是非とも手に取ってみてください。

2009年8月12日水曜日

Age of Ethanols Test of Trial Version C76



私が参加しているサークル「Neetpia」のC76新作「Age of Ethanols Test of Trial Version C76」が無事に焼き上がってまいりました。
C76 2日目(土曜日)、東O-32a"Neetpia"にて、1枚200円で頒布します。

スクリーンショットはNeetpia公式サイトでどうぞ。http://neetpia.sakura.ne.jp/

2009年8月7日金曜日

「高校生のための数理工学見学会」

に参加します。

まとめレポートは…出せたらいいなあ、というか出すつもりです。
期待しないでお待ちくださいまし。