2章 繰り返し
2-1 繰り返し(4回繰り返す)
課題:同じ方向に何度も移動する動きを、なるべく少ないブロック数で作ろう。
ステージ2-1のマップとクリア条件
| クリア条件 | 内容 |
|---|---|
| アイテム | 1個ゲットする |
| ブロック数 | 3個以下 |
| ターン数 | 100ターン以内 |
黄色の枠が自分(Cool)のスタート位置です。すべての条件を同時に満たすとクリアです。
前章では、移動ブロックを進みたい回数だけ並べる方法を学びました。もし「右に100マス進む」という課題が出たら、同じ方法で解けるでしょうか。
💡 考えるヒント
- ツールボックスの中から「〇回繰り返す」のような、繰り返しを表すブロックを探してみましょう。
- 繰り返しブロックには、他のブロックを入れられる「くぼんだ」内側の空間があります。そこに何を入れれば、同じ命令を何度も実行させられるでしょうか。
- 繰り返す回数は、ブロックの数値部分を書き換えるだけで変更できます。
まずは「〇回繰り返す」ブロックを使って、右に4マス進む動きを作ってみましょう。
解答例
解答例を見る
「4回繰り返す」ブロックの内側に「右方向に移動する」ブロックを1つだけ入れると、右に4マス移動する処理になります。同じ命令を何度も書かなくてOKです。
繰り返しがもたらす楽さ
前章の「移動ブロックを並べる」やり方にも間違いはありませんが、もし「右に100マス進む」という課題が出たら、ブロックを100個並べるのはとても大変です。しかも、後から「やっぱり99マスにしたい」と直そうとすると、1個ずつ数えて削除する羽目になります。「繰り返す」ブロックを使えば、数字を1か所(99)に書き換えるだけで済みます。プログラミングでは、「同じことを何度も書く」代わりに「1回書いて繰り返す」という考え方がとても大切です。この考え方は、文字で書くプログラミング言語でも全く同じように登場します。
2-5 繰り返しを繰り返し(ネスト)
課題:『右に2マス→上に2マス』という1セットの動きを、もう一度繰り返して合計2セット分動こう。
ステージ2-5のマップとクリア条件
| クリア条件 | 内容 |
|---|---|
| アイテム | 8個ゲットする |
| ブロック数 | 8個以下 |
| ターン数 | 100ターン以内 |
黄色の枠が自分(Cool)のスタート位置です。すべての条件を同時に満たすとクリアです。
💡 考えるヒント
- 「繰り返す」ブロックの中に、さらに「繰り返す」ブロックを入れることができます。これをネスト(入れ子)と呼びます。
- 『右×2 → 上×2』という1セットをどう表現するか、まず考えてみましょう。それを、外側からもう一度繰り返すには、どんな形にすればよいでしょうか。
- 組み終わったら、いちばん外側のブロックだけをつまんで少しだけ持ち上げてみると、中に入っているブロックが一緒に動くかどうかで、正しく入れ子になっているか確認できます。
自分でネスト構造を組んでみて、実行結果がイメージどおりか確認してから、解答例を見てみましょう。
解答例
解答例を見る
このステージでは『右×2 → 上×2』という1セットの動きを、外側の「2回繰り返す」ブロックでもう一度繰り返しています。つまり「2回繰り返す」ブロックの中に、「右に2回移動」の繰り返しブロックと「上に2回移動」の繰り返しブロックを、この順番で2つ並べて入れる形になります。
注意したいこと
- 外側と内側を取り違える:繰り返しの中に繰り返しを入れるときは、外側と内側のブロックのくぼみを間違えないよう注意しましょう。どのブロックがどの繰り返しの中に入っているか、色や枠の形を目で追いながら組み立てるのがコツです。
- 回数を掛け算し忘れる:「2回繰り返す」の中に「右に2回移動」が入っていると、実際には右に2×2=4マス移動します。「合計何マス動くか」は、外側の回数と内側の回数を掛け算して確認する癖をつけましょう。
- 繰り返しの中身が空のまま実行してしまう:繰り返すブロックだけ置いて、中に何も入れずに実行すると、何も起こらないまま終わってしまいます。エラーは出ないので、意図した動きになっていないときはまず中身が入っているか確認しましょう。
演習問題
- 「右×3 → 下×1」というセットを3回繰り返すには、外側の繰り返しの回数と、内側に入れるブロックはどうなるか考えてみましょう。
- 1-4で作った経路を、繰り返しブロックを使ってブロックの数を減らせないか考えてみましょう(ヒント:全部を1つの繰り返しにまとめる必要はありません)。
発展:繰り返しをやめる条件
ここで使った「〇回繰り返す」は、あらかじめ決まった回数だけ繰り返すブロックです。CHaserには、これとは別に「ずっと繰り返す」ブロックもあります(4章や7章で登場します)。回数が決まっている作業には「〇回繰り返す」を、「ゲームが終わるまでずっと」のように回数が決まっていない作業には「ずっと繰り返す」を、と使い分けるのがポイントです。
付録2への案内:本文で取り上げなかった2-2「繰り返しをつなげよう」、2-3・2-4「繰り返すところを考えよう」を含め、ステージ2の全5課題の解答例を付録2「ステージ2 繰り返し」に掲載しています。特に2-3・2-4は「繰り返しの中に入れるブロックと、外に置くブロック」を見極める練習になるので、本章の内容が身についたか確かめるのに向いています。