2 初めての言霊タートルプログラミング

2.1 学習目標

2.2 最初のプログラムの解説

タートルグラフィクス環境とは、プログラミング初心者を対象とした教育用プログラミング環境です。

導入編の「サンプルプログラムの使い方」で動かした家を描くサンプルプログラムを解説します。

2.2.1 家を書くサンプルプログラム

下に、導入編で動かした家を描くサンプルプログラムを示します。

ここをクリックすると、以下のプログラムをダウンロードできます。

リスト 2.2.1.1 家.dama
  1: ※プログラム名:家を書くプログラム
  2: ※作成者:岡田 健
  3: ※作成日:2009.11.8
  4: 
  5: ※授業に必要なライブラリを取り込む。
  6: TurtleLibraryを参照する。
  7: 
  8: ※環境を初期化する。
  9: ウィンドウを初期化する。
 10: 亀を新規作成して、亀太郎と名付ける。
 11: ウィンドウに亀太郎を追加する。
 12: 
 13: ※屋根を書く
 14: 亀太郎を30度右に回す。
 15: 亀太郎を50ドット進める。
 16: 亀太郎を120度右に回す。
 17: 亀太郎を50ドット進める。
 18: 亀太郎を120度右に回す。
 19: 亀太郎を50ドット進める。
 20: 
 21: ※本体を書く
 22: 亀太郎を左に90度回す。
 23: 亀太郎を50ドット進める。
 24: 亀太郎を左に90度回す。
 25: 亀太郎を50ドット進める。
 26: 亀太郎を左に90度回す。
 27: 亀太郎を50ドット進める。
 28: 亀太郎を左に90度回す。
 29: 亀太郎を50ドット進める。

2.2.2 プログラムの要素

2.2.2.1 命令

タートルグラフィクスでは、筆を持ったタートル(亀)に命令を与えることで、様々な図形を描くことができます。

上記プログラムにおける「亀太郎を30度右に回転する。」等がタートルに対する命令となります。

書かれた命令は、 必ず上から順番に実行されます。

以下にタートルに指示できる命令の一覧を示します。

<亀の名前>を<数値>度右に回す。
タートルを指定した角度だけ右に回す
<亀の名前>を<数値>度左に回す。
タートルを指定した角度だけ左に回す
<亀の名前>を<数値>ドット進める。
タートルを指定した長さだけ進める
<亀の名前>を<数値>ドット戻す。
タートルを指定した長さだけ後ろに進める
<亀の名前>の筆を無効化する。
タートルがペンを上げる(軌跡がかかれなくなる)。
<亀の名前>の筆を有効化する。
タートルがペンを下げる(軌跡がかかれるようになる)。

 亀の名前は必ず文の初めに書きますが、「左に」「90度」等の語順は自由に記述できます。 また、数値は全角でも半角でも構いません。一つの命令文の最後には、必ず「。(句読点)」を付け、命令の区切りとします。

2.2.2.2 命令の区切り

言霊のプログラムでは文章と文章の区切りに必ず「。」(句点)を入れる必要があります。 これを入れないと、コンピュータがどこで文章が区切られているのか、理解することができません。

ちなみに、句点が入っていれば、複数の命令を次のように同じ行に書いてもOKです。

亀太郎を左に30度回す。亀太郎を50ドット進める。

2.2.2.3 コメント

コメントは、プログラムのメンテナンスや他人が読む時のために、プログラムの各部分がどのような目的で書かれているかを記述したものです。 コメントはプログラム(命令)としては考慮されず、読み飛ばされます。 しかし、人間が読めないとメンテナンスにこまるためにコメントをつけておきます。ファイルの先頭には、プログラムのタイトル、名前や日付を忘れずに。

行コメント
「※」から行の終わりまでコメントになります。「※」は「こめ」を変換すると出て来ます。
範囲指定コメント
言霊では複数行にまたがるコメントは記述出来ません。

2.3 プログラムの作成手順

2.3.1 ファイルの作成

論プロエディタの「ファイル」メニューから「プログラムの新規作成」を選び、 テンプレートは「タートル」を選んでください。

2.4 プログラムミスと対処

2.4.1 コンパイルエラー

プログラムの書きかたを間違えると、コンパイルしたときにエラーになります。

例えば、以下のように命令文に必要な要素(「亀太郎」)が書かれていない等の不備があると、情報ビューのコンパイルエラー表示部にエラーが表示されます。

 コンパイルエラー表示部でエラー箇所をマウスでクリックすると、間違いを探す補助としてソースビューでエラー箇所が色つき強調表示されます。

コンパイルエラーがでたら、実行することはできないので、ソースを直して、再コンパイルするしかありません。 どうしても原因が分からない時は、TAなどに相談してください。

2.4.2 バグ

コンパイルが正常に通っても、プログラムが間違っていて、意図した通りに動作しないことをバグといいます。 コンピュータは、必ず 命令した通りに動作します。

バグがあったら、修正しましょう。バグを修正することをデバッグといいます。

プロでも、最初から意図したプログラムを書くのは難しいものです。 プログラム上達の早道は、一発で動かそうとせずに、 早くバグを見つけて、修正できるようになるようになるように心がけることです。

2.5 タートルを使って好きな図形を書くためのテクニック

2.5.1 曲線が書きたい

コンピュータで本当の曲線は書けませんが、それらしく見せることはできます。 次のプログラムを見てみましょう。

ここをクリックすると、以下のプログラムをダウンロードできます。

リスト 2.5.1.1 カーブ.dama
  1: ※プログラム名:曲線を書くプログラム
  2: ※作成者:岡田 健
  3: ※作成日:2009.11.8
  4: 
  5: ※授業に必要なライブラリを取り込む。
  6: TurtleLibraryを参照する。
  7: 
  8: ※環境を初期化する。
  9: ウィンドウを初期化する。
 10: 亀を新規作成して、亀太郎と名付ける。
 11: ウィンドウに亀太郎を追加する。
 12: 
 13: 整数型を新規作成して、Xと名付ける。
 14: 整数型を新規作成して、Yと名付ける。
 15: 
 16: Xに5を入れる。
 17: Yに5を入れる。
 18: 
 19: 亀太郎をX度右に回す。
 20: 亀太郎をYドット進める。
 21: 亀太郎をX度右に回す。
 22: 亀太郎をYドット進める。
 23: 亀太郎をX度右に回す。
 24: 亀太郎をYドット進める。
 25: 亀太郎をX度右に回す。
 26: 亀太郎をYドット進める。
 27: 亀太郎をX度右に回す。
 28: 亀太郎をYドット進める。
 29: 亀太郎をX度右に回す。
 30: 亀太郎をYドット進める。
 31: 亀太郎をX度右に回す。
 32: 亀太郎をYドット進める。
 33: 亀太郎をX度右に回す。
 34: 亀太郎をYドット進める。
 35: 亀太郎をX度右に回す。
 36: 亀太郎をYドット進める。
 37: 亀太郎をX度右に回す。
 38: 亀太郎をYドット進める。
 39: 
 40: 亀太郎をX度左に回す。
 41: 亀太郎をYドット進める。
 42: 亀太郎をX度左に回す。
 43: 亀太郎をYドット進める。
 44: 亀太郎をX度左に回す。
 45: 亀太郎をYドット進める。
 46: 亀太郎をX度左に回す。
 47: 亀太郎をYドット進める。
 48: 亀太郎をX度左に回す。
 49: 亀太郎をYドット進める。
 50: 亀太郎をX度左に回す。
 51: 亀太郎をYドット進める。
 52: 亀太郎をX度左に回す。
 53: 亀太郎をYドット進める。
 54: 亀太郎をX度左に回す。
 55: 亀太郎をYドット進める。
 56: 亀太郎をX度左に回す。
 57: 亀太郎をYドット進める。
 58: 亀太郎をX度左に回す。
 59: 亀太郎をYドット進める。

5度曲がり、5歩進むことを繰り返しています。

やってみよう

長さと角度を調整して、もっと精密な曲線に近づけてみよう。

実はコンピュータで、"本物"の曲線を書くことはできません。 しかし、上記のように"擬似的"に表現することで、人間の目をごまかすことはできます。 このように擬似的に表現することを「ディジタル」表現といいます。これに対して、紙に書くような本物の曲線を「アナログ」表現といいます。

2.5.2 タートルの最初の位置を変えたい

教育上の理由から、初期位置を変える機能は搭載していません。 最初の位置を変えたいときは、ペンをあげて、好みの位置まで移動するプログラムを書く必要があります。 ちなみに、タートルは最初(100, 100)の座標で、上向きになっています。

2.6 練習問題

2.6.1 問題1:五角形を描こう

「前進する」命令や、「回転する」命令を使って、五角形を描くプログラムを作りましょう。

図 2.6.1.1 五角形

2.6.2 問題2:星を描こう

「前進する」命令や、「回転する」命令を使って、星を描くプログラムを作りましょう。

図 2.6.2.1 星

2.6.3 問題3:好きな図形を描こう

タートルを使って、好きな絵を描くプログラムを作りましょう。

Squeakテキストに載っている図形などを描いてみましょう。(Squeakテキストに載っている図形はこちら