土曜日, 12月 09, 2006

「なでしこ」でカラーネームを使う

色を表すカラーコードは、昨日やったように光の三原色(R,G,B)を使って指定する。R,G,Bの各々の値は、16進表現で$00~$FFなので、この方法を使えば、1600万色のすべての色を指定することができるのだが、色に対応するコードの値を覚えるのは結構たいへんだ。

そこで、「なでしこ」では、色定数というのを使って、名前で色を指定できるようになっている。

色定数
http://nadesi.com/doc/cmd-func.htm#487

しかし、この色定数、8色しかない。せっかく1600万色も使えるのだから、もっと色んな色を名前で指定できるようにしたい。

実は、HTMLでは、色の指定を次のように名前を使ってできるようになったいる。

カラーネーム一覧
http://color.eweb-design.com/0102_cn.html

そこで、この値を「なでしこ」の定数としてプログラムに定義する方法を試してみる。

定数
http://nadesi.com/doc/reference/syntax/1-1-hensu.htm#head7

「なでしこ」では、変数の前に!を付けると定数にすることができる。定数にすると変数の値を変更することはできない。

3つの色定数を新たに定義し、指定した色名で画面をクリアしてみる。画面をクリアするためには、BASICの「CLS」に相当する「画面クリア」命令を使う。

画面クリア
http://nadesi.com/doc/cmd/doc.cgi?mode=cmd&id=1101


//色定数で画面をクリア

!Yellowgreen=$9ACD32
!Skyblue=$87CEFA
!LightCoral=$F08080

画面クリア(赤色); 表示("赤色="&赤色); 2秒待つ
画面クリア(緑色); 表示("緑色="&緑色); 2秒待つ
画面クリア(青色); 表示("青色="&青色); 2秒待つ
画面クリア(Yellowgreen); 表示("Yellowgreen="&Yellowgreen); 2秒待つ
画面クリア(Skyblue); 表示("Skyblue="&Skyblue); 2秒待つ
画面クリア(LightCoral); 表示("LightCoral="&LightCoral); 2秒待つ
画面クリア()

//ここまで



こんな感じで、色の名前を定数にしておけば、「なでしこ」の色定数と同じように色の名前を使える。