12月14日 これまでにない堅いタイトル,まるで日経ソフトウエア誌面に書いている連載のようだが,「今日も昨日のやつできるけ?」と言うかずに,よーし,今日は変数を理解させようとHot Soup Processor(ホットスーププロセッサ), 略称HSPタイム第2回を始めた。

変数は値を記憶しておく入れもので,計算ができるのだと,まず四則計算をやってみせた。
----------------------------------------
a=10
print a
a+=20
print a
stop
----------------------------------------

 a=10とすると,変数aが作成され,そこに値10が入る。print aとすると画面に10が表示される。a+=20はC言語のような書き方だ。a=a+20と書くところを,a+=20と簡略に書ける。HSPの文法はC言語の良いところも取り入れている。同じように引き算もa-=5となる。
----------------------------------------
a=10
b=2
c=a*b
print c
----------------------------------------

 かけ算はc=a*bと書く。割り算はc=a/bとなる。などと説明しながら,横目でかずの表情をうかがうのだが,退屈なのか面白いのか推測できない。「つまらんか?」と聞くと「なあーん」と答えるので,とまどっているのかなと感じた。

 もともとかずは,何かを説明しても「うん」とか「はぁーん」とか合いの手を入れてくれないので,わかっているのかいないのか,わかりにくいやつなのである(だから,この日記の中にも会話文が少ないのであるが)。で,わかっていないのかというと,たいていわかっていることが多い。

 aとbの値を割り切れない数に変え,余りを求めるのは多分c=a%bだとプログラムをコンパイル&実行させてみたが,うまくいかない。ここはC言語ライクじゃなかった。ヘルプからプログラムガイドを開くと,割り算のあまりは\で求めると書いてあった。HSPスクリプトエディタからHTML形式のヘルプをサクッと引けるで,他の言語でプログラミングの経験があれば,マニュアルがなくてもプログラミングを進めていけそうだ。

 基本的なことばかりしていて,かずが飽きたら困るので,次はグラフィックに振ってみた。
----------------------------------------
yy=100
xx=5
color 200,255,100
boxf xx,yy,xx+40,yy+4
----------------------------------------
 boxfは指定した座標(xx,yy)から(xx+40,yy+4)を塗りつぶすコマンドである。これで幅40,高さ4ピクセルの長方形が1つ表示される。

 始点をyy,xxと変数にしたのには理由がある。繰り返しを行う制御文repeat ~ loopを使って,X軸に5ピクセル間隔で5つ長方形を描いてごらんと,かずに問題を出した。

 かずは「・・・」とフリーズしてしまったので「長方形を1個描くたびにxxの値を変化させればいいが」とアドバイスすると,下記のコードにたどり着いた。
----------------------------------------
repeat 5
  boxf xx,yy,xx+40,yy+4
  xx+=45
loop
----------------------------------------
 実行すると,長方形が5つ並んだところで,今日はおしまい。