MENU

Code of Genius Jr.

体験会詳細 お問い合わせ

「15点になったら」が止まらない? Scratchの失敗から学ぶプログラミング

Scratch講座コラム
「15点になったら」が止まらない? Scratchの失敗から学ぶプログラミング

Scratchでゲームを作っていると、「こう動くはずなのに、なぜかうまくいかない」という場面に出会います。こうした不具合は、プログラムの仕組みを理解するよいきっかけになります。

今回は、生徒が制作したスイカを集めるゲームで見つかった、メッセージの繰り返しについて紹介します。

15点になったら、次の場面へ進むはずが……

このゲームでは、スイカを集めると得点が増え、15点に到達するとキャラクターが話し始め、その後、料理の場面へ進むように作られていました。

ところが、15点になると同じメッセージが繰り返し送られ、次の場面へ進む処理が妨げられてしまいました。

原因は、スイカのスプライトにある次の組み合わせでした。

ずっと
    もし〈集めたスイカ = 15〉なら
        enoughを送る

「enough」は、次の場面へ進む合図として使っていたメッセージの名前です。

一見すると、「15点になったら合図を送る」という自然なプログラムに見えます。しかし、ここには「ずっと」と「もし」の組み合わせで起きやすい落とし穴があります。

「15点になった瞬間」と「15点である間」の違い

作った人が意図していたのは、「15点になった瞬間に、1回だけ合図を送る」という動きです。

一方、このブロックが実際に指示しているのは、「得点を繰り返し調べて、15点なら毎回合図を送る」という動きでした。

得点が15点のままなら、何度調べても条件は成立します。そのため、「ずっと」の中を繰り返すたびにメッセージが送られます。

合図を受け取るキャラクターには、セリフを言い、少し待ってから料理の場面へ進む処理があります。そこへ同じ合図が何度も届くと、処理が先頭からやり直され、先へ進めなくなる原因になります。

コンピューターは、「1回だけでよいはず」という人の意図を補ってはくれません。ブロックで示した手順を、そのまま実行するのです。

「待ってから1回送る」に変えてみる

今回のように、目標の得点に到達したときに1回だけ合図を送りたい場合は、「ずっと」と「もし」を、次の形に置き換えると分かりやすくなります。

〈集めたスイカ > 14〉まで待つ
enoughを送る

この形なら、15点以上になるまでは待ち、条件を満たしたらメッセージを1回送って、その処理は終わります。

得点は1点ずつ増えるので、「14より大きい」は「15点以上」を表します。複数のスイカをほぼ同時に集めて得点が16点以上になった場合にも、次の場面へ進める条件です。

修正した後は、14点では合図が送られず、15点に到達するとセリフが順番に進むかを確かめます。「直したつもり」で終わらず、実際の動きを確認するところまでが大切です。

不具合は、考え方を深める教材になる

今回の失敗から学べるのは、ブロックの使い方だけではありません。

「自分はどう動いてほしかったのか」「今のプログラムは何を繰り返しているのか」「1回だけ動かすには、どこを変えればよいのか」。こうした問いを通して、子どもたちは自分の考えと実際の手順を比べる経験を積みます。

ご家庭でも、うまく動かなかったときには「どんな動きにしたかったの?」「実際にはどうなったの?」と声をかけてみてください。違いを言葉にすることが、原因を見つける手がかりになります。

プログラミングの学びは、最初から正解を作ることだけではありません。 思った通りに動かない理由を探し、直して、もう一度確かめる。その試行錯誤の中で、手順を考える力や、問題を解決する力が育っていきます。

体験会随時開催中です!

体験会

お気軽にご参加くださいPROGRAMMING CHALLENGE

           

プログラミング教室への入会を
ご検討中の
小学生のお子様をもつ保護者様へ

コードオブジーニアスジュニアは、創造的な思考と問題解決のスキルを育むための場を提供いたします。私たちのプログラミング教室は、お子様一人ひとりの個性と可能性を大切に、楽しく学べる環境を整えております。オンラインでのレッスンにより、ご自宅の安全な空間から、専門の講師と直接交流しながら、しっかりとしたプログラミングの基礎を身につけることができます。



ベーシックからエキスパートまで、段階を追って学習するカリキュラムを用意し、お子様の成長に合わせてスキルアップが可能です。学びの成果は検定試験で評価され、毎年の成果発表会で自信を持って発表することで、コミュニケーション能力も同時に磨かれます。

体験会では、プログラミングの楽しさと可能性を実際に感じていただける機会です。この貴重な体験を通じて、お子様のコンピューターとテクノロジーへの関心を高め、学びの第一歩を踏み出しましょう。

ご相談はお気軽にどうぞ

お問い合わせ

お電話はこちら(受付:10時~19時)

050-3204-2980
PAGE
TOP