今回は、MinecraftとScratch3.0を使って多重ループを学んでいきます!
普通にループを1つしか使わない場合、ブロックで線を作ることが限界ですが、多重ループを駆使すれば面を作ったり、立体を作ったりすることが可能になります!
多重ループは、ループ処理がどのようなものか理解している前提で話を進めていきます。
もし繰り返し(ループ)ってなに?と思われている方がいれば、「MinecraftとScratch3.0を使って繰り返し(ループ)を学習しよう!」を先に見ていただけるといいかなと思います。

まだ、MinecraftとScratch3.0を繋げたことがない方は、「マイクラ購入方法(java版)からScratch3.0と連携するまでを画像を使って簡単解説!」を参考にしてMinecraftとScratch3.0を接続できるようにしておいてください!
MinecraftとScratch3.0を使ったプログラミング学習の記事は、他にも書いていますので、プログラミングの勉強は何をやればいいかわからない。。。という方はぜひ参考にして見てください!
Minecraftで何を建築するか迷ったら、Kindle Unlimitedがおすすめ!
Minecraftの建築のアイデア集などもたくさん読めるのでぜひ参考にしてみてください!

こんな本も読み放題じゃ!!




多重ループとは?
多重ループとは、文字通りではあるのですが、ループ処理の中でループ処理をすることを指します!
多重ループは、2重ループ、3重ループ、4重ループ…とあります。
お仕事で使うような場合でも、3重ループ以上を使うことはあまり見かけることはありません。
基本的には、2重ループをしっかり勉強しておけば問題ないと思います!
例えば2重ループの場合、外ループで10回、内ループで10回繰り返しでブロックを置く動作をした場合、合計で100個のブロックを置くことが可能になります!
しかも内ループで線を作ってその線を外ループで10回ループさせるので、面を作ることが可能になります。
難しい話はこの辺にして、実際に動かして体験していきましょう!
水平面(床)をプログラミングで作ろう!
まずは、水平面をプログラミングで作成していきます!
MinecraftとScratch3.0の繋げ方は説明は省きますので、もしMinecraftの起動方法やScratch3.0の繋ぎ方が分からなければ、「MinecraftとScratch3.0を使って繰り返し(ループ)を学習しよう!」を参考にしてください。



建築の基礎になるからしっかり覚えよう!
水平面を作るプログラムの処理をイメージしよう!
まずは、どのようなプログラムを作ればいいかイメージしていきましょう!
文字で書くとこんな感じです!
- (カウント)を10にする
- (カウント2)を10にする
- (カウント2)回繰り返す-開始
- (カウント)回繰り返す-開始
- 石を(x,y,z)=(カウント,0,カウント2)に置く
- カウントを(-1)する
- (カウント)回繰り返す-終了
- カウントを(10)に戻す
- カウント2を(-1)する
- (カウント)回繰り返す-開始
- (カウント)回繰り返す-終了
内ループ(黄色のマーカー)がやっていることは、ブロックを横に10個並べて置くという処理です。
マイクラで見るとこんな感じ!


外側のループ(赤色のマーカー)は何をしているかというと、内ループで作ったブロックを横に10個並べて置くという処理を、10回前方向にやっていく処理になっています。
マイクラで見るとこんな感じで、さっきのブロックの線が10個並んで面になっていることがわかると思います!


今回はこれをScratchでプログラミングしていきます!!
Scratchでプログラミングしていこう!
まずは、内ループの処理を作っていきます!
ここの処理に関しては、「MinecraftとScratch3.0を使って繰り返し(ループ)を学習しよう!」で詳しく紹介していますので、今回は詳しい内容を省略します。


これを緑の旗をクリックして実行すると、マイクラではこんな感じになります!


これが確認できれば、内ループは完成です!
続いては、外ループを作成していきます。
カウント2という変数を使いますが、変数の作り方は「MinecraftとScratch3.0を使って繰り返し(ループ)を学習しよう!」で解説していますので、詳細は省略します。変数の作り方が分からない方は過去記事を参考にして作ってください!
先ほど考えた処理を、見ながらまずはご自身でやってみましょう!
- (カウント)を10にする
- (カウント2)を10にする
- (カウント2)回繰り返す-開始
- (カウント)回繰り返す-開始
- ブロックを(x,y,z)=(カウント,0,カウント2)に置く
- カウントを(-1)する
- (カウント)回繰り返す-終了
- カウントを(10)に戻す
- カウント2を(-1)する
- (カウント)回繰り返す-開始
- (カウント)回繰り返す-終了
処理をScratchでプログラミングするとこんな感じになります!
使うブロックは、今まで習ったブロックだけですね。
石を置くブロックの(x,y,z)=(カウント,0,カウント2)になっていることに注意しましょう!


- ポイント1
-
カウント2回繰り返すの中に内ループを入れることで2重ループになっている!
- ポイント2
-
外ループを1回やる毎にカウントを10に戻してあげる必要がある!
ループをマスターしていれば、こんなものかって感じですよね!
これができたら緑の旗をクリックして、マイクラを見てみましょう!


こんな感じで水平面が作成できていれば、水平面を作るプログラムは完成です!
垂直面(壁-XY)をプログラミングしていこう!
先ほどは地面に水平な平面を作成しましたが、建築をする上では縦方向にブロックを並べて壁を作りたいことも多いと思います!
なので、次は壁を作るプログラムを作成していきましょう!
壁を作るプログラムの処理をイメージしよう!
まずは、どのようなプログラムを作ればいいかイメージしていきましょう!
基本的には、先ほどと同じで2重ループを使っていくことになります。
違いは、石を置く場所が「(カウント,カウント2,0)」に変わるということだけです!
- (カウント)を10にする
- (カウント2)を10にする
- (カウント2)回繰り返す-開始
- (カウント)回繰り返す-開始
- ブロックを(x,y,z)=(カウント,カウント2,0)に置く
- カウントを(-1)する
- (カウント)回繰り返す-終了
- カウントを(10)に戻す
- カウント2を(-1)する
- (カウント)回繰り返す-開始
- (カウント)回繰り返す-終了
マイクラでできるイメージはこんな感じです!
今回は石ブロックだと味気ないので、みんな大好きTNTを使っていきましょう!笑


それではイメージができたところで、Scratchでプログラミングをしていきます!
Scratchでプログラミングしていこう!
いきなりScratchでプログラミングした結果を載せますが、まずはご自身で考えてプログラムを作成して見てください!
答え合わせや、全く分からないとなってから、続きを見ていただけると勉強になると思います!
TNTは、画像のようにマイクラミングの中にありますので、そこから取ってきてもらえればいいと思います。(TNTじゃなくても好きなブロックで作ってみてね!)


- ポイント1
-
カウント2をy座標に移動させる!
先ほどの水平面を作るプログラムと比較すると、カウント2をzからyに移動させただけですね。
これで実行といきたいところですが、先ほど作った水平面を一旦リセットしましょう!
Scratch3.0改には、リセットするのに便利な「周囲をリセット」ブロックがあります!
「周囲をリセット」ブロックを画像のように置いてもらって、一回クリックしてください!
ピカッっとなれば実行できています!


そうすると、さっきの水平面がリセットされてフラットな状態に戻ります!


この状態で緑の旗を押して、マイクラに戻りましょう!
恐ろしいTNTの壁が出現しましたね!



爆発させたらダメじゃぞ!


垂直面(壁-YZ)をプログラミングしていこう!
先ほど作ったTNTの壁に垂直になるように新しいTNTの壁を作るプログラムを作成していきましょう!
処理自体はほとんど変わらないので、座標を考えながら作業をするといいと思います!
壁を作るプログラムの処理をイメージしよう!
毎回のことですが、どのようなプログラムを作ればいいかイメージしていきましょう!
基本的には、先ほどと同じ処理でカウントで数字を変化させる座標を変えるイメージです!。
違いは、石を置く場所が「(0,カウント2,カウント)」に変わるということだけです!
- (カウント)を10にする
- (カウント2)を10にする
- (カウント2)回繰り返す-開始
- (カウント)回繰り返す-開始
- ブロックを(x,y,z)=(0,カウント2,カウント)に置く
- カウントを(-1)する
- (カウント)回繰り返す-終了
- カウントを(10)に戻す
- カウント2を(-1)する
- (カウント)回繰り返す-開始
- (カウント)回繰り返す-終了
マイクラでできるイメージはこんな感じです!
これができれば、家とかも作れそうですよね!


それではイメージができたところで、Scratchでプログラミングをしていきます!
Scratchでプログラミングしていこう!
こちらもまずはご自身でプログラミングして見てください!
カウントをx→zに移動しているので、内ループのブロックを並べる方向を変えているイメージを持ってもらえるといいと思います。


- ポイント1
-
カウントをz座標に移動させる!
緑の旗を押して、マイクラに戻りましょう!
先ほどの壁に対して垂直な壁を作ることができましたね!


階段をプログラミングで作ろう!
最後に、階段をプログラミングで作っていきます!
階段とは言いましたが、屋根にもなりますし、他にも建築で使うことが多々ある形です。
基本的な処理は先ほどと何も変わらないので、今までのプログラミングがちゃんと理解できているかチェックするために、処理のイメージも1から考えてみるといいかもしれません。
水平面を作るプログラムの処理をイメージしよう!
毎回毎回ですが、どのようなプログラムを作ればいいかイメージしていきましょう!
今回も2重ループを使うのは同じですね!
違いは、(カウント,カウント,カウント2)の部分になってますが、先ほどまではどこかの座標に0が入っていたため、平面になっていましたが、全てを変数で埋めることで動きのあるものが作ることができることになります!
図で見るとわかりやすいと思いますが、ループ回数が増えるたびにX,Yの値が同時に減っていくので階段になるイメージです!


処理を文字で書くとこんな感じ!
- (カウント)を10にする
- (カウント2)を10にする
- (カウント2)回繰り返す-開始
- (カウント)回繰り返す-開始
- 石を(x,y,z)=(カウント,カウント,カウント2)に置く
- カウントを(-1)する
- (カウント)回繰り返す-終了
- カウントを(10)に戻す
- カウント2を(-1)する
- (カウント)回繰り返す-開始
- (カウント)回繰り返す-終了
内ループ(黄色のマーカー)がやっていることは、ブロックを斜めに10個並べて置くという処理です。
平面の処理と何も変わりませんね、座標が変わったぐらいです。


外側のループも平面を作る時と何も変わりません。
座標というものを変数で変えてあげることで、水平にも階段にもなるということです!
今回作るイメージはこんな感じになります!


イメージが掴めたところで、実際にプログラミングしていきましょう!
Scratchでプログラミングしていこう!
まずは、内ループの処理を作っていきます!
ここの処理に関しても、「繰り返し(ループ)で斜めにブロックを置くプログラムを作ろう!」で詳しく紹介していますので、今回は詳しい内容を省略します。




- ポイント1
-
XとYをカウントにしてループする毎に1ずつ座標を変えてあげる!
これを緑の旗をクリックして実行すると、マイクラではこんな感じになります!


これで内側のループは完成ですね!
続いては外側のループですが、内側のループを繰り返すというものなので、水平面を作った時と違いはありません。


これができたら緑の旗をクリックして、マイクラを見てみましょう!


こんな感じで階段が作成できていれば、完了です!
ここまできたら、自分の作りたいものが作れるようになっていると思うので、ぜひ作りたいものを作って見てください!
MinecraftとScratch3.0でプログラミングを勉強するための記事を用意しています!
今回は、今回は中級編ということで、多重ループを使って平面や階段を作っていきました!
多重ループをマスターしたら、建築の幅がかなり広がりますので、しっかり理解しておくといいと思います!
MinecraftとScratch3.0でプログラミングを勉強するための記事は他にも用意していますので、ぜひ参考にしてもらえると嬉しいです!
Minecraftで何を建築するか迷ったら、Kindle Unlimitedがおすすめ!
Minecraftの建築のアイデア集などもたくさん読めるのでぜひ参考にしてみてください!



こんな本も読み放題じゃ!!







色々建築してみるんじゃぞ!