本日はプログラミングの授業でどのような事を考え、形にしてっているのかということを少し深堀りしてご紹介していこうと思います。
さて、とある小学4年生への授業で題材としている、「玉当てゲーム」を紹介いきたいと思います。
シチュエーションは単純で、二つの玉がぶつかり、ゴールとなるポケットに入れば得点ゲットという単純なゲームです。
そうです「ビリヤード」ですね。
このビリヤードというゲームは単純でとても面白いのですが、プログラミング学習としてもとても面白いのです。
言葉として書くと、先に言ったように、「玉をぶつけて、ゴールとなるポケットに入れば得点ゲット」という1文でしかありません。
ただ、プログラムで表現する場合、二つの玉が、
・どのような速度で、
・どの角度でぶつかると、
・どの方向に弾かれ、
・どれだけの慣性で減速し、
・どこで停止するのか、
・またそれまでの間にポケットがある場合、
・どのような条件でポケットに落ちるべきか、
うんぬんかんぬん。。。zzzz そして翌朝。
このように単純な動きを深く考えることで、自然と論理的思考をトレーニングし、身に付けていくことができます。
この記事で全ては説明できませんので、今回は「角度」をどのように考えるかをご紹介していきます。
■二つの玉が真っすぐに当たった場合
これはよいですよね。
真っすぐに当たれば的玉は同じ方向に進みます。
手玉はバックしますが今は無視です。
■斜めに当たった場合
例えばこの図のように斜めに当たった場合、このような角度計算を行います。
学校で習った「角度」をこのように「形」にして掴んでいけるのはプログラミングの素晴らしいところだと思います。
ただ数字の計算をするよりも、自分で考えて数字を使っていくことができます。
更に、ゲーム要素なども足し込んでいくことで一つの作品になります。
船堀校で作ったビリヤードを是非プレイしてみてください!!(若干バグ有 汗)