第2回 とりあえず、ゲームでも「1.変数、登場!」

2−1 変数、登場!

 第2回は「とりあえず、ゲームでも」でお送りします。
いきなり、やる気のなさそうなタイトルですが、「とりあえず作れる」ところがBASICの良いところなのです。
そのおかげで、とりあえずでも作りはじめたら、けっこう良いものができることがあります。前回は「仕様が大切です」などと言いましたが、仕様を作りながらプログラムすることもできるのがBASICの柔軟な所というのか、いい加減な所というのか、難しいところですが・・・
ま、その数だけ、とりあえず挫折することもありますが、そんな感じで気楽にいってみましょう。

 まずは、とても重要な基礎知識「変数」についてお話します。
いきなり、専門用語?と思われるかもしれませんが、変数を簡単に言うと「値を入れておく入れ物」です。

例えば、ゲームの得点は、敵を倒したり、クリアしたりすることで、徐々に加算されていきますね。
そして、プログラムは、それらの得点をどこかに記憶しておかなければ、加算するどころか、表示することすらできません。必要な値を覚えてくれないアルツハイマープログラムになっては困りますので、何らかの入れ物を用意してプログラムの実行中に値を保存する場所を用意します。それが、変数です。

変数は、次のような特徴をもったモノです。
  • 勝手に使えない
  • 名前がある
  • 入るものが決まっている
  • 値を入れることができる
  • 値を参照することができる
  • 有効範囲がある
唐突に「勝手に使えない」もので、「名前」があって、入るものが「決まって」と書きましたので、なんだか頑固そうなモノですね。
では、この頑固者について、1つずつ理解していきましょう。

まず、変数を使うときは、BASICのプログラムに「○○という変数を使いますよ」という「宣言」をします。
「宣言」というと、堅苦しいですが、具体的にはプログラムに使いたい変数の「名前」と「種類」を指定します。どちらかと言えば値を入れる入れ物を用意してもらう要請みたいなものですね。

BASICでは「Dim」というコマンドで変数の宣言を行います。
具体的には、

    Dim 変数名 as 型

です。
変数名は、変数の名前ですが、NS Basicでは次のようなルールがあります。
  • アルファベットで始まる
  • アルファベット(a〜z),数字(0〜9)及び、アンダースコア(_)が使用できる(全て半角)
  • 30文字まで
  • 大文字小文字は区別しない(AmiもAMIもaMiも同じと見なされる)
一応、名前のつけ方には、名前の先頭に「型」の略称をつけるハンガリー表記という名付けのガイドラインがありますが、一般的には、自分もしくは自分を含むプロジェクト内でルールを作って名付けるのが良いでしょう。
ちなみに、コツは「自分で何に使っているのかわからなくなるような名前はつけない」です。
さて、宣言のasの後ろ「型」ですが、これはその変数に入れる値の種類に合わせて指定します。
値の種類とは、大きく分けて「数値」「文字」「時間」「その他」の4種類に分けることができます。

種類型名
数値単精度実数型(Single)
倍精度実数型(Double,Float)
長整数型(Integer)
整数型(Short)
文字 文字型(String)
バイト型(Byte)
時間 日付型(Date)
時刻型(Time)
その他 データベース型(Database)
ユーザー定義型

詳しくは、この表のようになりますが、宣言するときの型は、型名に記してあるIntegerやStringなどの横文字で指定します。

ちょっとここで、それぞれの型についてちょっと説明しておきますね。

 数値は大きく分けて「実数」と「整数」の2種類になります。
簡単に言えば、実数は少数点以下にも値がある数で、整数は小数を使わない数です(ちょっと乱暴ですか)
「長」や「倍精度」などの接頭語(?)はその型の規模を表しています。例えば、倍精度は単精度の倍の長さの数字を扱うことができます。
長さが倍、ということは、単純に単精度が4桁、倍精度が8桁になるようなことではありません。全て、ビット幅が基準になります。
ハンドブックによると、Float(Double)は64bit、Singleは32bitだそうです。整数は、Integerが32bit、Shortが16bitです。バイト型はその名の通り1バイト(8bit)で、通常は1文字を表す文字型に分類されます。
(VBAだと、整数はIntegerとLongの2種類で、Longの方が長整数になりますが、ここでは、Integerの方を長整数と表記しました。)

 文字、日付、時刻は、読んで字のごとく、文字列や日付、時刻を表す値を扱います。

 その他については、また別の機会に触れることにしましょう。

専門的な言葉が多くて難解かも知れませんが、例えば、ゲームの得点を保存するためにScoreという名前の変数を使いたいときは、

    Dim Score as Integer

とするわけです。まあ、大抵の場合、ゲームの得点は小数点以下の数字は使いませんから、整数型ですね。

    

このように、まず配列とは、名前と種類が決められた入れ物、とイメージしておけば良いでしょう。

目次へ     次へ

第2回 とりあえず、ゲームでも「1.変数、登場!」