前回、地面を掘りながらTurtleを前進させるというプログラムを作成しました。
前回の記事
プログラムの内容は以下の内容でした。
turtle.digDown() turtle.forward() turtle.digDown() turtle.forward() turtle.digDown() turtle.forward()
上記の命令は歩きながら地面を掘る行動を3歩分行う命令ですが、今回は繰り返す行動をスマートに書くやり方にチャレンジしたいと思います!
繰り返し行動をスマートに書くプログラム
前回同様、editという命令を使ってテキストを作っていきます。
以下のように「edit loop_dig」と入力して下さい。
次に以下のように命令を書きます。
for i=1,5 do turtle.digDown() turtle.forward() end
命令が書けましたら、プログラムを実行させてみましょう。
内容について解説しますと、これは「for i=1,5 do」と「end」に挟まれた2つの命令を繰り返すという意味になります。
繰り返す回数は「i=1,5」という記述がポイントで、1という数値からスタートし、その数値を繰り返す度に1ずつ加算し、5より大きくなるまで繰り返すという意味になります。
分かりづらいのでどんな順序で処理されているのか書いてみます。
- 1という数値からスタート
- turtle.dugDown()
- turtle.forward()
- +1して2になる
- turtle.dugDown()
- turtle.forward()
- +1して3になる
- turtle.dugDown()
- turtle.forward()
- +1して4になる
- turtle.dugDown()
- turtle.forward()
- +1して5になる
- turtle.dugDown()
- turtle.forward()
- +1して6になる -> 5を超えたので繰り返し終了
と、いうような処理になります。
ここで着目してほしいのは、上の処理の中で「turtle.digDown()」と「turtle.forward()」の命令が何回出てきたかという点です。
数えてみると、5回命令が出てきていることが分かります。
つまり、「for i=1,5 do」という命令を「for i=1,10 do」と書き換えると10回繰り返すことになりますし、「for i=1,30 do」と書き換えると30回繰り返すことになります。
・・・どうでしょう、前回よりも繰り返す処理を書くのが楽になりましたよね?
(書き方の工夫は必要になりましたが・・・)
このテクニックを使うと、ぐるっと円を描きながら地面を掘る動きをさせることも出来ます!
円を描きながら地面を掘るプログラム
editという命令を使ってテキストを作っていきます。
以下のように「edit circle_dig」と入力して下さい。
次に以下のように命令を書きます。
for i=1,4 do turtle.digDown() turtle.forward() turtle.digDown() turtle.forward() turtle.turnRight() end
「turtle.turnRight()」という命令は右を向くという意味になります。
では、作成したプログラムを実行させてみましょう。
すると、円状に穴が出来上がったのが確認出来ました!
この処理についてもどんな順序で実行されたのか書いてみます。
- 1という数値からスタート
- turtle.dugDown()
- turtle.forward()
- turtle.dugDown()
- turtle.forward()
- turtle.turnRignt() -> 右を向く
- +1して2になる
- turtle.dugDown()
- turtle.forward()
- turtle.dugDown()
- turtle.forward()
- turtle.turnRignt() -> 右を向く
- +1して3になる
- turtle.dugDown()
- turtle.forward()
- turtle.dugDown()
- turtle.forward()
- turtle.turnRignt() -> 右を向く
- +1して4になる
- turtle.dugDown()
- turtle.forward()
- turtle.dugDown()
- turtle.forward()
- turtle.turnRignt() -> 右を向く
- +1して5になる -> 4を超えたので繰り返し終了
と、いうような処理になります。
まとめ
如何でしたでしょうか?
繰り返しという処理を上手く使えば便利なプログラムが作れます。
Turtleには色んな命令が出来ます。
Turtleの命令集が以下のサイトにありますので、そちらを参考に是非色んなプログラム作りにチャレンジしてみて下さい!