最終更新日 2005年9月5日
ESCHER.EXE VER.3 を立ち上げてみましょう。 「再設定」ボタンをクリックし、
FOR :I=1 TO 3 [ FD YY/2 RT 120]
END
と打ち込みます。
次の
FOR :I=1 TO 3 [ FD YY/2 RT 120]
は2番目の繰り返しの例で、
FOR :I = 1 TO 3 STEP 1 [FD YY/2 RT 120]
の省略形です。:I が変数で、変数はすべて変数名の前にコロンを付けたもので示されます。この命令の意味は、変数 :I を 1 から 3 まで 1 づつ増やしながら、[ と ] で囲まれた部分を繰り返し実行しなさいと言う意味です。今の場合、:I を 1 として、FD YY/2 RT 120 を実行し、、:I を 2 として、FD YY/2 RT 120 を実行し、、:I を 3 として、FD YY/2 RT 120 を実行しなさいという意味です。[ と ] で囲まれた部分で変数 :I を使っていませんから、REPEAT 3 [ FD YY/2 RT 120] と同じ振る舞いをします。
FOR :I = 3 DOWNTO 1 STEP 1 [FD YY/2 RT 120]
でも同じです。今度は、変数 :I を 3 から 1 まで 1 づつ減しながら、[ と ] で囲まれた部分を繰り返し実行しなさいと言う意味です。STEP <数式> で増分と減分を指示します。
手続きの定義は
END
の行で終わります。
「OK」ボタンをクリックします。
FOR :I=1 TO 3 [ FD :SIZE RT 120]
END
と修正します。一行目の :SIZE が引数です。この引数が2行目で FD の引数として使われています。2行目で、一辺 :SIZE の正三角形が描かれます。
「OK」ボタンを押して、元のモチーフを描くダイアログボックスに戻ります。
MAKE "T 0 と打ち込みます。MAKE 命令は変数に値をセットするとき使います。一般形は MAKE "<変数名> <数式> で、"T の様に変数名の前に " を付けます。数式の値が変数にセットされます。変数の値を呼び出すときは、:<変数名> の形で使います。
PRINT :T を実行すると
0 が表示されます。
WHILE :T < 6 [ SANKAKU :T*25 RT 60 MAKE "T :T+1]
を実行します。
MAKE "T 1
DO [ FD :T*10 RT 59 MAKE "T :T+1] UNTIL :T = 13
を実行します。
FOR :T=1 TO 16 [IF :T%2=0[PD][PU] FD 30 RT 360/16]
を実行します。
SETPC 3
SETPW 3
FOR :T=1 TO 16 [IF :T%2=0[PD][PU] FD 30 RT 360/16]
を実行します。
RT 90 FD XX
SETXY XX/2 (-YY/2)
POP
を実行します。
複素数について
複素数が使えるようになっています。
複素数を定義するには
組み込み関数は
演算子について
算術演算子は +、−、*、/、% です。
比較演算子は >、<、>=、<=、=、!= です。
論理演算子は AND、OR、NOT です。
強さは単項演算子の +、−、NOTが一番強くて、
次に *、/、%、ANDが強く、+、−、OR の
グループが続き、比較演算子が最も弱いです。
論理演算子の強さが通常と異なっているので注意。こまめに括弧を付けて下さい。
ESCHER VER.3.0 で改良した部分の基本的な解説が終わりました。このプログラミング言語は MICRO LOGO と同様ひらがなの命令をサポートしています。正確に言うと MICRO LOGO VER.5.0 を ESCHER に組み込み、必要ないと思われる機能を消し、特別な定数(変換群の種類によって変化しますが)XX と YY を新たに追加し、PUSH 命令と POP 命令を新たに導入し、ESCHER のモチーフを描く機能と整合性を取ったのが ESCHER VER.3.0 です。
ひらがなでは XX と YY の二倍をそれぞれ「たかさ」と「はば」とし、PUSH と POP をそれぞれ「ほぞん」と「ふくげん」としています。その他のこの言語の機能について興味のある方は MICRO LOGO のヘルプを参照して下さい。
ESCHER VER.3.1 でモチーフの基本領域の四つの頂点の座標を左上隅から順に反時計回りで、(X0,Y0), (X1,Y1),(X2,Y2),(X3,Y3) で得ることが出来るようにしました。従って、
SETXY X1 Y1
の様に使うことが出来ます。また、モチーフの基本領域が長方形の場合、縦横の比率を1以上にすることも出来るようにしました。更に、画面の基本領域の個数が指示した数と近い数になるように修正しました。




































