こんにちは!スタッフのKです。

 前回考えてみた課題の回答です。課題はこちらに掲載しています。([レビュー]Scratch -MIT Media Lab (2) )

 答えは以下の通りになります。Scratchの「〇歩動かす」というブロックは処理が1回だけですので、「100歩動かす」は100歩先まで瞬時に移動してしまいます。一方、同じ100歩を表現するには、「1歩を100回繰り返す」という考え方があります。この方法であれば処理を100回行いますので、動作ひとつひとつがコマになるため、それらが繋がることによってなめらかな動きを作り出すことができます。これは実際にやってみなければ気づかないことですが、プログラミングをやる上ではこのような細かい違いを発見し、解決策を考える作業が重要です。いかがでしょうか。正直言って、めんどくさいと思います。(笑)

 実際のプログラミングではこのようなめんどくさい書き方を簡素化してくれるコードもありますが、Scratchではどのような仕組みでプログラミングが行われているのかを学ぶことに重きが置かれています。最低限のプログラミングのみでキャラクターを動かして遊んでいたScratch jrとは異なって、より頭を使いながらながら命令を考える必要があるという点でワンランク上の学習ツールであると言えるでしょう。

いろいろな条件分岐

 Scratch jrの条件分岐に「もし、キャラクター同士がぶつかったら~」というものがありました。例えば、ネコがシロクマにぶつかったらネコが「hi」と言う命令を作りたいと思います。これは、Scratchjrで表すとこのようになります。


 それでは、Scratchではどのように表現すればよいのでしょうか。いろいろな方法が浮かびますが、一例を挙げると以下のようになります。Scratchでは、「もし~なら」というブロックの中に条件のブロックを埋め込むようにして、条件分岐を作ります。また、「もし~なら~でなければ~」というブロックもあるように、より複雑な条件分岐も作ることができます。

 Scratchでは、このようにしてScratch jrではできなかった動作や命令ができるようになり、より自分の思い通りにキャラクターたちを動かすことができます。さらに、複雑な組み合わせも可能になることで、子どもたちも自然と頭を使うようになると考えられます。3回にわたってScratchをご紹介しましたが、これらはまだほんの一部ですので、ぜひ、実際にやってみてください。