ch_reference

ドリトルの命令一覧

基本オブジェクト

数値

  • 数値を表すオブジェクトです。
  • 代入式の右辺や、括弧で囲まれた部分に数式を中置記法で記述できます。
  • 数式で扱えるデータは、数値と、数値に変換できる値を持つ文字列です。
  • 2進(0b)と16進(0x)で0b1100、0xFFのように定数を記述できます。
  • 角度は1周を360度とする角度で表します。
  • 計算はJavaの倍精度実数(double)で行われます。ただし、一部の関数演算は単精度実数(float)で行われることがあります。
  • 定数として、円周率を表すπPIが用意されています。
  • 数値演算子「+, -, *, /, %」は、内部的にそれぞれ「add, sub, mul, div, mod」という命令に変換されて扱われます。論理演算子「==, !=, >, >=, <, <=」も、内部的にそれぞれ「eq, ne, gt, ge, lt, le」という命令に変換されて扱われます。
  • + , - , *, ×, /, ÷ : 四則演算。
    (例)「3 * 40」を計算し「120」を表示します。
      ラベル!(3 * 40)作る。
  • 足すadd), 引くsub), 掛けるmul), 割るdiv) : 四則演算。命令として使います。
    (例)「3 * 40」を計算し「120」を表示します。
      ラベル!(3! 40 掛ける)作る。
  • %: 余り
    (例)8を3で割った余りを計算し「2」を表示します。
      ラベル!(8 % 3)作る。
  • 余りmod) : 余り。命令として使います。
    (例)8を3で割った余りを計算し「2」を表示します。
      ラベル!(8! 3 余り)作る。
  • == , != , , > , >= , , < , <=, : 比較演算。両辺が数値または数値に変換できる文字列の場合は、数値として比較されます。
    (例)「4 > 3」を計算し「[true]」を表示します。
      ラベル!(4 > 3)作る。
  • sqrt: ルート(√)
    (例)「1 + √4」を計算し「3」を表示します。
      ラベル!(1 + sqrt(4))作る。
  • sin , cos , tan: 三角関数。
    (例)「sin(30)」を計算し「0.5」を表示します。
      ラベル!(sin(30))作る。
  • asin , acos , atan , atan2: 三角関数の逆関数。
    (例)「arcsin(0.5)」を計算し「30」を表示します。
      ラベル!(asin(0.5))作る。
    atan2は、X座標の値にY座標の値をパラメータとして実行します。atanは-90〜90の値を返しますが、atan2は-180〜180の値を返します。
    (例)「(-10, 10)」の座標から正接の逆関数を計算し「135」を表示します。
      ラベル!(-10!10 atan2)作る。
  • round , ceil , floor: 丸め、切り上げ、切り捨て。
    (例)「0.7」を四捨五入し「1」を表示します。
      ラベル!(round(0.7))作る。
  • exp: 指数関数。
    (例)「e^{0.5」}を計算し「1.6487212」を表示します。
      ラベル!(exp(0.5))作る。
  • log: 底が10の対数。
    (例)「log 100」を計算し「2」を表示します。
      ラベル!(log(100))作る。
  • ln: 底がeの対数。
    (例)「ln 100」を計算し「4.6051702」を表示します。
      ラベル!(ln(100))作る。
  • pow: べき乗。「2の3乗」は「pow(2,3)」ではなく、「2!3 pow」と書くことに注意してください。
    (例)「2^3」を計算し「8」を表示します。
      ラベル!(2!3 pow)作る。
  • abs: 絶対値。
    (例)「|-3|」を計算し「3」を表示します。
      ラベル!(abs(-3))作る。
  • 乱数, random : 正の整数を与えると、実行するたびに値が異なる1〜nの整数を返します。
    (例)1から10までの整数をランダムに表示します。
      ラベル!(random(10))作る。
    0か負の数を与えた場合には、実行するたびに値が異なる0〜1の実数を返します。
    (例)0から1までの実数をランダムに表示します。
      ラベル!(random(0))作る。
  • 乱数初期化 : 0以外の整数を与えると、それ以降に生成される乱数が毎回同じ順序で生成されるようになります。0を与えると、そのときどきのランダムな順序に戻ります。
    (例)整数「5」に対応した乱数系列を表示します。
      乱数初期化(5)。
      ラベル!(random(10))作る。}
  • 進数: n進数に変換します。nは2〜16の整数です。
    (例)「10」の2進表現である「1010」を表示します。
      ラベル!(10!2 進数)作る。
  • 大きい整数にする: 多倍長整数オブジェクトを作ります。10桁以上の値を生成する場合は、数値でなく文字列から生成してください。
    (例)値が2の多倍長整数オブジェクトを作り、「2^70」を計算します。
      x=2!大きい整数にする。
      ラベル!(x!70 pow)作る。
  • コード文字: 指定された文字コード(UTF-16)の文字を返します。
    (例)文字列「"A"」を表示します。
      ラベル!(0x41!コード文字)作る。
    (例)文字列「"あ"」を表示します。
      ラベル!(0x3042!コード文字)作る。

多倍長整数

  • 長い桁数の整数を扱うオブジェクトです。
  • 文字列(または数値)に「大きい整数にする」を送り生成します。
  • 数値(内部は倍精度実数)から生成する場合は、初期値が数値の有効数字に制限されます。そのため、10桁以上の場合は数値でなく文字列から生成してください。
    (例)文字列から多倍長整数を生成します。
      x="1000000"!大きい整数にする。
  • 数値演算子「+, -, *, /, %」は、内部的にそれぞれ「add, sub, mul, div, mod」という命令に変換されて扱われます。論理演算子「==, !=, >, >=, <, <=」も、内部的にそれぞれ「eq, ne, gt, ge, lt, le」という命令に変換されて扱われます。
  • + , - , *, ×, /, ÷ : 四則演算
    (例)「3 * 40」を計算し「120」を表示します。
      x=3!大きい整数にする。
      ラベル!(x * 40)作る。
  • 足すadd), 引くsub), 掛けるmul), 割るdiv) : 四則演算。命令として使います。
    (例)「3 * 40」を計算し「120」を表示します。
      x=3!大きい整数にする。
      ラベル!(x! 40 掛ける)作る。
  • %: 余り
    (例)8を3で割った余りを計算し「2」を表示します。
      x=8!大きい整数にする。
      ラベル!(x % 3)作る。
  • 余りmod) : 余り。命令として使います。
    (例)8を3で割った余りを計算し「2」を表示します。
      x=8!大きい整数にする。
      ラベル!(x! 3 余り)作る。
  • == , != , , > , >= , , < , <=, : 比較演算。両辺が多倍長整数または多倍長整数に変換できる文字列の場合は、多倍長整数として比較されます。
    (例)「4 > 3」を計算し「[true]」を表示します。
      x=4!大きい整数にする。
      y=3!大きい整数にする。
      ラベル!(x > y)作る。
  • pow: べき乗。「2の3乗」は「pow(2,3)」ではなく、「2!3 pow」と書くことに注意してください。
    (例)「2^70」を計算します。
      x=2!大きい整数にする。
      ラベル!(x!70 pow)作る。
  • abs: 絶対値
    (例)「|-3|」を計算し「3」を表示します。
      x=3!大きい整数にする。
      ラベル!(abs(x))作る。
  • コード文字: 指定された文字コード(UTF-16)の文字を返します。
    (例)文字列「"A"」を表示します。
      x=0x41!大きい整数にする。
      ラベル!(x)作る。
    (例)文字列「"あ"」を表示します。
      x=0x3042!大きい整数にする。
      ラベル!(x)作る。

文字列

  • 文字の並びを扱うオブジェクトです。
  • 数値を表す文字列(例:"123.45")は数値として扱うことができます。
  • 任意の文字は数値の「コード文字」命令を使って文字コードから文字を生成できるほか、文字列を囲む「"」などの引用符を表す文字の定数が用意されています。
    • " : dq, ダブルクオート, ダブルクォーテーション
    • “ : ldq, 左ダブルクオート, 左ダブルクォーテーション
    • ” : rdq, 右ダブルクオート, 右ダブルクォーテーション
    • 『 : ldb, 左二重かぎ括弧
    • 』 : rdb, 右二重かぎ括弧
  • 「含む?」「分割」「置き換える」「全部置き換える」では、正規表現で文字列のパターンを指定できます。使用できる主な表現を示します。*1
    • . : 任意の1文字。
    • ? : 直前の文字の0回か1回の繰り返し。
    • * : 直前の文字の0回以上の繰り返し。
    • + : 直前の文字の1回以上の繰り返し。
    • \^ : 先頭。
    • $ : 末尾。
    • | : 左右のパタンのいずれか(OR)。
    • ( ) : 範囲指定。
    • [ ] : 列挙された文字のいずれか。「-」は文字範囲。先頭の「^」は続く文字を含まないという指定。
  • == , != , , > , >= , , < , <=, : 比較演算。両辺が数値または数値に変換できる文字列の場合は、数値として比較されます。それ以外は文字列として比較されます。
    (例)「"b" > "a"」を計算し「[true]」を表示します。
      ラベル!("b" > "a")作る。
  • 実行: 文字列をドリトルのプログラムとみなして実行します。
    (例)文字列「"カメ太=タートル!作る 100歩 歩く。"」をプログラムとして実行します。
      "カメ太=タートル!作る 100歩 歩く。" ! 実行。
  • + : 文字列を連結します。
    (例)2つの文字列「"私は"」と「"カメ太です"」を連結し「"私はカメ太です"」を表示します。
      ラベル!("私は" + "カメ太です")作る。
  • 連結: 文字列を連結します。複数の文字列を連結できます。
    (例)3つの文字列「"私は"」と「"カメ太"」と「"です"」を連結し「"私はカメ太です"」を表示します。
      ラベル!("私は"!"カメ太" "です" 連結)作る。
  • 部分: 文字列を切り出します。「m n 部分」でm文字目からn文字を取り出します。
    (例)文字列「"私はカメ太です"」の3文字目から5文字を切り出し「"カメ太です"」を表示します。
      ラベル!("私はカメ太です"!3 5 部分)作る。
  • 長さ? : 文字数を返します。
    (例)文字列「"はろー"」の長さを計算し「3」を表示します。
      ラベル!("はろー"!長さ?)作る。
  • 何文字目?: 文字列が何文字目に含まれるかを調べます。含まれない場合は0を返します。
    (例)文字列「"カメ太"」が「"私はカメ太です"」の何文字目に含まれているかを調べ「3」を表示します。
      ラベル!("私はカメ太です"!"カメ太" 何文字目?)作る。
  • 含む? : 文字列を含むかを判定します。真偽値が返ります。文字列には正規表現を使えます。
    (例)フィールドに文字列を入力して を押すと、文字列に「山」という文字が含まれる場合はフィールドに「はい」が表示されます。
      f=フィールド!作る。
      f:動作=「|s| 「s!"山" 含む?」!なら「f!"はい" 書く」実行」。}
  • 分割: 区切り文字列を指定すると、分割した文字列が入った配列を返します。区切り文字列には正規表現を使えます。
    (例)文字列「"I/am/kameta"」を区切り文字「"/"」で分割し、「"I"」、「"am"」、「"kameta"」を要素とする配列「結果」を作り表示します。
      結果="I/am/kameta"!"/" 分割。
      ラベル!(結果)作る。}
  • 置き換える : 文字列の一部を置き換えた文字列を返します。元の文字列は変更されません。置き換えは1回だけ行われます。置き換える文字列の指定には正規表現を使えます。
    (例)「はい」を「いいえ」に置き換えて表示します。「はい、はい」が「いいえ、はい」と表示されます。
      s="はい、はい"。
      ラベル!(s!"はい" "いいえ" 置き換える)作る。}
  • 全部置き換える : 文字列の一部を置き換えた文字列を返します。元の文字列は変更されません。置き換えは複数回行われます。置き換える文字列の指定には正規表現を使えます。
    (例)「はい」を「いいえ」に置き換えて表示します。「はい、はい」が「いいえ、いいえ」と表示されます。
      s="はい、はい"。
      ラベル!(s!"はい" "いいえ" 全部置き換える)作る。}
  • 大きい整数にする: 多倍長整数オブジェクトを作ります。10桁以上の値を生成する場合は、数値でなく文字列から生成してください。
    (例)値が2の多倍長整数オブジェクトを作り、「2^70」を計算します。
      x="2"!大きい整数にする。
      ラベル!(x!70 pow)作る。
  • 文字コード: 文字列の先頭文字の文字コード(UTF-16)を返します。
    (例)文字列「"あ"」の文字コードを16進数で表示します。「3042」が表示されます。
      ラベル!("あ"!文字コード 16 進数)作る。

真偽値

  • あらかじめ「はい)」「いいえ)」という2個のオブジェクトが用意されています。
  • 論理積AND)や論理和OR)を求めるときは、それぞれ「ぜんぶ」「どれか」オブジェクトに、真偽値をパラーメータとして「本当」を送ります。パラメータがブロックの場合には、その値が必要になるまでブロックは実行されません*2
  • 論理否定NOT)は、真偽値に「反対」を送ります。
  • 本当: 「ぜんぶ」「どれか」と組み合わせて、論理積(AND)と論理和(OR)を求める。パラメータに複数の真偽値を指定できます。
    「ぜんぶ」の場合はパラメータのすべてが真のときに真を返します。
    (例)変数「x」、「y」は両方とも真(はい)なので、「"全部本当"」が表示されます。
      x=はい。y=はい。
      「ぜんぶ!(x)(y)本当」!なら「ラベル!"全部本当" 作る」実行。}
    「どれか」の場合はパラメータのすべてが偽のときに偽を返します。
    (例)変数「x」、「y」のどちらかは真(はい)なので、「"どれか本当"」が表示されます。
      x=はい。y=いいえ。
      「どれか!(x)(y)本当」!なら「ラベル!"どれか本当" 作る」実行。}
  • 反対: 真偽値と反対の値を返します。真偽値が「はい」なら「いいえ」が返り、真偽値が「いいえ」なら「はい」が返ります。
    (例)「x」の反対は真(はい)なので、「"いいえ"」を表示します。
      x=いいえ。
      「x!反対」!なら「ラベル!"いいえ" 作る」実行。}

ブロック

  • 内部にプログラムコードを持つオブジェクトです。
  • メソッド定義に用いられるほか、タイマーや繰り返しなどで利用します。
  • 先頭の「|...|」でパラメータを受け取れます。「;」から後はローカル変数です。
  • 実行された場合は、最後に実行された値が返ります。
  • 繰り返す : ブロックの中をn回繰り返して実行します。
    (例)ブロック「出力!"こんにちは" 書く」を3回繰り返して実行し、「こんにちは」が3回表示されます。
      出力=リスト!作る。
      「出力!"こんにちは" 書く」!3回 繰り返す。}
    何回目の実行かはパラメータとして渡されます。
    (例)実行回数をパラメータ「n」で受け取り、実行するたびに表示します。
      出力=リスト!作る。
      「|n| 出力!(n)書く」!5回 繰り返す。}
  • なら, そうでなければ: 条件判断を行います。条件が成り立つときは「なら」の後のブロックを、成り立たないときは「そうでなければ」の後のブロックを実行します。「そうでなければ」は省略可能です。
    (例)乱数の値が5より大きい場合に「大吉」を表示します。
      「乱数(10)> 5」!なら「ラベル!"大吉" 作る」実行。
    (例)乱数の値が5より大きい場合に「大吉」を、そうでない場合は「小吉」を表示します。
      「乱数(10)> 5」!なら「ラベル!"大吉" 作る」そうでなければ「ラベル!"小吉" 作る」実行。
  • の間 : 条件が成り立つ間、後のブロックを繰り返し実行します。
    (例)変数「x」が10以下の間、「s=s+x。x=x+1」を繰り返し実行します。
      x=1。s=0。
      「x <= 10」!の間「s=s+x。x=x+1」実行。
      ラベル!(s)作る。}
  • 実行 : ブロックに入っているプログラムを実行します。
    (例)ブロック「ラベル!"こんにちは" 作る」を実行します。
      「ラベル!"こんにちは" 作る」!実行。

タイマー

  • 一定時間ごとに、与えられたブロックを繰り返して実行します。
  • 標準では、「0.1秒」間隔で「100回」繰り返します(約10秒間です)。間隔は間隔で変更できます。
  • 回数を回数で指定した場合には、指定された回数を実行すると終了します。実行のパラメータで回数を指定することもできます。
  • 「回数」の代りに時間を指定した場合は、指定された時間で実行を終了します。
  • 間隔の最小時間は1ミリ秒(0.001秒)です。
  • 実行される間隔は、あまり正確ではありません。たとえば0.1秒間隔で10回繰り返して実行した場合、正確に1秒間にはなりません。大まかな目安として使ってください。また、指定した間隔より長い時間がかかる命令を実行した場合には、「回数」を指定した実行には時間がかかってもその回数を実行し、「時間」を指定した場合にはその時間が経過した時点で繰り返しを終了します。
  • タイマーはプログラムの流れと並行して(スレッドとして非同期に)実行され、プログラムはタイマーの終了を待たずに先に進みます。タイマーの終了を待つには「待つ」を使います。
  • 実行されるブロックには、何回目の実行かを表す数がパラメータとして渡されます。
  • タイマーの実行中に、そのタイマーに実行を行うと、現在の実行が終った後に続けて実行されます。
  • 実行は中断で止めることができます。タイマーは次の実行に移ります。
  • 停止でそのタイマーの実行を完全に止めることができます。
  • 作る : 新しいタイマーを作ります。
    (例)タイマーを作り「時計」という名前にします。
      時計=タイマー!作る。
  • 間隔 : n秒間隔で動くようにします。
    (例)繰り返す間隔を「1秒」に設定します。
      時計=タイマー!作る。
      時計!1秒 間隔。}
  • 回数 : n回動くようにします。
    (例)繰り返す回数を「10回」に設定します。
      時計=タイマー!作る。
      時計!10回 回数。}
  • 時間 : n秒間だけ動くようにします。
    (例)繰り返す時間を「5秒」に設定します。
      時計=タイマー!作る。
      時計!5秒 時間。}
  • 実行 : ブロックを実行します。
    (例)タイマーを作り、「カメ太!3歩 歩く」を繰り返し実行します。
      カメ太=タートル!作る。
      時計=タイマー!作る。
      時計!「カメ太!3歩 歩く」実行。}
    回数を指定すると、その回数だけ実行します。
    (例)5回繰り返して実行します。
      カメ太=タートル!作る。
      時計=タイマー!作る。
      時計!「カメ太!3歩 歩く」5回 実行。}
    何回目の実行かはパラメータとして渡されます。
    (例)何回目の繰り返しかを表示しながら実行します。
      カメ太=タートル!作る。
      カウント=ラベル!作る。
      時計=タイマー!作る。
      時計!「|n|カウント!(n)書く。カメ太!3歩 歩く」実行。}
  • 待つ : タイマーが終るのを待ちます。
    (例)タイマーの実行が終るのを待ってから「終了!」を表示します。「時計!待つ。」がない場合には、タイマーの実行中に表示されてしまいます。
      カメ太=タートル!作る。
      出力=ラベル!作る。
      時計=タイマー!作る。
      時計!「|n|出力!(n)書く。カメ太!3歩 歩く」実行。
      時計!待つ。
      出力!"終了!" 書く。}
  • 中断 : 実行中のタイマーの実行を中断します。
    タイマーに待ち行列がある場合は、次の実行に進みます。
    (例)中断ボタンを押すとタイマーの実行を中断します。
      カメ太=タートル!作る。
      中断ボタン=ボタン!"中断" 作る。
      中断ボタン:動作=「時計!中断」。
      出力=ラベル!作る。
      時計=タイマー!作る。
      時計!「|n|出力!(n)書く。カメ太!3歩 歩く」実行。
      時計!「|n|出力!(n)書く。カメ太!-3歩 歩く」実行。}
  • 停止 : 実行中のタイマーの実行を停止します。
    タイマーに待ち行列がある場合は、すべての実行を停止します。
    (例)停止ボタンを押すとタイマーの実行を停止します。
      カメ太=タートル!作る。
      停止ボタン=ボタン!"停止" 作る。
      停止ボタン:動作=「時計!停止」。
      出力=ラベル!作る。
      時計=タイマー!作る。
      時計!「|n|出力!(n)書く。カメ太!3歩 歩く」実行。
      時計!「|n|出力!(n)書く。カメ太!-3歩 歩く」実行。}

配列

  • 中に複数のデータを入れられるオブジェクトです。
  • ひとつの配列の中に異なる種類のオブジェクトを入れることができます。
  • 長さをあらかじめ決める必要はありません。
  • 要素の番号は1から始まります。最初の要素は1番目です。
  • 作る : 新しい配列を作ります。パラメータで初期値を指定することもできます。
    (例)配列を作ります。要素はありません。
      配列1=配列!作る。
      ラベル!(配列1)作る。}
    (例)文字列「"a"」、「"b"」が要素の配列を作ります。
      配列1=配列!"a" "b" 作る。
      ラベル!(配列1)作る。}
  • 書く : 配列にオブジェクトを追加します。配列の最後に追加されます。
    (例)文字列「"a"」、「"b"」が要素の配列を作り、文字列「"c"」を追加します。
      配列1=配列!"a" "b" 作る。
      配列1!"c" 書く。
      ラベル!(配列1)作る。}
  • 挿入 : 配列にオブジェクトを入れます。
    「n obj 挿入」で、n番目の位置にobjが挿入されます。元のn番目以降の要素は後ろにずれます。
    (例)文字列「"a"」、「"b"」が要素の配列を作り、2番目の位置に文字列「"c"」を追加します。「[ a c b ]」が表示されます。
      配列1=配列!"a" "b" 作る。
      配列1!2 "c" 挿入。
      ラベル!(配列1)作る。}
  • 上書き : 配列のオブジェクトを上書きします。「n obj 上書き」で、n番目の要素がobjで上書きされます。nが配列の要素数より大きいときは、配列の大きさが拡張されて値が書かれます。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、2番目の要素を文字列「"d"」で上書きします。「[ a d c ]」が表示されます。
      配列1=配列!"a" "b" "c" 作る。
      配列1!2 "d" 上書き。
      ラベル!(配列1)作る。}
  • 読む : 配列の要素を返します。要素を1からはじまる整数で指定します。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、2番目の要素を表示します。「b」が表示されます。
      配列1=配列!"a" "b" "c" 作る。
      ラベル!(配列1!2 読む)作る。}
  • ランダムに選ぶ : 配列の要素をランダムに返します。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、要素をランダムに表示します。
      配列1=配列!"a" "b" "c" 作る。
      ラベル!(配列1!ランダムに選ぶ)作る。}
  • 要素数? : 配列の要素数を返します。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、要素数を表示します。「3」が表示されます。
      配列1=配列!"a" "b" "c" 作る。
      ラベル!(配列1!要素数?)作る。}
  • 消す : 配列の要素を消します。指定されたオブジェクトを配列からすべて削除します。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、値が「"b"」の要素を削除します。「[ a c ]」が表示されます。
      配列1=配列!"a" "b" "c" 作る。
      配列1!"b" 消す。
      ラベル!(配列1)作る。}
  • 位置で消す : 配列の要素を消します。要素の位置を指定して削除します。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、1番目の要素を削除します。「[ b c ]」が表示されます。
      配列1=配列!"a" "b" "c" 作る。
      配列1!1 位置で消す。
      ラベル!(配列1)作る。}
  • クリア : 配列の要素をすべて消します。
    (例)文字列「"a"」、「"b"」、「"c"」が要素の配列を作り、すべての要素を削除します。「[ ]」が表示されます。
      配列1=配列!"a" "b" "c" 作る。
      配列1!クリア。
      ラベル!(配列1)作る。}
  • それぞれ実行 : 配列の要素の数だけブロックを繰り返して実行します。パラメータには配列の要素が1個ずつ渡されます。
    (例)文字列「"abc"」、「"d"」、「"wxyz"」が要素の配列を作り、それぞれの要素をパラメータとしてブロック「|x| 出力!(x!長さ?)書く」を3回繰り返し実行します。「3」、「1」、「4」が表示されます。
      出力=リスト!作る。
      配列1=配列!"abc" "d" "wxyz" 作る。
      配列1!「|x| 出力!(x!長さ?)書く」それぞれ実行。}
  • 連結: パラメータで指定された要素を追加した配列を返します。パラメータに配列を指定した場合はその要素が追加されます。
    (例)文字列「"大阪"」が要素の配列1と「"東京"」、「"北海道"」が要素の配列2を連結します。「[ 大阪 東京 北海道 ]」が表示されます。
      配列1=配列!"大阪" 作る。
      配列2=配列!"東京" "北海道" 作る。
      配列3=配列!(配列1)(配列2) 連結。
      ラベル!(配列3)作る。}
  • 選ぶ: 配列の各要素に対してブロックを実行し、結果が「真(はい)」の要素からなる配列を返します。
    (例)文字列「"東京"」、「"北海道"」、「"三重"」、「"鹿児島"」が要素の配列を作り、それぞれの要素をパラメータとしてブロック「|x|(x!長さ?)== 2」の値が真になる要素の配列を表示します。「[ 東京 三重 ]」が表示されます。
      配列1=配列!"東京" "北海道" "三重" "鹿児島" 作る。
      ラベル!(配列1!「|x|(x!長さ?)== 2」選ぶ)作る。}
  • 加工: 配列の要素に対してブロックを実行し、それらの結果を要素とする配列を返します。
    (例)1, 3, 5が要素の配列1を作り、それぞれの要素の値を2倍するプログラムが定義されたブロック「|n|n * 2」を実行します。「[ 2 6 10 ]」が表示されます。
      配列1=配列!1 3 5 作る。
      配列2=配列1!「|n| n * 2」加工。
      ラベル!(配列2)作る。}
  • 最大: 最大の値を持つ要素を返します。値は数値以外の場合は文字列として比較します。
    (例)1, 5, 3が要素の配列1を作り、最大の要素を表示します。「5」が表示されます。
      配列1=配列!1 5 3 作る。
      ラベル!(配列1!最大)作る。}
  • 最小: 最小の値を持つ要素を返します。値は数値以外の場合は文字列として比較します。
    (例)1, 5, 3が要素の配列1を作り、最小の要素を表示します。「1」が表示されます。
      配列1=配列!1 5 3 作る。
      ラベル!(配列1!最小)作る。}
  • 結合: 配列の各要素を結合してひとつの文字列を返します。パラメータで要素の区切り文字を指定できます。
    (例)文字列「"こんにちは、"」、「"カメ太"」、「"です!"」が要素の配列を作り、それらを結合した文字列を返します。「"こんにちは、カメ太です!"」が表示されます。
      配列1=配列!"こんにちは、" "カメ太" "です!" 作る。
      ラベル!(配列1!結合)作る。}

ルート

  • ドリトルのすべてのオブジェクトの親となるオブジェクトです。
  • ルートオブジェクトのプロパティは、プログラム全体から参照される変数です。
  • ルートオブジェクトのプロパティに値を書くと、他のオブジェクトからその値を参照できます。
  • ルートオブジェクトのプロパティは、オブジェクトを明示した「ルート:」、またはオブジェクトを省略した「:」で指定します。
    (例)ルートオブジェクトに「歩幅」というプロパティを設定します。
      ルート:歩幅=30。
    (例)ルートオブジェクトに「歩幅」というプロパティを設定します。
      :歩幅=30。

未定義

  • 予期しない実行が行われた場合にシステムから返されるオブジェクトです。
  • 存在しない変数を参照したときは、未定義オブジェクトが返ります。
  • 命令が正しくない結果になった場合にも、未定義オブジェクトが返されることがあります。
  • 値が未定義オブジェクトかどうかは、未定義 またはundef と比較することで判別できます。

オブジェクトファイル

  • オブジェクトをファイルに保存しておくためのオブジェクトです。
  • 保存したオブジェクトは、再び読み込んで使うことができます。
  • 数値、文字列、配列のオブジェクトに対応しています。
  • オンライン版では利用できません。
  • [作る:] オブジェクトファイルを作ります。パラメータとしてファイル名を指定します。
    (例)「file1.txt」というファイルを使う、「記録」というオブジェクトファイルを作ります。
      記録=オブジェクトファイル!"file1.txt" 作る。
  • [書く :] 名前を付けてオブジェクトを書き込みます。この名前はファイルから読み出すときのキーワードになります。オブジェクトの名前と違っても構いません。
    (例)オブジェクトファイルに「point」という名前で「30」という値を保存します。
      記録=オブジェクトファイル!"file1.txt" 作る。
      点数=30。
      記録!"point"(点数)書く。}
  • [読む :] 名前を指定してオブジェクトを読み出します。保存してあったオブジェクトが返されます。
    (例)オブジェクトファイルから「point」という名前の値を取り出して表示します。
      記録=オブジェクトファイル!"file1.txt" 作る。
      得点=記録!"point" 読む。
      ラベル!(得点)作る。}
  • [消す :] 名前を指定してオブジェクトを消します。
    (例)オブジェクトファイルから「point」という名前の値を消します。
      記録=オブジェクトファイル!"file1.txt" 作る。
      記録!"point" 消す。}

テキストファイル

  • ファイルに文字列を読み書きするためのオブジェクトです。
  • ファイルに書くときは、1行ずつ文字列を追加できます。配列を書き込む場合は、ファイルの内容が配列の内容で置き換わります。
  • ファイルから読むときは、全体を配列に読み込みます。文字コードはOSごとに異なります。
  • オンライン版では利用できません。
  • [作る:] テキストファイルを作ります。パラメータとしてファイル名を指定します。
    (例)「text1.txt」というファイルを使う、「記録」というテキストファイルを作ります。
      記録=テキストファイル!"text1.txt" 作る。
  • [書く :] 文字列を書き込みます。ファイルの末尾に文字列を1行追加します。
    (例)テキストファイルに「"こんにちは。"」を追加します。
      記録=テキストファイル!"text1.txt" 作る。
      記録!"こんにちは。" 書く。
      ラベル!(記録!読む)作る。}
  • [全部書く :] 配列を書き込みます。ファイル全体を配列の中身で置き換えます。
    (例)文字列「"カメ太"」、「"カメ吉"」、「"カメ子"」が要素の配列を作り、テキストファイルをそれらで置き換えます。
      記録=テキストファイル!"text1.txt" 作る。
      全員=配列!"カメ太" "カメ吉" "カメ子" 作る。
      記録!(全員)全部書く。
      ラベル!(記録!読む)作る。}
  • [読む :] 配列に読み出します。ファイル全体を読み、各行が要素になった配列が返されます。
    (例)テキストファイルの全体を読み込んで表示します。
      記録=テキストファイル!"text1.txt" 作る。
      ラベル!(記録!読む)作る。}

システム

  • ドリトルや動かしているコンピュータの情報を利用するためのオブジェクトです。
  • システムの情報を得るためのプロパティが用意されています。
    (例)ドリトルのバージョンを表示します。
      ラベル!(システム:versionstr)作る。
プロパティプロパティ
versionstrバージョン文字列hostnameホスト名
versionバージョン番号displayWidthディスプレイの幅(※2)
javavendorJavaのベンダーdisplayHeightディスプレイの高さ(※2)
javaversionJavaのバージョンmemoryメモリ使用量
osnameOS名userユーザー名(※3)
osversionOSバージョンlang言語(※3)
ipaddressIPアドレス(※1)
  • (※1)ipaddressは、コンピュータが複数のIPアドレスを持つ場合は任意の1個を返します。IPアドレスは、サーバーウィンドウにも表示されます。
    (※2)displayWidthとdisplayHeightはディスプレイのサイズを返します。ウィンドウのサイズはobj_screen画面オブジェクトで取得してください。
    (※3)userとlangはローカル版で利用可能です。
  • 表示ダイアログ : ダイアログを表示します。
    (例)「こんにちは」と表示します。
      システム!"こんにちは" 表示ダイアログ。
  • 確認ダイアログ : 確認するダイアログを表示します。
    (例)質問を表示し、「はい/いいえ」の回答に合わせて文を表示します。
      回答=システム!"今日は晴れですか?" 確認ダイアログ。
      「回答」!なら「文="天気です"」そうでなければ「文="くもりです"」実行。
      システム!(文) 表示ダイアログ。
  • 入力ダイアログ : 入力ダイアログを表示します。
    (例)入力ダイアログを表示し、入力された文を表示します。
      入力=システム!"今日の天気は?" 入力ダイアログ。
      システム!(入力) 表示ダイアログ。
  • 選択ダイアログ : 選択ダイアログを表示します。
    (例)今日の天気を選択し、回答を表示します。
      候補=配列!"晴れ" "曇り" "雨" "雪" 作る。
      回答=システム!"今日の天気は?" (候補) 選択ダイアログ。
      システム!(回答) 表示ダイアログ。
  • 使う : 初期化ファイルを実行します。プログラムごとの初期化ファイルを指定するときに使います。指定した名前に ".ini" の拡張子を付けたファイルが読み込まれ、実行されます。ただし、startup.iniという名前のファイルが存在する場合は、この命令に関わらず、自動的に読み込まれて実行されます。
    (例)abc.iniという初期化ファイルを実行します。
      システム!"abc" 使う。
  • 実行 : 外部コマンドを実行します。ローカル版で利用可能です。戻り値は外部コマンドの標準出力の文字列です。複数行の場合は改行記号で連結されます。戻り値のプロパティ「stderr」は外部コマンドのエラー出力です。戻り値のプロパティ「retcode」は外部コマンドのリターンコードです。
    (例)OSの「date」コマンドの結果を表示します。
      結果=システム!"date" 実行。
      ラベル!(結果)作る。
      ラベル!(結果:stderr)作る。
      ラベル!(結果:retcode)作る。
  • proxy : HTTP通信を行う際のProxyを設定します。ポートを省略した場合は8080が使われます。
    (例)Proxyを"proxy.eplang.jp"に設定します
      システム!"proxy.eplang.jp" proxy。
    (例)Proxyを"proxy.eplang.jp"の8080に設定します。
      システム!"proxy.eplang.jp" 8080 proxy。
  • サーバーポート : サーバーオブジェクトと通信するポート番号を指定します。標準では2020が使われます。通常の利用では、ポート番号を変更する必要はありません。
    (例)通信ポートを2000に変更します。
      システム!2000 サーバーポート。
  • 終了する : ドリトルを終了します。パラメータに真(はい)を指定すると、確認せずにドリトルを終了します。
    (例)ドリトルを終了します。
      システム!終了する。
    (例)ドリトルを終了します。確認のダイアログは表示されません。
      システム!(はい) 終了する。
  • 日時? : 日時を「Thu Feb 05 18:35:05 JST 2009」の形式で返します。
    (例)日時を表示します。
      ラベル!(システム!日時?)作る。
  • 曜日? : 曜日を「木」の形式で返します。
    (例)曜日を表示します。
      ラベル!(システム!曜日?)作る。
  • 年? : 年を西暦で返します。
    (例)年を表示します。
      ラベル!(システム!年?)作る。
  • 月? : 月を数字で返します。
    (例)月を表示します。
      ラベル!(システム!月?)作る。
  • 日? : 日を数字で返します。
    (例)日を表示します。
      ラベル!(システム!日?)作る。
  • 時刻? : 時刻を「18:35:05」の形式で返します。
    (例)時刻を表示します。
      ラベル!(システム!時刻?)作る。
  • 時? : 時間を数字で返します。
    (例)時間を表示します。
      ラベル!(システム!時?)作る。
  • 分? : 分を数字で返します。
    (例)分を表示します。
      ラベル!(システム!分?)作る。
  • 秒? : 秒を数字で返します。
    (例)秒を表示します。
      ラベル!(システム!秒?)作る。
  • システム秒? : システム秒を返します。2つの値の差分を取ることでミリ秒単位の経過時間を計算できます。
    (例)掛け算を10万回計算する時間を表示します。
      start=システム!システム秒?。
      「s=2*3」!100000 繰り返す。
      end=システム!システム秒?。
      ラベル!(end - start)作る。

シリアルポート

  • 接続された機器とシリアルポートで通信するためのオブジェクトです。
  • 「作る」に以下のパラメータを指定できます。括弧内は省略したときの値です。
    • バッファサイズ: 整数 (1024)
    • 通信速度: 整数 (9600)
    • データ長: 5/6/7/8 (8)
    • ストップビット: 1/2/1.5 (1)
    • パリティビット: none/odd/even/mark/space (none)
    • フロー制御: none/rtscts/xonxoff (none)
  • 作る: 新しいシリアルポートを作ります。
    (例)シリアルポートを作ります。
      入出力=シリアルポート!作る。
    (例)シリアルポートを作りバッファサイズと通信速度を設定します。
      入出力=シリアルポート!1024 115200 作る。
    (例)シリアルポートを作りバッファサイズ、通信速度、データ長、ストップビット、パリティビット、フロー制御を設定します。
      入出力=シリアルポート!1024 115200 8 1 "none" "rtscts" 作る。
  • 開く: ポートを開きます。
    (例)「COM1」のポートを開きます。
      入出力!"COM1" 作る。
  • 閉じる: ポートを閉じます。
    (例)ポートを閉じます。
      入出力!閉じる。
  • 出力 : ポートにデータを出力します。
    (例)ポートに文字列を出力します。
      入出力!"AT" 出力。
  • 存在? : ポートから入力できるデータが存在する場合に真を返します。
    (例)ポートにデータが存在する場合にデータを1バイト読みます。
      「入出力!存在?」!なら「受信データ=入出力!1 値?」実行。
  • データ数? : ポートから入力できるデータのバイト数を返します。
    (例)ポートから入力できるデータ数を調べます。
      データ長=入出力!データ数?。
  • 値? : ポートからnバイトのデータを入力します。
    (例)ポートから3バイトのデータを読みます。
      受信データ=入出力!3 値?。
  • 待つ: 指定された秒数だけプログラムの実行を停止します。
    (例)2秒間停止します。
      入出力!2 待つ。
  • portlist: 存在するポート名を配列で返します。
    (例)シリアルポート名の一覧を「ポート配列」という配列に格納します。
      ポート配列=シリアルポート!portlist。

ネットワークオブジェクト

サーバー

  • ドリトルから起動したサーバーとオブジェクトをやり取りするためのオブジェクトです。
  • サーバーとドリトルの間は、特定のポート(標準では2020)を使って通信します。
    そのため、一般的には教室内など同一セグメント内で利用します。
  • 扱えるオブジェクトは、数値、文字列、論理値、配列などの基本オブジェクトです。タートルやボタンなど他のオブジェクトも扱えますが、機能が制限されることがあります。
  • オブジェクトを書くときは、ルートを除くすべての親オブジェクトのプロパティがオブジェクトのプロパティに複製されてから書き込まれます。
  • 接続 : サーバーに接続する。サーバーが起動しているコンピュータを、ホスト名かIPアドレスで指定します。
    (例)サーバーにホスト名で接続します。「"localhost"」は自分のコンピュータになります。
      サーバー!"localhost" 接続。
    (例)サーバーにIPアドレスで接続します。
      サーバー!"192.168.1.10" 接続。
  • 書く : 指定した名前で、サーバーにオブジェクトを書き込みます。
    (例)サーバーに「kameta」という名前で「カメ太」というオブジェクトを書きます。
      サーバー!"localhost" 接続。
      カメ太=タートル!作る。
      サーバー!"kameta"(カメ太)書く。}
  • 読む : 指定した名前で、サーバーからオブジェクトを読み出します。読み出したオブジェクトが返ります。
    (例)サーバーから「kameta」という名前のオブジェクトを読みます。
      サーバー!"localhost" 接続。
      カメ吉=サーバー!"kameta" 読む。}

グラフィック関係のオブジェクト

次の図は画面の座標です。画面の中心が原点で、画面の位置はX軸とY軸で表されます。座標の値は画面のピクセルと対応しています。起動したときの大きさは、横700×縦500 程度です。向きは右方向が0度で、左回りに指定します。

\put(0,0){\framebox(120,80){}}
\linethickness{1pt}
\put(0,40){\vector(1,0){120}}
\put(60,0){\vector(0,1){80}}
\put(40,30){(0,0)}
\put(100,45){X軸}
\put(65,70){Y軸}
\end{picture}

タートル

  • 画面を歩き回るキャラクタです。動くと軌跡の線が残るので、それを利用して図形を描くことができます(タートルグラフィックス)。
  • 描いた線は「図形を作る」でタートルから切り離して図形オブジェクトにできます。
  • 衝突」というメソッドを定義しておくと、他のオブジェクトと重なったときに実行されます。衝突の判定に使われるのは、タートルの本体です。描いた線を判定に使いたい場合は、図形オブジェクトにしてください。
  • 衝突メソッドの1個目のパラメータには、重なった相手のオブジェクトが渡されます。2個目のパラメータには、自分が動いて重なったかどうかが真偽値で渡されます。
  • 「衝突」に「タートル:跳ね返る」を代入することで、自然な跳ね返りを定義できます。衝突する相手が図形オブジェクトの場合、図形オブジェクトを描き始めたときの方向が衝突する際の壁の角度として扱われます。
    (例)壁とぶつかった向きとは関係なく、常に斜め後ろを向きます。
      カメ太:衝突=「自分!150 右回り」。
    (例)壁とぶつかった向きに応じて、自然な角度で跳ね返ります。
      カメ太:衝突=タートル:跳ね返る。
  • 動作」というメソッドを定義すると、マウスでクリックし
     たときに実行されます。
  • 作る: 新しいタートルを作ります。
    (例)タートルを作り「カメ太」という名前にします。
      カメ太=タートル!作る。
  • 歩く: 前に進みます。
    (例)カメ太は100歩、歩きます。
      カメ太=タートル!作る。
      カメ太!100歩 歩く。}
  • 戻る : 後ろに戻ります。
    (例)カメ太は100歩、戻ります。
      カメ太=タートル!作る。
      カメ太!100歩 戻る。}
  • 右回り : 右に回ります。
    (例)カメ太は90度、右に回ります。
      カメ太=タートル!作る。
      カメ太!90度 右回り。}
  • 左回り : 左に回ります。
    (例)カメ太は90度、左に回ります。
      カメ太=タートル!作る。
      カメ太!90度 左回り。}
  • 移動する : 右にx歩、上にy歩動きます。
    (例)カメ太は「右に0歩、上に100歩」動きます。
      カメ太=タートル!作る。
      カメ太!0 100 移動する。}
  • 位置 : 指定された座標に移動します。画面の中央が中心(0,0)です。
    (例)カメ太は「(100, 100)」の座標の位置に動きます。
      カメ太=タートル!作る。
      カメ太!100 100 位置。}
  • 向き : 向きを指定します。右向きが0度です。角度は左回りに大きくなります。
    (例)カメ太は90度(上方向)を向きます。
      カメ太=タートル!作る。
      カメ太!90度 向き。}
  • ペンなし : 動くときに軌跡が残らないようにします。
    (例)カメ太は線を描かずに歩きます。
      カメ太=タートル!作る。
      カメ太!ペンなし。
      カメ太!100歩 歩く。}
  • ペンあり : 動くときに軌跡が残るようにします。*3
     (例)カメ太は線を描かずに歩いた後、線を描きながら歩きます。
       カメ太=タートル!作る。
         カメ太!ペンなし。
         カメ太!100歩 歩く。
         カメ太!ペンあり。
         カメ太!100歩 歩く。}
  • 中心に戻る : 画面の真ん中に戻ります。
    (例)カメ太は画面の中心(「(0, 0)」の座標の位置)に動きます。
      カメ太=タートル!作る。
      カメ太!100歩 歩く。
      カメ太!中心に戻る。}
  • 閉じる : 描き始めの点まで線を引きます。
    (例)カメ太は三角形の2つの辺を描いた後、描き始めた点まで線を引いて戻ります。
      カメ太=タートル!作る。
      カメ太!100 歩く 120 右回り 100 歩く 閉じる。}
  • 図形を作る : 軌跡の線を自分から切り離して図形オブジェクトにします。
    (例)カメ太が描いた線を図形オブジェクトにして「三角」という名前にします。
      カメ太=タートル!作る。
      カメ太!100 歩く 120 右回り 100 歩く。
      三角=カメ太!図形を作る。}
    色を指定するとその色で塗られます。
    (例)カメ太が描いた線を黄色の色を塗った図形オブジェクトにして「三角」という名前にします。
      カメ太=タートル!作る。
      カメ太!100 歩く 120 右回り 100 歩く。
      三角=カメ太!(黄)図形を作る。}
  • 変身する : タートルの姿を変えます。あらかじめ利用できる画像は、ドリトルのダウンロードページで確認してください。独自の画像を利用する場合は、画像ファイル(png, jpg, gifのいずれか)をドリトル本体(dolittle.jar)と同じディレクトリに置いてください。
    (例)カメ太の姿を「tulip.png」という画像に変更します。
      カメ太=タートル!作る。
      カメ太!"tulip.png" 変身する。}
    画像をURLで指定します。
    (例)カメ太の姿を「http://dolittle.eplang.jp/image/pukiwiki.png」の画像に変更します。
      カメ太=タートル!作る。
      カメ太!"http://dolittle.eplang.jp/image/pukiwiki.png" 変身する。}
    画像をTwitterのアイコンで指定します。*4
    (例)カメ太の姿を「@watayan」というユーザーの画像に変更します。
      カメ太=タートル!作る。
      カメ太!"@watayan" 変身する。}
  • 拡大する : タートルを拡大します。
    「n 拡大する」でn倍に拡大します。nは正の整数です。
    (例)カメ太を「縦横2倍」に拡大します。
      カメ太=タートル!作る。
      カメ太!2 拡大する。}
    「m n 拡大する」で、「横にm倍、縦にn倍」に拡大します。m, nは正の整数です。
    (例)カメ太を横に3倍、縦に2倍に拡大します。
      カメ太=タートル!作る。
      カメ太!3 2 拡大する。}
  • 線の色 : 描く線の色を変えます。はじめの色は黒です。
    (例)カメ太が描く線の色を「緑」に設定します。
      カメ太=タートル!作る。
      カメ太!(緑)線の色 100 歩く。}
  • 線の太さ : 描く線の太さを変えます。はじめの太さは3です。
    (例)カメ太が描く線の太さを「5」に設定します。
      カメ太=タートル!作る。
      カメ太!5 線の太さ。
      カメ太!100 歩く。}
  • 消える : 姿を消します。描いている線も消えます。
    (例)カメ太を画面から消します。
      カメ太=タートル!作る。
      カメ太!消える。}
  • 現れる : 画面に現れます。消えた姿を戻すときに使います。
    (例)消えているカメ太を表示します。「消える」の例に続いて実行してください。
      カメ太!現れる。
  • 手前に表示 : 他のタートルや図形オブジェクトより手前に表示します。
    (例)カメ太を他のオブジェクトより手前に表示します。
      カメ太!手前に表示。
  • : 指定した半径の円を描きます*5。大きさが正の場合はタートルの右側に、負の場合は左側に描かれます。
    (例)カメ太が半径100の円を描きます。
      カメ太=タートル!作る。
      カメ太!100 円。}
  • 角形 : 正n角形を描きます。「m n 角形」で、1辺が長さmの図形(正三角形、正方形、正五角形など)を描きます。図形はタートルの右側に描かれますが、辺の長さmを負にすると左側に描かれます。
    (例)カメ太が右側に1辺が100の三角形と、左側に1辺が100の五角形を描きます。
      カメ太=タートル!作る。
      カメ太!100 3 角形。
      カメ太!-100 5 角形。}
  • 向き? : タートルの向きを調べます。右向きが0度です。角度は左回りに大きくなります。
    (例)上を向いたカメ太の向きを表示します。「90」が表示されます。
      カメ太=タートル!作る。
      カメ太!90 左回り。
      ラベル!(カメ太!向き?)作る。}
  • 横の位置? : タートルのX座標を調べます。
    (例)カメ太のX座標を表示します。「50」が表示されます。
      カメ太=タートル!作る。
      カメ太!60 左回り。
      カメ太!100 歩く。
      ラベル!(カメ太!横の位置?)作る。}
  • 縦の位置? : タートルのY座標を調べます。
    (例)カメ太のY座標を表示します。「50」が表示されます。
      カメ太=タートル!作る。
      カメ太!30 左回り。
      カメ太!100 歩く。
      ラベル!(カメ太!縦の位置?)作る。

図形

  • タートルグラフィックスで描かれた図形を独立した図形オブジェクトにできます。
  • 図形を画面の上で移動したり回転させることができます。
  • 回転の中心は図形を描いたときの始点です。
  • 他のオブジェクトと重なると「衝突」というメソッドが実行されます。
  • 動作」というメソッドを定義すると、マウスでクリックしたときに実行されます。
  • 作る : 自分を複製して新しい図形を作ります。
    (例)「三角形」を複製して「三角形2」を作り、画面上で移動します。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形2=三角形!作る。
      三角形2!150 0 移動する。
  • 右回り : 右に回ります。
    (例)三角形は10度、右に回ります。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!10度 右回り。
  • 左回り : 左に回ります。
    (例)三角形は10度、左に回ります。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!10度 左回り。
  • 移動する : 右にx歩、上にy歩動きます。
    (例)三角形は「右に0歩、上に100歩」動きます。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!0 50 移動する。
  • 位置 : 指定された座標に移動します。画面の中央が中心(0,0)です。
    (例)三角形は「(100, 100)」の座標の位置に動きます。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!100 100 位置。
  • 塗る : 自分の中を色で塗ります。色は色オブジェクトを括弧で囲んで書きます。色を省略すると線の色で塗られます。
    (例)三角形を「青」で塗ります。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!(青) 塗る。
  • 拡大する : 自分をn倍します。または縦横にx倍y倍します。
    (例)三角形を「縦横2倍」に拡大します。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!2 拡大する。
    (例)三角形を横に3倍、縦に2倍に拡大します。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!3 2 拡大する。
  • 消える : 画面から消えます。
    (例)三角形を画面から消します。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!消える。
  • 現れる : 画面に現れます。消えた姿を戻すときに使います。
    (例)消えている三角形を表示します。「消える」の例に続けて実行してください。
      三角形!現れる。
  • 手前に表示 : 他のタートルや図形オブジェクトより手前に表示します。
    (例)三角形を他のオブジェクトより手前に表示します。
      三角形!手前に表示。
  • 向き? : 向きを調べます。右向きが0度です。角度は左回りに大きくなります。
    (例)三角形の向きを表示します。「90」が表示されます。
      カメ太=タートル!作る。
      三角形=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      三角形!90 左回り。
      ラベル!(三角形!向き?)作る。

組図形

  • 複数の図形をひとつのオブジェクトとして扱えます。
  • 図形の結合メソッドで作られます。
  • 要素の図形は組図形を作った後も独立した図形として扱えます。
  • 回転の中心は要素の座標の中心です。
  • 図形とほぼ同等のメソッドを実行できます。
  • 個々の図形に定義された「衝突」イベントは要素の図形同士の衝突が発生する可能性があります。
  • 以下の例では、次のように「家」という組図形を作ってから実行してください。
      かめた=タートル!作る。
      屋根=「かめた!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。
      壁=「かめた!100 歩く 90 右回り」!4 繰り返す(緑)図形を作る。
      家=図形!(屋根)(壁)結合。
      家!90 左回り。
  • 作る : 自分を複製して新しい組図形を作ります。
    (例)「家」を複製して「家2」を作り、画面上で移動します。
      家2=家!作る。
      家2!150 0 移動する。}
  • 右回り : 右に回ります。
    (例)家は30度、右に回ります。
      家!30度 右回り。
  • 左回り : 左に回ります。
    (例)家は30度、左に回ります。
      家!10度 左回り。
  • 移動する : 右にx歩、上にy歩動きます。
    (例)家は「右に0歩、上に100歩」動きます。
      家!0 50 移動する。
  • 位置 : 指定された座標に移動します。画面の中央が中心(0,0)です。
    (例)家は「(100, 100)」の座標の位置に動きます。
      家!100 100 位置。
  • 塗る : 要素の図形を色で塗ります。
    (例)家を「青」で塗ります。
      家!(青) 塗る。
  • 拡大する : 自分をn倍します。または縦横にx倍y倍します。
    (例)家を「縦横2倍」に拡大します。
      家!2 拡大する。
    (例)家を横に3倍、縦に2倍に拡大します。
      家!3 2 拡大する。
  • 消える : 画面から消えます。
    (例)家を画面から消します。
      家!消える。
  • 現れる : 画面に現れます。消えた姿を戻すときに使います。
    (例)消えている家を表示します。「消える」の例に続けて実行してください。
      家!現れる。
  • 手前に表示 : 他のタートルや図形オブジェクトより手前に表示します。
    (例)家を他のオブジェクトより手前に表示します。
      家!手前に表示。
  • 向き? : 向きを調べます。右向きが0度です。角度は左回りに大きくなります。
    (例)家の向きを表示します。「90」が表示されます。
      家!90 左回り。
      ラベル!(家!向き?)作る。

画面

  • 実行画面を表すオブジェクトです。
  • マウスという名前でも参照できます。
  • 塗る: 画面の背景に色を塗ります。
    (例)画面の背景を「水色」にします。
      画面!(水色)塗る。
  • 背景画像: 画面の背景に画像を表示します。
    (例)画面の背景に「a.png」という画像を表示します。
      画面!"a.png" 背景画像。
  • 方眼紙: 画面に方眼紙の罫線を表示します。色を指定すると、その色の罫線が描かれます。色を指定しないと罫線が消えます。
    (例)画面に「緑」の罫線を表示します。
      画面!(緑)方眼紙。
    (例)画面から罫線を消します。
      画面!方眼紙。
  • 幅?: 画面の幅を返します。
    (例)画面の横幅を表示します。
      ラベル!(画面!幅?)作る。
  • 高さ?: 画面の高さを返します。
    (例)画面の高さを表示します。
      ラベル!(画面!高さ?)作る。
  • 横の位置?: マウスカーソルのX座標を返します。
    (例)マウスカーソルのX座標を表示します。
      ラベル!(マウス!横の位置?)作る。
  • 縦の位置?: マウスカーソルのY座標を返します。
    (例)マウスカーソルのY座標を表示します。
      ラベル!(マウス!縦の位置?)作る。

  • 色を表すオブジェクトです。
  • よく使う8色は「黄色水色」という変数で用意されています。
  • 複数の色を混ぜ合わせるときは、パレットオブジェクトを使います。
  • 作る : 三原色を指定して色を作ります。赤緑青の順に0〜255の値を指定します。
    (例)「赤が255、緑が136、青が255」の明るさの色を作ります。
      ピンク=色!255 136 255 作る。
      画面!(ピンク)方眼紙。
    色を16進の数値で指定することもできます。赤、緑、青の明るさを、それぞれ2桁で指定します。
    (例)「赤が0xFF、緑が0x88、青が0xFF」の色を作ります。
      ピンク=色!0xFF88FF 作る。
      画面!(ピンク)方眼紙。
  • ランダムに作る : 色をランダムに作ります。
    (例)色をランダムに作ります。実行するたびに違う色で表示されます。
      新しい色=色!ランダムに作る。
      画面!(新しい色)方眼紙。
  • 暗くする : 色を暗くします。
    (例)暗い緑色を作ります。
      濃い緑=緑!暗くする。
      画面!(濃い緑)方眼紙。
  • 明るくする : 色を明るくします。暗くした色を再び明るくします。
    (例)暗くした色を明るくします。「暗くする」の例に続いて実行してください。
      明るい緑=濃い緑!明るくする。
      画面!(明るい緑)方眼紙。
  • 半透明にする : 色を半透明にします。裏側が透けて見える半透明の色を作ります。
    (例)青い半透明の色を作ります。
      新しい色=青! 半透明にする。
      画面!(水色)塗る。
      あぶく=タートル!作る 30 円(新しい色)図形を作る。
      タイマー!作る「あぶく!0 2 移動する」実行。

パレット

  • 色を混ぜ合わせるオブジェクトです。
  • あらかじめ「光」「絵具」という2個のオブジェクトが用意されています。
  • 」は、光を重ねたときの色(加法混色)を作ります。
  • 絵具」は、絵の具を重ねたときの色(減法混色)を作ります。
  • 混ぜる: 複数の色を混ぜます。
    (例)「赤」と「緑」の光を混ぜた色を作ります。
      新しい色=光!(赤)(緑)混ぜる。
      画面!(新しい色)塗る。
    (例)「赤」と「緑」の絵具を混ぜた色を作ります。
      新しい色=絵具!(赤)(緑)混ぜる。
      画面!(新しい色)塗る。

GUIオブジェクト

  • 画面に情報を表示したり、プログラムを対話的に操作するためのオブジェクトです。
  • プログラムでは、大きさ位置でGUIオブジェクトの大きさと位置を指定して使ってください。
  • 位置を指定しない場合には、直前に作ったGUIオブジェクトの右隣に配置され、画面の右端を越えたり次の行を実行することで下の行の左端に移動します。ただし、画面の大きさは実行する環境によって異なりますので、できるだけ「大きさ」 と「位置」を指定してください。
  • GUIオブジェクトの背景色(塗る)はMacintoshでは対応していません。
  • ラベル、ボタン、リスト、選択メニューの文字列中にHTMLを記述できます。
    • 記述できるHTMLは、W3CのHTML3.2相当です。ただし、aタグによるリンクなど、一部の機能は利用できません。HTMLの意味や文法については、関連する書籍などを参照してください。
    • 文字列の先頭は"<html>"で始める必要があります。""による引用は記述できません。<font color="red">は、<font color=red>と記述します。
    • 利用できる主なタグを示します。
      本文(body)、見出し(h1-h6)、段落(p, br, hr)、箇条書き(ul, ol, dl, lib)、表組(table, tr, th, td)、文字(b, font)、画像(img)
    • 利用例は付属のサンプルプログラム(html.dtl)をご覧ください。
    • HTMLを用いた画像は、タートルや図形オブジェクトと重なっても衝突を起こしません。そのため、背景画像の表示に適しています。imgタグのほか、bodyタグのbackground属性で繰り返し表示することも可能です。
      (例) ローカルのlarge.jpgという画像を表示します。
        ラベル!"<html><img src=file:large.jpg></html>" 作る。
      (例) 文字の背景に画像を表示します。
        { ラベル!"<html><body background=http://dolittle.eplang.jp/image/pukiwiki.png>あいうえおかきくけこさしすせそ<br><br><br><br><br></body></html>" 作る。}
  • 以下に、GUIオブジェクトに共通の命令を示します。「ボタン1」という名前のボタンオブジェクトの例を示しています。次の1行に続けて書いて実行してください。
      ボタン1=ボタン!"ABC" 作る。
  • 次の行 : 直前に作成したGUIオブジェクトの次の行に配置します。
    (例)オブジェクトを直前のGUIオブジェクトの次の行に表示ます。
      ボタン1!次の行。
  • 位置 : 表示位置を指定します。
    (例)オブジェクトを画面の「(100, 100)」の座標の位置に動かします。
      ボタン1!100 100 位置。
  • 移動する : 右にx歩、上にy歩動きます。
    (例)オブジェクトを画面で「右に0、上に100」だけ動かします。
      ボタン1!0 100 移動する。
  • 大きさ : 大きさを指定します。
    (例)オブジェクトを「横100、縦50」の大きさにします。
      ボタン1!100 50 大きさ。
  • 幅? : 横幅を調べます。
    (例)オブジェクトの横幅を表示します。
      ラベル!(ボタン1!幅?)作る。
  • 高さ? : 高さを調べます。
    (例)オブジェクトの高さを表示します。
      ラベル!(ボタン1!高さ?)作る。
  • 文字サイズ : 表示する文字の大きさを指定します。標準は24ポイントです。リストとスライダー以外のGUIオブジェクトに共通です。
    (例)オブジェクトに表示する文字サイズを「16」に設定します。
      ボタン1!16 文字サイズ。
  • 塗る : 色を色オブジェクトか三原色で指定します。リスト以外のGUIオブジェクトに共通です。
    (例)オブジェクトの色を設定します。
      ボタン1!(水)塗る。
    (例)オブジェクトの色を設定します。
      ボタン1!255 128 255 塗る。
    (例)オブジェクトの色を設定します。
      ボタン1!"#FF88FF" 塗る。
    (例)オブジェクトの色を設定します。
      ボタン1!"#F8F" 塗る。
  • 文字色 : 文字の色を色オブジェクトか三原色で指定します。リスト以外のGUIオブジェクトに共通です。
    (例)オブジェクトの文字色を設定します。
      ボタン1!(緑)文字色。
    (例)オブジェクトの文字色を設定します。
      ボタン1!0 128 0 文字色。
    (例)オブジェクトの文字色を設定します。
      ボタン1!"#008800" 文字色。
    (例)オブジェクトの文字色を設定します。
      ボタン1!"#080" 文字色。
  • 消える : 画面から消えます。
    (例)オブジェクトを画面から消します。
      ボタン1!消える。
  • 現れる : 画面に現れます。消えた姿を戻すときに使います。
    (例)消えているオブジェクトを画面に表示します。「消える」の例に続いて実行してください。
      ボタン1!現れる。

ボタン

  • 画面に表示されるGUI部品です。初期サイズは150×45です。
  • GUIオブジェクトに共通の説明はobj_gui を参照してください。
  • ボタンが押されると動作というメソッドが実行されます。
    (例)ボタン1=ボタン!"挨拶" 作る。
      ボタン1:動作=「ラベル!"こんにちは" 作る」。}
  • ボタンの生成時にショートカットキーを指定することができます。
  • 以下の「作る」以外の例では、「ボタン1」を作ってから実行してください。
  • 作る : 新しいボタンを作ります。1個目のパラメータにはボタンに表示するラベルを指定します。
    (例)「実行」と書かれたボタンを作ります。
      ボタン1=ボタン!"実行" 作る。
      ボタン1:動作=「ラベル!"こんにちは" 作る」。}
    2個目のパラメータにショートカットキーを指定できます。キーの文字列はsec_keylist 「ショートカットキー一覧」を参照してください。次の例では上向き矢印キーを押すとボタンの動作が実行されます。
    (例)上向き矢印キーを押すと実行されるボタンを作ります。
      ボタン1=ボタン!"実行" "UP" 作る。
      ボタン1:動作=「ラベル!"こんにちは" 作る」。}
  • 読む : 文字を読んで返します。
    (例)ボタンの文字列を表示します。
      ラベル!(ボタン1!読む)作る。
  • 書く : 文字を書きます。
    (例)ボタンに「あいうえお」という文字を書きます。
      ボタン1!"あいうえお" 書く。
  • 増やす : 表示されている数を増やします。増やす数を省略すると1だけ増えます。
    (例)ボタンに表示されている値を1増やします。
      ボタン1! 増やす。
    (例)ボタンに表示されている値を10増やします。
      ボタン1!10 増やす。
  • 減らす : 表示されている数を減らします。減らす数を省略すると1だけ減ります。
    (例)ボタンに表示されている値を1減らします。
      ボタン1! 減らす。
    (例)ボタンに表示されている値を10減らします。
      ボタン1!10 減らす。

フィールド

  • 画面に表示されるGUI部品です。文字の表示や入力に使います。初期サイズは150×45です。
  • GUIオブジェクトに共通の説明はobj_gui を参照してください。
  • リターンキー が押されると動作というメソッドが実行され、フィールドの値がパラメータとして渡されます。
  • 以下の「作る」以外の例では、「フィールド1」を作ってから実行してください。
  • 作る : 新しいフィールドを作ります。
    (例)フィールドを作ります。パラメータに初期値を指定することもできます。
      フィールド1=フィールド!作る。
  • 読む : 文字を読んで返します。
    (例)フィールドの文字を表示します。
      ラベル!(フィールド1!読む)作る。
  • 書く : 文字を書きます。
    (例)フィールドに「あいうえお」という文字を書きます。
      フィールド1!"あいうえお" 書く。
  • クリア : 空にします。
    (例)フィールドの文字を消します。
      フィールド1!クリア。
  • 増やす : 表示されている数を増やします。増やす数を省略すると1だけ増えます。
    (例)フィールドに表示されている値を1増やします。
      フィールド1!増やす。
    (例)フィールドに表示されている値を10増やします。
      フィールド1!10 増やす。
  • 減らす : 表示されている数を減らします。減らす数を省略すると1だけ減ります。
    (例)フィールドに表示されている値を1減らします。
      フィールド1!減らす。
    (例)フィールドに表示されている値を10減らします。
      フィールド1!10 減らす。
  • フォーカス : フィールドが画面で選択された状態にします。
    (例)フィールドを画面でフォーカスします。
      フィールド1!フォーカス。

ラベル

  • 画面に表示されるGUI部品です。文字の表示に使います。中に1つの文字列を入れられます。
  • GUIオブジェクトに共通の説明はobj_gui を参照してください。
  • 大きさは、表示する文字列によって自動的に設定されます。
  • 以下の「作る」以外の例では、「ラベル1」を作ってから実行してください。
  • 作る : 新しいラベルを作ります。
    (例)「あいうえお」と書かれたラベルを作ります。
      ラベル1=ラベル!"あいうえお" 作る。
  • 書く : 文字を書きます。
    (例)ラベルに「かきくけこ」という文字を書きます。
      ラベル1!"かきくけこ" 書く。
  • 増やす : 表示されている数を増やします。増やす数を省略すると1だけ増えます。
    (例)ラベルに表示されている値を1増やします。
      ラベル1! 増やす。
    (例)ラベルに表示されている値を10増やします。
      ラベル1!10 増やす。
  • 減らす : 表示されている数を減らします。減らす数を省略すると1だけ減ります。
    (例)ラベルに表示されている値を1減らします。
      ラベル1! 減らす。
    (例)ラベルに表示されている値を10減らします。
      ラベル1!10 減らす。

リスト

  • 画面に表示されるGUI部品です。初期サイズは150×90です。
  • GUIオブジェクトに共通の説明はobj_gui を参照してください。
  • 行単位で複数の文字列を入れられます。配列を指定するとすべての要素が入ります。
  • 以下の「作る」以外の例では、「リスト1」を作ってから実行してください。
  • 作る : 新しいリストを作ります。
    (例)リストを作ります。
      リスト1=リスト!作る。
  • 書く : 文字を書きます。新しい行として追加されます。
    (例)リストに「"あいうえお"」という文字列を追加します。
      リスト1!"あいうえお" 書く。
  • 読む : 文字を読んで返します。行を1から始まる整数で指定します。
    (例)リストの1個目の要素を読みます。
      ラベル!(リスト1!1 読む)作る。
  • クリア : 空にします。
    (例)リストのすべての要素を削除します。
      リスト1!クリア。

選択メニュー

  • 画面に表示されるGUI部品です。選択肢を表示し、そこから選択できます。初期サイズは150×45です。
  • GUIオブジェクトに共通の説明はobj_gui を参照してください。
  • 選択肢が選ばれると動作というメソッドが実行され、選ばれた選択肢の文字列と何番目が選ばれたかを表す番号がパラメータとして渡されます。
  • 以下の「作る」以外の例では、「メニュー1」を作ってから実行してください。
  • 作る : 新しい選択メニューを作ります。
    (例)「+」と「-」という選択肢で選択メニューを作ります。選択肢を選ぶと、その文字列が表示されます。
      メニュー1=選択メニュー!"+" "−" 作る。
      ラベル1=ラベル!作る。
      メニュー1:動作=「|x| ラベル1!(x)書く」。}
  • 書く : メニューに文字列を書きます。新しい選択肢として追加されます。
    (例)選択メニューに「+」と「-」という選択肢を追加します。
      メニュー1!"+" "−" 書く。
  • 何番目? : 選ばれている選択肢の番号を1から始まる整数で返します。「書く」の例に続けて実行してください。
    (例)選択メニューの1個目の選択肢が選ばれたときに、「カメ太!100 歩く」を実行します。
      「(メニュー1!何番目?) == 1」!なら「カメ太!100 歩く」実行。
  • 読む : メニューの文字列を読みます。メニューの番号を1から始まる整数で指定します。
    (例)メニューの1個目の選択肢の文字を読みます。「書く」の例に続けて実行してください。
      ラベル!(メニュー1!1 読む)作る。

スライダー

  • 画面に表示されるGUI部品です。初期サイズは300×45です。
  • GUIオブジェクトに共通の説明はobj_gui を参照してください。
  • つまみを動かして0〜100の範囲で値を変えられます。値が変わると動作というメソッドが実行され、スライダーの値がパラメータとして渡されます。
  • スライダーの生成時にショートカットキーを指定することができます。
  • 以下の「作る」以外の例では、「スライダー1」を作ってから実行してください。
  • 作る : 新しいスライダーを作ります。
    (例)スライダーを作ります。
      スライダー1=スライダー!作る。
    値を減少/増加させるショートカットキーを指定できます。キーの文字列はsec_keylist 「ショートカットキー一覧」を参照してください。次の例では左右の矢印キーを押すとスライダーのバーが動きます。
    (例)左右の矢印キーで操作できるスライダーを作ります。値が画面に表示されます。
      スライダー1=スライダー!"LEFT" "RIGHT" 作る。
      ラベル1=ラベル!作る。
      スライダー1:動作=「|x| ラベル1!(x)書く」。}
  • 値? : スライダーの値を得ます。0〜100の値が返ります。
    (例)スライダーの値を表示します。
      ラベル1=ラベル!作る。
      スライダー1:動作=「ラベル1!(スライダー1!値?)書く」。}
  • : スライダーに値を設定します。0〜100の値を指定します。
    (例)スライダーに「50」を設定します。
      スライダー1!50 値。
  • 横向き : 横長のスライダーにします。
    (例)スライダーを横向きにします。
      スライダー1!横向き。
  • 縦向き : 縦長のスライダーにします。
    (例)スライダーを縦向きにします。
      スライダー1!縦向き。
  • 文字出す : 目盛ラベルを表示します。10ごとの目盛ラベルが表示されます。
    (例)スライダーに目盛ラベルを表示します。
      スライダー1!文字出す。
  • 文字消す : 目盛ラベルを表示しません。
    (例)スライダーから目盛ラベルを消します。
      スライダー1!文字消す。
  • から : 値の範囲を設定します。
  • まで : 値の範囲を設定します。
    (例)スライダーの値の範囲を-50から50に設定します。
      スライダー1!-50 から 50 まで。

ショートカットキー一覧

  • ボタンやスライダーなどのGUI部品をキーボードから操作するためのショートカットキーの一覧です。
  • これらの文字は、各種のキーボードで共通に使えます。
意味記号
英字"A", "B", ..., "Z"
数字"1", "2", ..., "0"
ファンクション"F1", "F2", ..., "F12"
エスケープ(ESC)"ESCAPE"
マイナス(-)"MINUS"
バックスラッシュ(¥)"BACK_SLASH"
開き括弧([)"OPEN_BRACKET"
閉じ括弧(])"CLOSE_BRACKET"
セミコロン(;)"SEMICOLON"
コンマ(,)"COMMA"
ピリオド(.)"PERIOD"
スラッシュ(/)"SLASH"
エンター(ENTER)"ENTER"
ホーム(HOME)"HOME"
エンド(END)"END"
ページアップ(PageUp)"PAGE_UP"
ページダウン(PageDown)"PAGE_DOWN"
カーソル上(↑)"UP"
カーソル下(↓)"DOWN"
カーソル左(←)"LEFT"
カーソル右(→)"RIGHT"

音楽オブジェクト

  • 音楽はプログラムの流れと並行して(スレッドとして非同期に)演奏され、プログラムは演奏の終了を待たずに先に進みます。演奏の終了を待つには「待つ」を使います。
  • 演奏は内蔵されたMIDI音源を使って演奏されます。外部のMIDI音源などが存在する場合は、編集画面の下部にMIDIボタンが表示され、演奏時に使用される機器を選択できます。

メロディ

  • 音階のある旋律を表します。"ドレミ〜" のように、分かりやすい文字列でメロディを表現します。
  • 以下の「作る」以外の例では、「メロディ1」などを作ってから実行してください。
  • 作る : 新しいメロディを作ります。
    (例)「メロディ1」という名前のメロディオブジェクトを作ります。
      メロディ1=メロディ!作る。
    (例)「メロディ1」という名前で「"ドレミ〜"」という音符のメロディオブジェクトを作ります。
      メロディ1=メロディ!"ドレミ〜" 作る。
  • 設定 : 楽器を設定します。
    (例)メロディ1に「オルガン」の楽器オブジェクトを設定します。
      メロディ1!(楽器!"オルガン" 作る)設定。
  • 追加 : 音符を追加します。音符は文字列とメロディオブジェクトで指定できます。
    (例)メロディ1に「"ドレミ〜"」という音符を追加します。
      メロディ1!"ドレミ〜" 追加。
    (例)メロディ2にメロディ1の音符を追加します。
      メロディ2!(メロディ1)追加。
  • 無音 : 休符を追加します。
    (例)メロディ2に4拍の休符とメロディ\ns1を追加します。
      メロディ2!4 無音(メロディ1)追加。
  • 繰り返す : 繰り返したメロディを返します。
    (例)メロディ2にメロディ1を2回繰り返した音符を追加します。
      メロディ2!(メロディ1!2 繰り返す)追加。
  • 音上げる : メロディを半音の個数分上げた音階で返します。
    (例)メロディ1の音程を1オクターブ(半音12個分)上げたメロディ2を作ります。
      メロディ2=メロディ1!12 音上げる。
    (例)メロディ1の音程を1オクターブ(半音12個分)下げたメロディ2を作ります。
      メロディ2=メロディ1!-12 音上げる。
  • 演奏 : メロディを演奏します。
    (例)メロディ1を演奏します。
      メロディ1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    (例)メロディ1の演奏が終るのを待ちます。
      メロディ1!待つ。
  • クリア : メロディの音符をすべて消します。
    (例)メロディ1の音符をすべて消します。
      メロディ1!クリア。
  • メロディを示す文字列には、次の表記を使えます。
  • ド , レ , ミ , ファ , フ, ソ , ラ , シ ,ど , れ , み , ふぁ , ふ, そ , ら , し, C, D, E, F, G, A, B:
    音階を表します。
    (例)メロディ1!"ドレミ" 追加。
  • : 半音上げます。直前の音階を半音上げます。
    (例)メロディ1!"ド#レミ" 追加。
  • %): 半音下げます。直前の音階を半音下げます。
    (例)メロディ1!"ドレミ♭" 追加。
  • , \kwy{^}^ : オクターブ上げます。これ以降の音階が1オクターブ上がります。
    (例)メロディ1に「"ドレミファソラシ^ドレミ"」を追加します。最後の「"ドレミ"」はオクターブ上の音階です。
      メロディ1!"ドレミファソラシ^ドレミ" 追加。
  • , _: オクターブ下げます。これ以降の音階が1オクターブ下がります。
    (例)メロディ1に「"ド_シラソファミレド"」を追加します。最後の「"ド"」以降はオクターブ下の音階です。
      メロディ1!"ド_シラソファミレド" 追加。
  • : 休符
    (例)メロディ1!"ド・レ・ミ" 追加。
  • --): 長音。前の音を1拍延ばします。
    (例)メロディ1!"ドレミ〜" 追加。
  • : 付点。前の音をその半分の長さだけ伸ばします。
    (例)メロディ1!"ドレミ." 追加。
  • &,1,2,4,8,16: 長さを指定します。"ド4レ8ミ4&8" と書くと、ドは4分音符、レは8分音符、ミは付点4分音符になります。
    (例)メロディ1!"ド4レ8ミ4&8" 追加。
  • {...}: 三連符。3個の音を2拍で演奏します。全体の長さを指定できます。
    (例)メロディ1!"{ドレミ}8" 追加。

コード

  • 和音を表します。"CCD〜" のような文字列で記述します。
  • 以下の「作る」以外の例では、「コード1」などを作ってから実行してください。
  • 作る : 新しいコードを作ります。
    (例)「コード1」という名前のコードオブジェクトを作ります。
      コード1=コード!作る。
    (例)「コード1」という名前で「"CCD"」という音符のコードオブジェクトを作ります。
      コード1=コード!"CCD" 作る。
  • 設定 : 楽器を設定します。
    (例)コード1に「オルガン」の楽器オブジェクトを設定します。
      コード1!(楽器!"オルガン" 作る)設定。
  • 追加 : 音符を追加します。音符は文字列とコードオブジェクトで指定できます。
    (例)コード1に「"CCD〜"」という音符を追加します。
      コード1!"CCD〜" 追加。
    (例)コード2にコード1の音符を追加します。
      コード2!(コード1)追加。
  • 無音 : 休符を追加します。
    (例)コード2に4拍の休符とコード\ns1を追加します。
      コード2!4 無音(コード1)追加。
  • 繰り返す : 繰り返したコードを返します。
    (例)コード2にコード1を2回繰り返したコードを追加します。
      コード2!(コード1!2 繰り返す)追加。
  • 音上げる : コードを半音の個数分上げた音階で返します。
    (例)コード1の音程を1オクターブ(半音12個分)上げたコード2を作ります。
      コード2=コード1!12 音上げる。
    (例)コード1の音程を1オクターブ(半音12個分)下げたコード2を作ります。
      コード2=コード1!-12 音上げる。
  • 演奏 : コードを演奏します。
    (例)コード1を演奏します。
      コード1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    (例)コード1の演奏が終るのを待ちます。
      コード1!待つ。
  • クリア : 追加したコードをすべて消します。
    (例)コード1のコードをすべて消します。
      コード1!クリア。
  • コードを示す文字列には、次の表記を使えます。
  • A , B , C , D , E , F , G: コードを表します。
    (例)コード1!"CCG" 追加。
  • m, 7: コードを修飾します。マイナーコードを作るときに使います。
    (例)コード1!"CCmC7Cm7" 追加。
  • : 半音上げます。直前の音階を半音上げます。
    (例)コード1!"C#CD" 追加。
  • %): 半音下げます。直前の音階を半音下げます。
    (例)コード1!"CCD♭" 追加。
  • , \kwy{^}^ : オクターブ上げます。これ以降の音階が1オクターブ上がります。
    (例)コード1に「"C^CD"」を追加します。最後の「"CD"」はオクターブ上の音階です。
      コード1!"C^CD" 追加。
  • , _: オクターブ下げます。これ以降の音階が1オクターブ下がります。
    (例)メロディ1に「"C_CD"」を追加します。最後の「"CD"」はオクターブ下の音階です。
      コード1!"C_CD" 追加。
  • : 休符
    (例)コード1!"C・C・D" 追加。
  • --): 長音。前の音を1拍延ばします。
    (例)コード1!"CCD〜" 追加。
  • : 付点。前の音をその半分の長さだけ伸ばします。
    (例)コード1!"CCD." 追加。
  • &,1,2,4,8,16: 長さを指定します。"C4D8E4&8" と書くと、Cは4分音符、Dは8分音符、Eは付点4分音符になります。
    (例)コード1!"C4D8E4&8" 追加。
  • {...}: 三連符。3個の音を2拍で演奏します。全体の長さを指定できます。
    (例)コード1!"{CDE}8" 追加。

ドラム

  • ドラム楽器の演奏を表します。"ドツタツ" のように、分かりやすい文字列でリズムを表現します。
  • 楽器を設定せず、ドラムオブジェクトで演奏してください。単独で演奏できるほか、
    バンドオブジェクトのメンバーとして他の楽器などと同時に演奏できます。
  • 以下の「作る」以外の例では、「ドラム1」などを作ってから実行してください。
  • 作る : 新しいドラムを作ります。
    (例)「ドラム1」という名前のドラムオブジェクトを作ります。
      ドラム1=ドラム!作る。
  • 追加 : 音符を追加します。音符は文字列とドラムオブジェクトで指定できます
    (例)ドラム1に「"ドツタツ"」という音符を追加します。
      ドラム1!"ドツタツ" 追加。
    (例)ドラム2にドラム1の音符を追加します。
      ドラム2!(ドラム1)追加。
  • 無音 : 休符を追加します。
    (例)ドラム1に4拍の休符を追加します。
      ドラム1!4 無音。
  • 繰り返す : 繰り返したドラムを返します。
    (例)ドラム2にドラム1を2回繰り返した音符を追加します。
      ドラム2!(ドラム1!2 繰り返す)追加。
  • 演奏 : ドラムを演奏します。
    (例)ドラム1を演奏します。
      ドラム1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    (例)ドラム1の演奏が終るのを待ちます。
      ドラム1!待つ。
  • 音量 : 音の大きさを設定します。値は0〜127で、標準の大きさは95です。
    (例)「ドラム1」の音の大きさを「127」に設定します。
      ドラム1!127 音量。
  • クリア : 追加したドラムをすべて消します。
    (例)ドラム1の音符をすべて消します。
      ドラム1!クリア。
  • 楽器設定 : 音符と楽器の対応を設定します。楽器は楽器名の文字列または楽器番号で指定します。複数の楽器を設定できます。
    (例)ドラム1の「"ド"」を「"手拍子"」という楽器に設定します。
      ドラム1!"ド" "手拍子" 楽器設定。
    (例)ドラム1の「"ド"」を「36」番の楽器に設定します。
      ドラム1!"ド" 36 楽器設定。
    (例)ドラム1の「"ドタツクチパ"」を、それぞれ「35, 38, 42, 44, 46, 49」番の楽器に設定します。
      ドラム1!"ドタツクチパ" 35 38 42 44 46 49 楽器設定。
  • ドラムを示す文字列には、次の表記を使えます。楽器の割当は「楽器設定」で変更できます。
    (例)ドラム!作る "ドツタツドツタツドツタツクチパ・" 追加 演奏。
  • ド , (ど): バスドラの半拍を表します。
  • タ , (た): スネアの半拍を表します。
  • ツ , (つ): ハイハット(クローズ)の半拍を表します。
  • ク , (く): ハイハット(ハーフオープン)の半拍を表します。
  • チ , (ち): ハイハット(オープン)の半拍を表します。
  • パ , (ぱ): クラッシュシンバルの半拍を表します。
  • ン (ん): 長音。前の拍を半拍長くします。
  • ・: 休符。1拍休みます。
  • &,1,2,4,8,16: 長さを示します。"タン4タン8タン4&8" と書くと、最初のタンは4分音符、次のタンは8分音符、最後のタンは付点4分音符になります。
  • {...}: 三連符。3個の音を2拍で演奏します。全体の長さを指定できます。
  • ドラムの「楽器設定」で使える楽器名と楽器番号には、次のものが使えます。
番号名前番号名前番号名前
35バスドラム 251ライドシンバル 167ハイアゴゴ
36バスドラム 152チャイニーズシンバル68ローアゴゴ
37サイドスティック53ライドベル69カバサ
38スネアドラム 154タンバリン70マラカス
39手拍子55スプラッシュシンバル71ショートホイッスル
40スネアドラム 256カウベル72ロングホイッスル
41ロートム 257クラッシュシンバル 273ショートギロ
42クローズハイハット58ヴィブラスラップ74ロングギロ
43ロートム 159ライドシンバル 275クラヴェス
44ペダルハイハット60ハイボンゴ76ハイウッドブロック
45ミドルトム 261ローボンゴ77ローウッドブロック
46オープンハイハット62ミュートハイコンガ78ミュートクイーカ
47ミドルトム 163オープンハイコンガ79オープンクイーカ
48ハイトム 264ローコンガ80ミュートトライアングル
49クラッシュシンバル 165ハイタンバール81オープントライアングル
50ハイトム 166ロータンバール

楽器

  • メロディとコードを演奏する楽器です。
  • 以下の「作る」以外の例では、「ピアノ1」を作ってから実行してください。
  • 作る : 新しい楽器を作ります。
    (例)「ピアノ1」という名前の楽器オブジェクトを作ります。
      ピアノ1=楽器!"ピアノ" 作る。
  • 設定 : 演奏するメロディとコードを設定します。
    (例)「ピアノ1」に「メロディ1」のメロディを設定します。
      ピアノ1!(メロディ1)設定。
    (例)「ピアノ1」に「コード1」のコードを設定します。
      ピアノ1!(コード1)設定。
  • 演奏 : 楽器を演奏します。
    (例)「ピアノ1」を演奏します。
      ピアノ1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    (例)「ピアノ1」の演奏が終るのを待ちます。
      ピアノ1!待つ。
  • 音量 : 音の大きさを設定します。値は0〜127で、標準の大きさは95です。
    (例)「ピアノ1」の音の大きさを「127」に設定します。
      ピアノ1!127 音量。
  • 楽器名と楽器番号には、次のものが使えます。
番号名前番号名前番号名前
1グランドピアノ44コントラバス87フィフスリード
2ブライトピアノ45トレモロストリングス88ベースアンドリード
3エレクトリックグランドピアノ46ピチカートストリングス89ニューエイジパッド
4ホンキートンクピアノ47オーケストラハープ90ワームパッド
5エレクトリックピアノ148ティンパニ91ポリシンセパッド
6エレクトリックピアノ249ストリングス92クワイアパッド
7ハープシコード50スローストリングス93ボウドパッド
8クラビネット51シンセストリングス194メタリックパッド
9チェレスタ52シンセストリングス295ハロパッド
10グロッケンシュピール53コーラス96スウィープパッド
11ミュージックボックス54ボイス97アイスレイン
12ビブラフォン55シンセボイス98サウンドトラック
13マリンバ56オーケストラヒット99クリスタル
14シロフォン57トランペット100アトモスフィア
15チューブラーベル58トロンボーン101ブライトネス
16ダルシマー59チューバ102ゴブリン
17ドローバーオルガン60ミュートトランペット103エコードロップ
18パーカッシブオルガン61フレンチホルン104エスエフ
19ロックオルガン62ブラスセクション105シタール
20チヤーチオルガン63シンセブラス1106バンジョー
21リードオルガン64シンセブラス2107三味線
22アコーディオン65ソプラノサックス108
23ハーモニカ66アルトサックス109カリンバ
24タンゴアコーディオン67テナーサックス110バグパイプ
25ナイロンギター68バリトンサックス111フィドル
26スティールギター69オーボエ112シャナイ
27ジャズギター70イングリッシュホルン113ティンクルベル
28クリーンギター71バスーン114アゴゴ
29ミュートギター72クラリネット115スティールドラム
30オーバードライブギター73ピッコロ116ウッドブロック
31ディストーションギター74フルート117太鼓
32ギターハーモニクス75リコーダー118メロディックタム
33アコースティクベース76パンフルート119シンセドラム
34フィンガーベース77ブロウボトル120リバースシンバル
35ピックベース78尺八121ギターフレットノイズ
36フレットレスベース79ホイッスル122ブレスノイズ
37スラップベース180オカリナ123シーショア
38スラップベース281スクウェアリード124バード
39シンセベース182ソートゥースリード125テレフォン
40シンセベース283カリオペ126ヘリコプター
41バイオリン84チフリード127アプローズ
42ビオラ85チャランゴ128ガンショット
43チェロ86ボイスリード

バンド

  • 複数の楽器やメロディ/コード/ドラムを演奏します。
  • 以下の「作る」以外の例では、「マイバンド」を作ってから実行してください。
  • 作る : 新しいバンドを作ります。
    (例)「マイバンド」という名前のバンドオブジェクトを作ります。
      マイバンド=バンド!作る。
  • 追加 : 演奏する楽器/メロディ/コード/ドラムを設定します。
    (例)「マイバンド」に「ピアノ1」という楽器を追加します。
      マイバンド!(ピアノ1)追加。
  • 演奏 : バンドを演奏します。
    (例)「マイバンド」を演奏します。
      マイバンド!演奏。
  • 待つ : 演奏が終るのを待ちます。
    (例)「マイバンド」の演奏が終るのを待ちます。
      マイバンド!待つ。
  • クリア : バンドのメンバー(楽器/メロディ/コード/ドラム)をすべて取り消します。
    (例)「マイバンド」に追加された楽器/メロディ/コード/ドラムのメンバーをすべて取り消します。
      マイバンド!クリア。
  • テンポ : 演奏する速度を指定します。標準は88です。
    (例)「マイバンド」の演奏する速度を「100」に設定します。
      マイバンド!100 テンポ。

Arduinoオブジェクト

Arduino

  • Arduinoを制御するためのオブジェクトです。
  • これらのオブジェクトを使うプログラムでは、先頭に次の1行を記述してください。
      システム!"arduino" 使う。
  • 作る : Arduinoオブジェクトを作ります。
    (例)a1という名前のArduinoオブジェクトを作ります。
      a1=Arduino!作る。
  • ひらけごま : ポートを開きます。
    (例)「COM1」というポートを指定して開きます。
      a1!"COM1" ひらけごま。
    (例)ダイアログでポートを選択しながら開きます。
      a1!(システム!シリアルポート選択)ひらけごま。
  • とじろごま : ポートを閉じます。
    (例)開いているポートを閉じます。
      a1!とじろごま。
  • 待つ : 指定した秒数だけ実行を止めます。
    (例)1秒間、実行を止めます。
      a1!1 待つ。
  • デジタル出力 : デジタル出力用のオブジェクトを作ります。
    (例)13番ポートにデジタル出力をするためのオブジェクトを作ります。
      led1=a1!13 デジタル出力。
  • デジタル入力 : デジタル入力用のオブジェクトを作ります。
    (例)3番ポートからデジタル入力をするためのオブジェクトを作ります。
      sw1=a1!3 デジタル入力。
  • アナログ出力 : アナログ出力用のオブジェクトを作ります。
    (例)9番ポートにアナログ出力をするためのオブジェクトを作ります。
      led2=a1!9 アナログ出力。
  • アナログ入力 : アナログ入力用のオブジェクトを作ります。
    (例)0番ポートからアナログ入力をするためのオブジェクトを作ります。
      cds1=a1!0 アナログ入力。

デジタル出力

  • デジタル出力を行うオブジェクトです。
  • 出力する値は、0と1の数値を指定できます。
  • 書く : ポートにデータを出力します。
    (例)ポートに1を出力します。
      led1!1 書く。
  • 待つ : 指定した秒数だけ実行を止めます。
    (例)1秒間、実行を止めます。
      led1!1 待つ。

デジタル入力

  • デジタル入力を行うオブジェクトです。
  • 入力される値は0か1の数値です。
  • 読む : ポートからデータを入力します。
    (例)ポートからデータを入力します。
      入力=sw1!読む。
  • 待つ : 指定した秒数だけ実行を止めます。
    (例)1秒間、実行を止めます。
      sw1!1 待つ。

アナログ出力

  • アナログ出力を行うオブジェクトです。
  • 出力する値は、0から255の数値を指定できます。
  • 書く : ポートにデータを出力します。
    (例)ポートに255を出力します。
      led2!255 書く。
  • 待つ : 指定した秒数だけ実行を止めます。
    (例)1秒間、実行を止めます。
      led2!1 待つ。

アナログ入力

  • アナログ入力を行うオブジェクトです。
  • 入力される値は0から255の数値です。
  • 読む : ポートからデータを入力します。
    (例)ポートからデータを入力します。
      入力=cds1!読む。
  • 待つ : 指定した秒数だけ実行を止めます。
    (例)1秒間、実行を止めます。
      cds1!1 待つ。

LeapMotionオブジェクト

  • LeapMotionの値を取得するためのオブジェクトです。
  • 空中の手指の位置や動きを検出することができます。
  • LeapMotionは1台だけ接続して使うことができます。
  • 手指の動き(ジェスチャー)によって次のメソッドが実行されます。
    • 回転: 正面から見たときの動きが円に見えるように手指を動かしたときに実行されます。回転方向が時計回りかどうかを示す真偽値がパラメーターとして渡されます。
    • スワイプ: 手指を直線的に動かしたときに実行されます。右方向への移動かどうかを示す真偽値がパラメーターとして渡されます。
    • タップ: 手指を正面に向かって突き出したときに実行されます。横方向の位置を示す数値と高さを示す数値がパラメーターとして渡されます。
    • キータップ: 手指を下方向に動かしたときに実行されます。横方向の位置を示す数値がパラメーターとして渡されます。
  • LeapMotionオブジェクトは「リープ」「リープモーション」「leap」「leapmotion」という名前で使用できます。
  • これらのオブジェクトはあらかじめ用意されており、「作る」を実行する必要はありません。
  • 接続 : LeapMotionとの通信を開始します。
    (例)LeapMotionとの通信を開始します。
      リープ!接続。
  • 横の位置? : 空間での手のひらの左右の座標を取得します。中央が0で、右は正の値、左は負の値です。
    (例)手のひらの横の座標を取得します。
      x=リープ!横の位置?。
  • 縦の位置? : 空間での手のひらの高さを取得します。LeapMotion本体からの高さです。
    (例)手のひらの高さを取得します。
      y=リープ!縦の位置?。
  • 前後の位置? : 空間での手のひらの前後の位置を取得します。LeapMotionの真上が0で、手前は正の値、手を前方に伸ばすと負の値になります。
    (例)手のひらの前後の位置を取得します。
      z=リープ!前後の位置?。
  • 指の数? : 手の指の数を取得します。
    (例)指の数を取得します。
      n=リープ!指の数?。
  • グー? : 手の指の数からじゃんけんの「グー」かどうかを判断します。
    (例)グーかどうかを判断します。
      「リープ!グー?」!なら「ラベル!"グー" 作る」実行。
  • チョキ? : 手の指の数からじゃんけんの「チョキ」かどうかを判断します。
    (例)チョキかどうかを判断します。
      「リープ!チョキ?」!なら「ラベル!"チョキ" 作る」実行。
  • パー? : 手の指の数からじゃんけんの「パー」かどうかを判断します。
    (例)パーかどうかを判断します。
      「リープ!パー?」!なら「ラベル!"パー" 作る」実行。
  • 回転? : 手のひらが縦方向に円を描いているかどうかを返します。
    (例)手のひらが円を描いていれば「回転中」と表示します。
      「リープ!回転?」!なら「ラベル!"回転中" 作る」実行。
  • 左回転? : 手のひらが反時計回りで円を描いているかどうかを返します。
    (例)手のひらが反時計回りに円を描いていれば「左回転中」と表示します。
      「リープ!左回転?」!なら「ラベル!"左回転中" 作る」実行。
  • 右回転? : 手のひらが時計回りで円を描いているかどうかを返します。
    (例)手のひらが時計回りに円を描いていれば「右回転中」と表示します。
      「リープ!右回転?」!なら「ラベル!"右回転中" 作る」実行。
  • スワイプ? : 手のひらが直線的に動いているかどうかを返します。
    (例)手のひらが直線的に動いていれば「移動中」と表示します。
      「リープ!スワイプ?」!なら「ラベル!"移動中" 作る」実行。
  • 左スワイプ? : 手のひらが左の方向に直線的に動いているかどうかを返します。
    (例)手のひらが左方向に直線的に動いていれば「左に移動中」と表示します。
      「リープ!左スワイプ?」!なら「ラベル!"左に移動中" 作る」実行。
  • 右スワイプ? : 手のひらが右の方向に直線的に動いているかどうかを返します。
    (例)手のひらが右方向に直線的に動いていれば「右に移動中」と表示します。
      「リープ!右スワイプ?」!なら「ラベル!"右に移動中" 作る」実行。

Studuinoオブジェクト

Studuino

  • Studuinoを制御するためのオブジェクトです。
  • これらのオブジェクトを使うプログラムでは、先頭に次の1行を記述してください。
      システム!"studuino" 使う。
  • Studuinoオブジェクトは「ST」「studuino」「スタディーノ」「ロボ」という名前で使用できます。
  • これらのオブジェクトはあらかじめ用意されており、「作る」を実行する必要がありません。
  • Studuinoでは、センサーやアクチュエータの初期化命令を実行してから、動作命令を実行する必要があります。
  • 以下に、Studuinoオブジェクトに共通の命令を示します。
  • 転送 :ドリトルのプログラムをコンパイルし、Studuinoに転送する命令です。プログラムの最後の行に記述してください。
    (例)プログラムを転送します。
      ST!転送。
  • 待つ :パラメータの値 × 0.001 秒間だけ、プログラムの実行を止める命令です。
    (例)実行を1秒待ちます。
      ST!1000 待つ。

アナログLED

  • アナログ出力によりLEDを制御します。
  • 利用可能なポート番号はD9〜D11です。
  • アナログLED :アナログLEDの初期化命令です。使用するポートをパラメータとして設定することでそのポートをアナログLEDで初期化をします。
    (例)D9ポートでアナログLEDの初期化をします。
      ST!"D9" アナログLED。
  • 書く:アナログLEDの制御を行う動作命令です。明るさを0〜255まで制御値としてパラメータに設定します。制御値が大きいほどLEDが明るくなり、0で消灯します。
    (例)D9ポートのアナログLEDを255の明るさで点灯します。
      ST!"D9" 255 書く。

デジタルLED

  • デジタル出力によりLEDを制御します。
  • 利用可能なポート番号はA0〜A5です。
  • デジタルLED :デジタルLEDの初期化命令です。使用するポートをパラメータに設定することでそのポートをデジタルLEDで初期化をします。
    (例)A0ポートでデジタルLEDの初期化をします
      ST!"A0" デジタルLED。
  • 書く:デジタルLEDの制御を行う動作命令です。0(OFF)と1(ON)を制御値としてパラメータに設定します。0が消灯、1が点灯します。
    (例)A0ポートのデジタルLEDを点灯します。
      ST!"A0" 1 書く。

サーボモーター

  • サーボモーターの回転角度を制御します。
  • 利用可能なポート番号はD2〜D12です。
  • サーボモーター : サーボモーターの初期化命令です。使用するポートをパラメータに設定することでそのポートをサーボモーターで初期化をします。
    (例)D2ポートでサーボモーターの初期化をします
      ST!"D2" サーボモーター。
  • 書く:サーボモーターの制御を行う動作命令です。0〜180までの角度を制御値としてパラメータに設定します。
    (例)D2ポートのサーボモーターを180度に制御をします。
      ST!"D2" 180 書く。

DCモーター

  • DCモーターの回転を制御します。
  • DCモーターはM1、M2ポートを使用します。
  • M1ポートを使用する場合はD2、D4ポートを使用しないで下さい。
  • M2ポートを使用する場合はD7、D8ポートを使用しないで下さい。
  • DCモーター : DCモーターの初期化命令です。M1、M2ポートをDCモーターで初期化をします。
    (例)DCモーターの初期化をする。
      ST!DCモーター。
  • 前進:両輪の前転を開始し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)前進し、2秒間待ちます。
      ST!2000 前進。
  • 後進:両輪の後転を開始し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)後進し、1秒間待ちます。
      ST!1000 後進。
  • 停止:両輪を停止し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)DCモーターを停止し、0.5秒間待ちます。
      ST!500 停止。
  • 左折:M1に接続しているモーターのみを前転し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)左折し、3秒間待ちます。
      ST!3000 左折。
  • 右折:M2に接続しているモーターのみを前転し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)右折し、2秒間待ちます。
      ST!2000 右折。
  • 左回り:M1のDCモーターが標準の速度で前転、M2のDCモーターが標準の速度/5の速度で前転し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)左回りし、2秒間待ちます。
      ST!2000 左回り。
  • 右回り:M2のDCモーターが標準の速度で前転、M1のDCモーターが標準の速度/5の速度で前転し、パラメータの値 × 0.001 秒間だけ待ちます。
    (例)右回りし、2秒間待ちます。
      ST!2000 右回り。

スイッチ

  • Studuino基盤上のスイッチの値を取得します。
  • 利用可能なポート番号はA0〜A3です。
  • スイッチ:スイッチの初期化命令です。使用するポートをパラメータに設定することでそのポートをスイッチで初期化をします。
    (例)A1ポートでスイッチの初期化をする。
      ST!"A1" スイッチ。
  • 読む:スイッチが押されている時は0を、押されていない時は1を返します。スイッチが接続されたポートをパラメータで指定します。
    (例))A1ポートの入力値が0なら『…』を実行します。
      「(ST!"A1" 読む)==0」!なら「…」実行。

タッチセンサー

  • タッチセンサーの値を取得します。
  • 利用可能なポート番号はA0〜A5です。
  • タッチセンサー:タッチセンサーの初期化命令です。使用するポートをパラメータに設定することでそのポートをタッチセンサーで初期化をします。
    (例)A2ポートでタッチセンサーの初期化をする。
      ST!"A2" タッチセンサー。
  • 読む:タッチセンサーが押されている時は0を、押されていない時は1を返します。タッチセンサーが接続されたポートをパラメータで指定します。
    (例))A2ポートの入力値が1なら『…』を実行します。
      「(ST!"A2" 読む)==1」!なら「…」実行。

光センサー

  • 光センサーの値を取得します。
  • 利用可能なポート番号はA0〜A7です。
  • 光センサー:光センサーの初期化命令です。使用するポートをパラメータに設定することでそのポートを光センサーで初期化します。
    (例)A7ポートで光センサーの初期化をする。
      ST!"A7" 光センサー。
  • 読む:光センサの値を0〜255の値で返します。明るいほど値が大きくなります。光センサーが接続されたポートをパラメータで指定します。
    (例))A7ポートの入力値が100より大きかったら『…』を実行します。
      「(ST!"A7" 読む) > 100」!なら「…」実行。

赤外線センサー

  • 赤外線センサー(赤外線フォトリフレクタ)の値を取得します。
  • 利用可能なポート番号はA0〜A7です。
  • 赤外線センサー:赤外線センサーの初期化命令です。使用するポートをパラメータに設定することでそのポートを赤外線センサーで初期化します。
    (例)A4ポートで赤外線センサーの初期化をする。
      ST!"A4" 赤外線センサー。
  • 読む:赤外線センサーの値を0〜255の値で返します。反射が明るいほど値が大きくなります。赤外線センサーが接続されたポートをパラメータで指定します。
    (例)A4ポートの入力値が130より大きかったら『…』を実行します。
      「(ST!"A4" 読む) > 130」!なら「…」実行。

音センサー

  • 音センサーの値を取得します。
  • 利用可能なポート番号はA0〜A7です。
  • 音センサー:音センサーの初期化命令です。使用するポートをパラメータに設定することでそのポートを音センサーで初期化します。
    (例)A3ポートで音センサーの初期化する。
      ST!"A3" 音センサー。
  • 読む:音センサーの値を0〜255の値で返します。音が大きいほど値が大きくなります。音センサーが接続されたポートをパラメータで指定します。
    (例))A3ポートの入力値が30より大きいかったら『…』を実行します。
      「(ST!"A3" 読む) > 30」!なら「…」実行。

加速度センサー

  • 加速度センサーの値を取得します。
  • 加速度センサーはA4、A5ポートを同時に使用します。
  • 加速度センサーはX軸、Y軸、Z軸重力加速度の傾きを入力値として取得できます。
  • 加速度センサー:加速度センサーの初期化命令です。
    (例)加速度センサーの初期化する。
      ST!加速度センサー。
  • 読む:加速度センサーのX、Y、Z軸の傾きを-128〜127の値で返します。取得する軸をパラメータで指定します。
    (例)加速度センサーのx軸の傾きが 0 より大きかったら『…』を実行する。
      「(ST!"x" 読む)> 0」!なら「…」実行。
    (例)加速度センサーのy軸の傾きが -100 より大きかったら『…』を実行する。
      「(ST!"y" 読む)> -100」!なら「…」実行。
    (例)加速度センサーのx軸の傾きが60より大きかったら『…』を実行する。
      「(ST!"z" 読む)> 60」!なら「…」実行。

*1 正規表現の詳細は、市販の書籍やWebサイトの解説などを参照してください。マッチした文字列の参照はサポートしていません。
*2 「ぜんぶ」「どれか」の実体は、それぞれ「はい」「いいえ」です。ブロックのパラメータが実行されるタイミングはsec_common_object_boolean を参照してください。
*3 V2.1から、「ペンあり」を実行しても、それまでに描いた線が図形として切り離されないようになりました。V2.0までのプログラムで「ペンあり」で線を切り離していた場合は、必要に応じてプログラムを修正してください。
*4 風柳メモの「TwitterアイコンURL取得API」を利用させていただいています。http://d.hatena.ne.jp/furyu-tei/20130730/1375178609
*5 実体は36角形です。

Theme designed by Dining tables
Coder Mothers Day | EZwpthemes |modified by QHM Temps

powered by Quick Homepage Maker 5.0
based on PukiWiki 1.4.7 License is GPL. QHM

最新の更新 RSS  Valid XHTML 1.0 Transitional