【STAY HOME 応援企画】LibreLogo で自前じまえ命令めいれいつく

< 最終更新日時: 2023-12-07 >

自前の命令の作りかた 🔰

CIRCLESQUARE などの命令のような,図形ずけいを描くえがく命令を自分じぶんで作る方法ほうほう紹介しょうかいします. このあとは,自前の命令のことを関数かんすうぶことにします※1

さいしょはながさ 1cm の直線ちょくせん定規じょうぎを描く関数を作ってみましょう. 関数を作るときは,すくなくともつぎの 2 つをかんがえる必要ひつようがあります.

名前なまえ
その命令にふさわしい名前をつけましょう. ただし,CIRCLESQUARE のように,LibreLogo であらかじめ用意よういされている命令と同じ名前にならないようにします.
いまは 1cm の直線定規を作りたいので,ruler1cm という名前を付けることにします※2
機能きのう
その命令はなにをするのかを,なるべく具体的ぐたいてきに考えましょう.
今は,ただの直線を描くだけではなく,両端りょうはじに長さ 2mm の目盛めもりをつけることにします※3

ruler1cm関数と,それを呼びだして定規を描くプログラムはつぎのようにけるでしょう.

TO ruler1cm
  FD 2mm
  RT 90
  FD 1cm
  RT 90
  FD 2mm
END

ruler1cm ; 関数を呼びだす

関数は TOENDあいだに書きます. これを関数定義ていぎと呼びます. 呼びだすまえに関数定義をしなければならないことに注意ちゅういしてください.

動作どうさチェックがうまくいったら,関数を呼びだす ruler1cmかずをふやすか,REPEAT 命令で ruler1cm をくり返し呼びだしてみてください. まっすぐな定規にならず,ぐるぐると長方形ちょうほうけいを描いてしまうはずですが,なぜそうなるかよく考えましょう. 理由りゆうがわかったら,くり返し呼びだしたときにまっすぐな定規が描けるように関数定義を修正しゅうせいしましょう.

関数を作るときは,その関数の処理しょりが終わったときにタートルがどこにいて,どちらを向いているようにするのがよいか,注意する必要があることがわかったでしょうか.

ここまでうまくいったらプリンタで印刷して,正確な定規ができたかどうか測ってみるとよいでしょう※4

引数ひきすうを使う関数の作りかた 🔰

たった 1cm の定規ではあまり実用じつようてきとはいえません. 描きたい長さを指定していしたら,その長さの定規を描いてくれる関数にできると便利べんりですね. そこで,定規を描く関数 RULER を作成し,引数として描きたい長さを指定できるようにしてみましょう.

また,目盛めもり間隔かんかくも,もっとこまかいほうが実用的ですが,ぜんぶ同じ長さの目盛ではかぞえにくくなりそうです. そこで,2mm 間隔でみじかい目盛を,1cm 間隔で長い目盛をつける工夫くふうをしてみましょう.

TO cal :L  ;  長さ :L の目盛を描く関数
  LT 90
  FD :L
  PU
  BK :L
  PD
  RT 90
END

TO ruler :N  ;  長さ :N cm の定規を描く関数
  cal 4mm  ;  長い目盛
  REPEAT :N [
    REPEAT 4 [
      FD 2mm
      cal 2mm  ;  短い目盛
    ]
    FD 2mm
    cal 4mm  ;  長い目盛
  ]
END

ruler 5

ちなみに,ある文房具ぶんぼうぐメーカーの定規は,目盛の長さを少しずつ長く描いていき,1cm になると元にもどすことで,さらに読みとりやすくしているそうです. だれにでも使いやすくするための工夫をユニバーサルデザインといいますが,ぜひとり入れてみてください.

うまくできたらプリンタで印刷して,正確な定規ができたかどうか測ってみるとよいでしょう※4