こんにちは、エイドのミチノリです。今日は子供向けビジュアルプログラミング言語Scratch(スクラッチ)で作るサンプルプログラムについて書きたいと思います。

 
沖縄市にあるプログラミング教室「エイド IT.KIDS」では、何でも教材にしてプログラミング学習をしていますが、プログラミングの基本を学習するために特に多く使用しているのがScratch(スクラッチ)です。授業ではScratch(スクラッチ)を使ってゲームを作りながらプログラミングの基本を学びますが、そこで作るゲームのサンプルは全て私が考えています。

例えば、上の画像は消費税率10%と軽減税率8%をテーマに考えてみたサンプルです。登録ボタンを押すと、リストの中に3つの商品(商品名、価格、食品なのか(yes or no))を登録することが出来て、会計ボタンを押して商品を選択すると、食品として登録した商品は8%の税率で計算されて、そうではない商品は10%で計算されます。変数も多く使いますし、リストへの登録や、登録された商品をどう判断するか等、考える事が満載になります。
 
話が長くなってしまいましたが、子どもたちに「消費税を計算するプログラムを作ってみよう!」と言ってみると、ほとんどの生徒が「嫌です!」と言います・・・。

残念な事ですが(笑)、ゲームを作る事で「プログラミング=遊びながら自然と学習する」という感覚から、一気に「算数(数学)のお勉強」という気持ちになってしまうようです。
 
中学生の場合なら、上記のテーマでも学習可能ですが、小学生の場合はまだまだ「遊びと楽しさ」を全面に押し出す必要があるので、サンプルで作るゲームもかなり見て分かりやすく、動きのあるモノとなっていきます。

 

ということで、実際に小学生クラス向けに考えてみたゲーム(サンプルプログラム)をご紹介したいと思います。
 

このゲームは、猫が前から突進してくるハリネズミをジャンプで避けながら、風船まで行けばゴールとなります。消費税率の計算に比べるとかなりシンプルになっていると思います。(笑)

猫のプログラムがこちらです。左側から「ジャンプをする動き」、「ジャンプ中に回転しながら少しずつ前に進む動き」、「ハリネズミに触れたらゲームがストップする動き」に分かれています。
 
旗が押されたら猫の大きさ、座標の位置、体の向きをしていし、上向きの矢印キーが押されたら座標の位置を変えてジャンプをしているように見せます。「ジャンプの変数」によってジャンプした数もカウントされるようになっています。
 
「上向き矢印キーが押された時」というブロックも使って、回転しながらX座標を1ずつ変える動きを別に分ける事で、作り方をシンプルにしつつ、逐次処理される命令と、並列で実行される命令についても説明をします。
 

こちらはハリネズミのプログラムです。旗が押されたら、大きさを変えて、座標の位置を指定し、体の向きを指定します。スクラッチでは基本的に各キャラクター(スプライト)が右向き(90度)になっているのがデフォルトなので、左向き(-90度)に変えています。

そして、自分自身のクローンを1秒感覚で作り、そのクローンたちは、X座標が-240の位置になるまで全身し続けて、所定の位置になったら削除されます。

30回繰り返すのブロックの数値を変える事でクローンの数が変わりますし、「○歩動かす」の部分であえて変数を使って数値を指定する事で、変数の使い方についても説明をします。

変数で速さを指定する事で、「ハリネズミの速さをランダムに変える」というカスタマイズが出来る可能性もあります。

 

こちらは風船のプログラムです。かなりシンプルにしてあります。
 
旗が押されたら座標を指定し、猫(Sprite1)に触れたらゴールと2秒言った後に全てを止めます。
 
ここまでが今回作成してみたゲーム(サンプルプログラム)の基本的な構成です。これぐらいの内容であれば、30~60分あれば、殆どの生徒が自分でプログラムを組み合わせて作る事が出来ます。

ある程度、スクラッチのプログラミングを理解している生徒の場合は、ここからカスタマイズをしてもらいます。

 

カスタマイズの例として、先程は無かった「もし風船に触れたら1秒で座標を変える」というプログラムを追加してみます。「もし~なら」の下に追加します。
 

風船のプログラムにも、「1秒で座標を変える」ブロックを「Sprite1に触れたまで待つ」の下に追加します。これで猫が風船に触れたら、画面の上の方にプカーっと移動する動きが加わります。サンプルプログラムを作った後に、自分自身でカスタマイズ出来るのもScratchで行うプログラミング学習の楽しさです。

「消費税率の計算」よりも「風船を目指すゲーム」の方が、ゲームとして分かりやすく、かつ楽しさが増しているので、中学生以下の子どもたちも「嫌です!」とは言いません。(笑)

今回ご紹介したサンプルプログラムも、ここから更に生徒の習熟度に応じて簡単にしていきます。いかに子どもたちが楽しくプログラミング学習を続けていけるかを考える事が、私の楽しみでもあるので、今後もあの手この手で、飽きのこないプログラミング教室になるように頑張りたいと思います。