タートルで作ってみよう!マイクラプログラミング【WHILE文編】




こんにちは、プロクラスの和方です!
マイクラプログラミング塾では「Minecraft Forge」というMOD(拡張機能)を使用して、ロボットにいろいろな物を作らせる授業も行なっています。
自分の手ではなくロボットにプログラムを覚えさせることで、好きな形を何個でも作ることができます。
現実の世界でもロボットによる作業の効率化はますます広がりを見せていますが、まさにマイクラの世界でもそんな体験をすることができそうですね。

今回は”WHILE文”(WHILEは〜する間にという意味があります)を使って、「前にブロックがあったら止まる」という機能を作ってみましょう。
REPで回数を指定して繰り返しを行うのと違い、WHILEには「ある条件を満たしている間は動き続ける」という特徴があります。

言葉だけではわかりづらいところもあるので、実際にプログラムをみながら動きを確認していきましょう!

手順は以下の通りです

手順は以下の通りです
1.条件を決めてくりかえそう!
2.前に進んでブロックの前で止まったら完成!

1.条件を決めてくりかえそう!


まずはWHILEに必要な条件を決めましょう。(A)
[WHILE]パネルと[DO]で条件をはさみ、[END]で終了します。
[DO]と[END]はREP文でも出てくる形ですね。
WHILEは「〜する間」という意味なので、条件を満たしている間は[END]までの処理を繰り返すことになります。

次に条件を決めます。(B)
ここが少し厄介ですが、頑張ってついてきてください!

左から
・DETECT…前にブロックがあるか調べる
・=…右と左が正しい
・FALSE…間違っている
というパネルが並んでいます。

これを文章としてまとめると、「前にブロックがある=間違っている」となります。
もう少しわかりやすくすると、「前にブロックがない」になります。

先ほども書いた通り、WHILEは「〜する間」という意味なので、全てつなげると「前にブロックがない間」は処理を繰り返すという意味になります。
つまりこのWHILE文は“前にブロックがない間は繰り返す”プログラムとなります。

2.前に進んでブロックの前で止まったら完成!

1で作ったWHILE文の中に、前に進む処理を入れます。(A)
タートルの進む方向にブロックを置いてから、プログラムを実行してみます。
ブロックの前でタートルがストップしたら成功です!


いかがでしたでしょうか?
WHILEの基本をわかりやすく理解するのに有効な形と言えます。
プログラミングを使ってまだまだ色々なことができますので、楽しく学びながら自由に試してみてください!