2012年2月24日金曜日

2.1 型と値

型と値。


本職プログラマの方々からしたら「いきなり型かよ!」っていう感じでしょう。
そんなツッコミは無視します。



まずは「型」。かた。

C#でプログラムを組むにあたって、「型」の概念はとっても重要です。
極端なはなし、

C# イコール 「型」の集まり

です。


だったらまずは、「型だろう!」ということで、やります。「型」



そして「値」。あたい。

型とすごく密接な関係にあるものです。
これも、プログラミングするにあたって切っても切り離せないものです。





どちらも、C#特有のものではなく、一般的なプログラミング言語によくある概念です。
ですがまあ、他の言語のことを気にしても仕方ないので、違いとか細かい話はスルーします。


では、型と値について、まずは具体例を出しましょう。
余り深く考えず、ざっとでいいので見てみてください。


アイテム 薬草、毒消しの粉、謎のカギ、王様からの手紙、高そうな石
装備 鎧、靴、髪飾り、ネコ耳
武器 こんぼう、エクスカリバー、マシンガン、バールのようなもの
性別 男、女
赤、緑、青、黒、白
ゲーム機 3DS、PS VITA、PlayStation3、Xbox360、iPhone
DCCツール Maya、XSI、3dsMax、MotionBuilder、Lightwave、六角大王
整数 -20, -3000, 0, 32, 1024
座標 ( 0, 0, 0 )、( 20.32, 432.1, 9.0 )、( -34.0, 0.02, -0.621 )
プレイヤーの状態 待機、歩き、走り、攻撃、防御、ジャンプ
光源の種類 平行光源、点光源、スポット光源
Windowsのコントロール(UI) ボタン、チェックボックス、スクロールバー、テキストボックス


・・・とまあ、本当に適当に書きました。


どうでしょう、なんとなくわかるでしょうか。
この表から、型と値の関係性が見えてきたでしょうか。


型は・・・、いわゆる雛形とか、テンプレートとか、種類とか、そういう概念で・・・

値は・・・、具体的な物とか、形とか、バリエーションとか、そういう概念で・・・

というような、そんあニュアンスで捉えられていれば、ひとまずクリアです。



型は、どれもバラバラで多種多様です。

性別のように、(普通は)男か女の2種類しかないもの、
整数のように、無限にあるもの、
プレイヤーの状態のように、"物"ではなく"事"を表すものなどなど、
たくさんありますが、どれも型です。


そして値は、型の具体的な存在を表すモノです。



逆に考えてみてもいいでしょう。


「 【男】という値 」 は 「 【性別】という型 」 に 属している
「 【エクスカリバー】という値 」 は 「 【武器】という型 」 に 属している
「 【ジャンプ】という値 」 は 「 【プレイヤーの状態】という型 」 に 属している


ちなみに、「アイテム型」「性別型」「整数型」のように、型の場合は「○○型」とよく表現します。
そう書かれていない場合は、値を意味します。
なので、以下のような言い回しになります。

「アイテム型の薬草(という値)」
「性別型の女(という値)」
「整数型の256(という値)」




どうでしょう。
型と値の、すごく大雑把な概念を説明しました。
基本的にはこれだけです。これだけで、ゲームの大枠は説明できます。


たとえば、典型的なRPGを考えましょう。

プレイヤーとその仲間達は、【キャラクター型の値】です。
フィールドにうじゃうじゃいるスライムは、【敵型の値】です。
旅の途中で手に入る薬草や扉の鍵は、【アイテム型の値】です。


プログラマは、型をまず作り、それを元に値を作ります。
その値をいろいろ制御して、ゲームを動かすのです。
RPGの例で言えば、まずは【アイテム型】を作って、次に、それを元に【薬草(という値)】を作ります。

さらに細かい話で言うと、レベル1とかレベル30などの、この「1」とか「30」は、
整数(数字)という型の値であり、その値を使うためには、
まずは【整数】という概念(つまり型)を最初に用意する必要があります。



さぁ、型と値が、どれだけ重要なのかがわかったでしょうか。
いきなり詰め込みすぎた感はありますが、それだけ重要ということです。

理解できたかどうか、自信がないなら、是非最初から読み直してください。
すごく大切で、この概念を理解したことを前提で、次に進みます。



今日はここまで。
まだまだ序盤ですよー。

0 件のコメント:

コメントを投稿