どり〜むきっず 〜ゲーム制作支援サイト〜
トップ | 初めての方へ | プロフィール | メールマガジン | リンク

同人ゲーム制作支援 | ゲームアルゴリズム勉強法 | C言語入門

今日のみなせけ | インフォプレナー | ゲームプログラム講座

めるまがきっず「何も無い……ゼロの概念」


////////////////////////////////////////////////////////////////////////////////
//
//         ☆ めるまがきっず ☆
//
//     〜とっても「ゲーム的なたつにい」による、まったりメルマガ〜
//
//
// 配信者:
//   早瀬 竜也(たつにい)
//
// 配信日:
//   2008/03/03
//
//
// 第11回 「何も無い……ゼロの概念」
//




忘れた頃に配信します〜
皆さんになじみの薄い(←オイッ!)、早瀬竜也こと「たつにい」です〜




かなり以前になりますが、「プログラムにおいて0は重要な意味がある」と言いました。

それってどういうこと? っと疑問に思う人もいれば、ある程度プログラムを組んだこと
のある人なら、ああなるほどなぁ〜っと思うことでしょう。

ゼロという数値は一体どんな数値なのか、ちょっと考えてみてください。

0はかけ算において、いくらかけても0のままです。そして負数を除いた数値としては、
最も小さい数値ですね。
それでいて、0は正数とも負数とも言えます(むしろ、どちらとも言えないかも)

そしてプログラムの暗黙のルールとして「ゼロによる割り算をしてはいけない」という、
参考書でも最初のうちに言われているものがあります。
ゼロによる割り算の行が処理されようとした時点で、プログラムは異常終了します。

コレは実際に「X÷0」を計算してみようと思えばわかると思われます。


昔、専門学校の同級生(でも向こうの方がずっと年上)がこんなことを言ってました。

「建物の階の表記で1階が0階じゃないのは、おかしい!」

彼はガチガチの理系で周りの人よりも数段プログラマーとしての実力があり、その数学
知識を買われ、見事ゲームプログラマーとして就職していきました。
プライベートで連絡を取り合っていたわけではないので、今の行方はわかりません。

かなり無茶苦茶なことを言っていますが、同じプログラマーとして頷ける言葉です。

1階とは、地上であり地面と同じ位置です。それに比べて2階は1階分上、地下1階は
1階分下ですね。そして地下の場合、マイナスの符号を付けたくなります。
でも、マイナスの符号を付けると、おかしなことになります。
0階というのは存在しないため、1階から2階の数値的な差は1ですが、1階から地下
一階の差は2になります。

頭がこんがらがるなら深く考える必要は無いですが、つまり彼曰く「ゼロを飛ばすな」と
いうことです。
「+1と−1の間には0があるから、数式で階数を表すと狂うじゃないか!」と、不満を
洩らしていました。

ちょっと頭をやわらかくして考え、1階と地下1階の間に普通の人間には進入不可能な、
「ゼロの階」というマットを作れば良いのでは? っと思ったのは内緒です。
なんか話がそれそうなので、この話はここで打ち切ります。


C/C++言語には同じ型の変数を複数同時に宣言できる「配列」があります。
この配列変数はインデックスという数値によりそれぞれの要素を見分けます。

例えばint型の変数を5個ほど用意したい場合は「int data[5];」と宣言します。

その後はdataの後にある [ と ] の間に先ほど言ったインデックスを指定すると普通の
int型の変数として使えます。
で、そのインデックスの数値の範囲は上記の例の場合「0〜4」です。

もう一度言いますが、「1〜5」ではなく「0〜4」です。
1からではなく0から始まっていることに注目です(笑)

数えてみましょう。

0、1、2、3、4……

キチンと5個ありますね(笑)

一番最初の要素に3を代入する場合「data[0] = 3;」と書きます。

配列の利点は、このインデックスに変数も指定することが出来るということです!

例えば変数「index」というのがあり、2の数値が代入されていたとします。
その場合「data[index] = 10;」とすれば、「data[2]」の配列変数に10が代入されます。

このインデックスの数値が一回インクリメントされたあとに同じ処理がされたら、今度は
「data[3]」の配列変数に10が代入されます。

配列の説明も全部教えたら長くなりますので、この辺で打ち切ります。
気になる方は自分で検索してみてください。


変数等に使われる型のタイプにも「void」型というものがあります。
このvoid型とは主に関数に使われるのですが、引数(ひきすう)や戻り値が不要なときに
「要らない」と明示的にするために使用します。

ゼロの概念とは少し外れますが、何も無い、不要だということもキチンとコンピュータに
伝えてあげなければいけないのがプログラムです。

勘違いして欲しくないのは、voidはゼロと同じではなく「無い」と同じだという事です。
int型の変数に0を代入したならその数値は0ですが、void型はそもそも変数という箱自体
が存在しないということなので、明らかに違います。


横道にそれてばかりの内容でしたが、正直、語るのが大変なほどに、ゼロの概念はプログ
ラムの色んなところに含まれています。
そもそもコンピュータは0と1の世界です。ゼロが重要なのは当然です。

その0と1を気が遠くなるほど沢山扱い、数値を表現し、その数値を文字コードや画像の
色合いとして置き換え出力し、文字や絵を表現していたりします。

コンピューターの元素ともいえるのが、この0と1という数値であり、1は皆さんにも
馴染みがあるでしょうが、ゼロはあまり馴染みが無いでしょうから、プログラムを組む
上で少しでも考えるようにしてもらえたらと思い、この内容でメルマガ配信しました。




如何でしたでしょうか?

ちょっとでも誰かのお役に立てたのならそれだけで嬉しいので、「役に立ったよ!」って
思った方は、もし宜しければメール下さい〜
僕は寂しがりやなので、一通のほんの2〜3行くらいの励ましメールで大喜びします!

それでは、次回も色々と語りますのでヨロシクです〜




メールマガジン「めるまがきっず」

発行責任者:早瀬 竜也(たつにい)
公式サイト:「どり〜むきっず」 http://dreamkids.sakura.ne.jp/
問い合わせ:hakka17@hotmail.com
発行サイト:「まぐまぐ!」 http://www.mag2.com/
登録・削除:http://www.mag2.com/m/0000254884.html



上記の記事は僕が配信しているメールマガジンのバックナンバーです。

配信は不定期ですが、忘れた頃にゲーム制作に関しての有益な情報を
受け取ることにより、ゲーム制作の潜在的意欲が上がるかもしれませんよ?

登録は無料ですので、興味のある方は下記フォームよりどうそ!

メルマガ登録・解除
 


過去バックナンバー




メニュー






トップ | 初めての方へ | プロフィール | メールマガジン | リンク
Copyright (C) 2008 どり〜むきっず, All Rights Reserved