初心者OK!こどもプログラミング入門(Scratch)

子ども向けプログラミング学習の定番「Scratch」の使い方。我が子(小学1年)の初挑戦記録付き。

会話のタイミングに悩む小学生、試行錯誤で解決を目指す

 

f:id:shufufu:20170315100909j:plain

 

初回のプログラム体験の翌日、今日もプログラミングをしたいと申し出てきたP子。

にゃこたろうの背景、なんか変だなって気がしてきて、直してあげたいんだよ…

 

こちらの謎の背景、冷静に見たら小1でもおかしいと思ったようです。

f:id:shufufu:20170313140332j:plain

 

お花畑でテイストの違う犬と絡む「にゃこたろう」

本人が希望した背景の変更のついでに、新しいキャラクターを入れてみたら?ということで、前回の記事で書いたスプライトの追加方法を伝授。

今回最終的に作成されたのは、こんな具合のお話です。

f:id:shufufu:20170315101348j:plain

f:id:shufufu:20170315101353j:plain

f:id:shufufu:20170315101400j:plain

f:id:shufufu:20170315101406j:plain

f:id:shufufu:20170315101419j:plain

f:id:shufufu:20170315101426j:plain

f:id:shufufu:20170315101434j:plain

f:id:shufufu:20170315101439j:plain

最後は猛ダッシュで舞台からハケるという、P子お気に入りのエンディングは健在。

 

難関に挑む娘、独自のアイデアも子どもらしい

上で紹介した完成系の流れを目指し、ダイニングテーブルに陣取りScratch(スクラッチ)と格闘するP子。夕飯を作りながら横目で見ていたので、とりあえず母からのアドバイスはなし。

しゃべるの遅いーー

という発言から察するに、思い通りのタイミングで会話がやり取りできないことに頭を悩ませている様子。

それもそのはず…。

 

悩みの原因はスプライトが増えたこと

P子がこのとき持っていた知識では、スクリプトを実行するには一番上のブロックをクリックする必要があるわけですが、これまでと違いキャラは2匹。

スクリプトはキャラそれぞれに別の画面で作成しているため、ネコのスクリプトを表示している間は犬のスクリプトは見えず、犬のスクリプトを表示すればネコの方は見えないのです。これは厳しい。

 

自分なりの解決方法を編み出す姿勢は◎

そんな悪条件の中、なんとか会話のキャッチボールをさせたいと、ネコのスクリプトを実行させたら急いで犬に切り替えて…と、自分の動きの高速化で対処しようとがんばるP子。

しかしそれではどうしても切り替えが間に合わず、犬が動き出す前に独り言状態のネコが通り過ぎてしまうと気づいた後、犬のセリフの表示秒数を「30秒」に伸ばす。

犬の実行を先に行い、30秒間セリフを言い続けている間にネコの方の実行の指示を出すという作戦です。

けれど今度は犬がずっと同じ発言、彼女の望む会話のやり取りにはならない。

犬のセリフ秒数を短くしたり、ネコの方に「待つ」の指示を入れてみたりと、試行錯誤を繰り返す。

 

結論を言うと、彼女だけではこの問題は解決できなかったのですが、「アイデアを実行し、失敗の原因を自分なり予測、それを解消するための手段を試す」という作業をかなりの集中力でこなしたことは確か。

小学校におけるプログラミング必修化の真の目的とされている「プログラミング的思考の育成」は、瞬間的には達成していたように思えます。

 

母の助太刀でステップアップ

P子を悩ませていた会話のやり取りをさせるには、スクリプト実行のためのブロックを使い、犬とネコのスクリプトが同時に実行されるようにすればOK。

これさえ知っていれば、P子にもやりようがあったと思われます。

そこでスクリプトの実行タイミングもブロックで指示できることを伝え、今回の場合であれば、画面の上部にある「緑の旗がクリックされたとき」にスクリプトが実行されるという指示のブロックを、犬とネコの両方に入れるとよいことをアドバイス。

f:id:shufufu:20170315102618j:plain

 

たったこれだけのことで、彼女が手動でなんとかしようと長いこと時間を費やしていた「2キャラを同時に動かす」が完成。

あとはタイミングが合うように、セリフの表示秒数や「待つ」秒数を調節すればOKです。

 

それぞれのスクリプトをチェック

悪戦苦闘の結果、娘が作り上げた今回のプログラム。ネコの方、にゃこたろうのスクリプトはこちら。前回マスターした方法で、セリフを言わせたり、歩かせたりしています。

f:id:shufufu:20170315102114j:plain

 

対してこちらは新キャラ「ラグ」のスクリプト。にゃこたろうの方を向かせたいと言うので、「-90度に向ける」の存在を教えてやりました。

f:id:shufufu:20170315102753j:plain

「10歩動かす」に「20度回す」のブロックをつなげたのは娘のアイデア。にゃこたろうの方に一歩踏み出す感じにしたかったようです。

 「10歩」と「20度」が微妙すぎて実際にはあまり向かっていってないのですが、スプライトをドラッグして動き出しの位置を何度も調整し、なんとか向かっていくように配置してました。

 

とは言え、動き出しの位置を座標で指定していないので、動かす度にスプライトをドラッグして元の位置に戻すことに…。目分量なのでその都度微妙にずれる…という苦行状態。

そんな苦労にも負けず、プログラムは楽しいそうで、早くまたやりたいという娘。座標の指定の仕方も近々教えてあげたいところです。

  

ということで、今回のポイントとなった「スクリプト実行のタイミング」については、次回の記事で書いてみようと思います。

Copyright © 2016 初心者OK!こどもプログラミング All rights reserved.