プログラミング入門

プログラミング初心者のためのScratch(スクラッチ)入門-何かを真似して作る時の考え方

プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。
Scratchで猫の動かし方はわかったけど・・・次にどんなことをしたらいいの?という疑問にお答えするシリーズです。
なんとなく、Scratchの使い方が分かってきたとしても、いきなりオリジナルゲームを考えて作る!というのはちょっと難しいと思います。
そこで、次のステップとしては、身近なもののアプリや機械、そしてゲーム化できそうなリアルな遊びを真似して作ってみるのがいいと思います。
そこで、今回は身の回りにあるものをScratchで真似する時の考え方を解説します。
 

1. 身の回りにあるちょっとしたプログラムを探してみよう

1-1. スマホアプリを見てみよう

身の回りのアプリ・・・といえば、ずばりスマホが一番身近ではないでしょうか?スマホのアプリを見てみましょう。
 

・カレンダー
・時計(タイマー、ストップウォッチ、アラーム)
・メモ
・電話
・電卓
・地図(Google map)
・天気予報
・メッセージをやりとりするアプリ(LINE, メール, メッセンジャーなど)
・SNS
 
などなどよく使うアプリはたくさんありますね。これらの中から、自分で作れそうなものを考えてみるのもいいでしょう。
 

1-2. 身の回りにあるちょっとした「機械」をみてみよう

次は、「機械」について考えてみましょう。身の回りにはどんな機械があるでしょうか?
 

<家の中>
・キッチンタイマー
・冷蔵庫
・ロボット掃除機
・AIスピーカー
・お風呂を沸かしてくれる給湯器
・ゲーム機
<家の外>
・信号機
・自動販売機
・某携帯電話ショップの接客ロボット
・両替機
・UFOキャッチャー
・アーケードゲーム
 
などなど、自分の家になくても売っていそうなものも考えてみましょう。機械そのものはScratchでは作ることはできませんが、
絵を書いてアニメーションで機械の動きを表現するといいでしょう。
 

1-3. リアルなゲーム化できそうなものを探そう

プログラミングというと、既存のコンピューターゲームを真似しよう!と発想しがちですが、リアルな遊びもScratchで作ってみるのも面白いかもしれません。
 
<遊び>
・鬼ごっこ(高鬼、氷鬼)
・ダルマさんがころんだ
・あやとり
・ゴム跳び
・じゃんけん
・缶けり
<お祭り・イベント>
・射的
・金魚すくい
・魚釣り
・くじ引き
・運動会
・フリーマーケット
 
お祭りなどは、すぐにできるゲーム的な要素満載のお店がたくさん!それらをプログラムでゲームっぽくするのは楽しそうです。
 

2. 作るものを選ぼう

いろいろなアイデアを洗い出したら、Scratchで作れそうなものを選んでいきましょう。ある程度、ITの知識がある方なら選び方は感覚でわかると思います。
ですが、意外と子どもはこのあたりが分かっていないようです。Scratchで何でも作れると思っているお子さんも多いので、情報を整理して伝えてあげてくださいね。
以下のようなものがScratchで作りやすいです。
 
 ・短い
 ・動きが決まっている
 ・たくさんの情報を持たない
 ・他の情報にアクセスしない
 
作りにくいものの一例としては「天気予報」「メッセンジャー」のようなアプリです。
天気予報は、天気予報の情報にアクセスしないといけませんね。またメッセンジャーアプリのように、他の人と通信するものはScratchでは作れません。
また写真アプリなど、情報を貯めるようなこともScratchは苦手です。
 
作りやすいものの例としては「時計」「自動販売機」などある程度、操作や動きが少ないものがおすすめです。
時計は「今の時間を表示させる」だけですし、自動販売機も「お金を入れる」→「商品が出てくる」→「お釣りがでてくる」といった感じで
比較的簡単な機能だけでできています。
(ただし、絵の準備はちょっと大変ですね。)
 

3. 動きを分析しよう

作ってみたいモノを決めたら、そのモノの動きや機能を分析しましょう。
そのモノはどんな時、どんな動きをするのか?そのモノを動かすにはどんな他のモノが出てくるのか?など一つ一つに分解して考える癖をつけましょう。
大人には簡単ですが、お子さんにはちょっと難しい作業です。
 
何からできてる?を考えるのが難しそうなお子さんであれば、ぜひ大人が関わって一人で考えられるようになるまで関わってあげて欲しいと思います。
今回は「自動販売機」を例にとって考えてみたいと思います。
まずは自動販売機の「機能」と人間がやることを、ざっくり箇条書きにしてみましょう。
 
・お金を入れる(人間)
・入ってきたお金を数える(自動販売機)
・入ってきたお金より安い商品のボタンのランプを点灯させる(自動販売機)
・買いたい商品のボタンを押す(人間)
・商品を出す(自動販売機)
・お釣りがあれば、お釣りを出す(自動販売機)
・商品とお釣りを受け取る(人間)
 
余裕があれば、フローチャートを考えてみてもいいですね。子どもたちに教える時は正確さよりも分かりやすさ重視で、ざっくりかけばいいと思います。
また、さらに情報を整理するために、業務フローのように誰が何をするか?ということも整理できるといいと思います。
「誰が?」を整理しておくことは、スプライトごとにプログラムを作るScratchではとても大事です。
▼イメージ

4. プログラムの仕様を考えよう

だいたいの動きが整理できたら、箇条書きした動きやフローチャート・業務フローなどを、どのようなプログラムにするかを考えましょう。
これをプログラムの「仕様」といいます。
 
フローチャートがあまりにも複雑すぎるようであれば、複雑そうなところは省きます。
 初心者の子ども達にとって、もっとも大切なのは「一つの作品を作り上げられた!」という達成感です。正確さや複雑さは後でも大丈夫。まずは作れたという体験を重視できるようなプログラムを考えて欲しいと思います。
今回はすごく簡単な自動販売機プログラムを考えてみました。
 
▼自動販売機プログラムの仕様

・スプライトは「自動販売機」「ジュース」「100円玉」の3つ
・100円玉をクリックすると、自動販売機の中に100円玉が入る
・100円玉が入った後に、商品購入ボタンが点灯
・自動販売機をクリックすると、ジュースが出てくる

 
先ほどの、フローチャートから変えたのは「人間」の代わりに「100円玉」をスプライトとして扱うことにした点です。登場するモノ(人間、お金、ジュース、自動販売機・・・)が増えれば増えるほどプログラムが複雑になるので、簡単に表現する方法を考えましょう。
また、お釣り機能をつけるとプログラムが大変になりそうなので、今回は省略しました。
 

5. 実際に作ってみよう

Scratchでは絵を使うので、スプライトを描く作業、もしくは素材をインターネット上から探す作業から順番に始めましょう。
この時、もしお子さんが一人で作れなそうであれば、動きやストーリーを一緒に考え、その後でプログラムする内容、順番を分解してあげましょう。
 
▼自動販売機プログラムの作り方

手順1. スプライトを3つ作ります。
  (1)自動販売機:コスチュームは2つ(商品購入ボタンが点灯している・いない)
  (2)ジュース
  (3)100円玉

手順2. スプライトの大きさと場所、表示する(隠す)を決めるプログラムをそれぞれ作ります
  (1)自動販売機:画面の右側に大きく
  (2)ジュース:最初は隠しておく
  (3)100円玉:最初は表示しておく

手順2. 100円玉がクリックされた時、自動販売機に向かって動きます。
手順3. 自動販売機に触れたら、100円玉は見えなくなります。
手順4. 自動販売機は100円玉に触れると、商品購入ボタンが点灯します。
手順5. 自動販売機がクリックされた後、商品が出てきます。

 
サンプルプログラムです。

https://scratch.mit.edu/projects/225917939/

6. まとめ

今回は、身の回りにあるアプリや機械を参考にScratchで作品を作る方法をご紹介しました。
機械の動きはアニメーションで作ればOKなので、楽しい作品がたくさん作れると思います!
お掃除ロボットや、時計、タイマーなど身近なものをプログラミングしてみてください。きっと、その仕組みがわかってくると思います。
また、「こんな機能があったらいいな」と新しいアイデアが湧いてきたら、ぜひ追加機能も作ってみてください。
もしかしたらあっと驚くような作品が作れるかもしれません。

伴野悠佳 / YUKA TOMONO
この記事の著者伴野悠佳 / YUKA TOMONO
教育ヲタクの1児の母。自称ニコニコキッズクリエーター。東京理科大学大学院卒。元SE。小学生の頃から教育書を読んでいた教育ヲタク。大学では、電池の素材の性質について実験とコンピューターシミュレーションを比較する研究を行っていたことがきっかけでSEになる。出産&育休後、子ども向けプログラミング教室講師、子どもたちの考える力を育てるオンライン塾の講師。