先日第4回の小学校低学年向けプログラミング教室を開催しました!(2023年1月11日)
場所は浜松市の可美協働センター。夜18:30~19:30です。
今回の参加者は8人。
今までは単体のスプライトを動かすのみの授業でしたが、今回からは「メッセージ」の使い方を覚えていきます。
メインとなるスプライト以外に何らかの合図を送り、その合図をもとに相手が動き出す。その仕組みが「メッセージ」です。
メッセージは重要な概念
わざわざメッセージなど使わずとも、お互いにお互いの状態を見ながら動作を変えるプログラムを書いても、同じことができます。しかしその場合、お互いに「依存度が高い」状態になります。
古いプログラムはすべてそんな感じでしたが、最近のプログラムはより「ゆるい」つながりとなるよう作ってくことがセオリーになっています。そのプログラムを「疎結合」とも呼びます。
お互いの状態(パラメータ)を監視しながらのプログラムは、どちらかの動作が変わるごとにそれぞれの動きを見直さなければならないため、監視先が多くなればなるほどメンテナンス工数が加速度的に増えていきます。
3つのスプライトが互いのパラメータを監視していた場合、1つのパラメータの動きが変わっただけで、3つとも修正する必要が出てきます。
従来は「1〜5」の数値だったパラメータが、「1〜100」になったらどうでしょう。突如として「76」「12」といった想定外の数値が流れてくるようになり、多数のエラーが生まれることになります。
メッセージは相手に呼びかけるだけで、あとの動作は相手任せとなります。つまりお互いに相手の動きを気にする必要がないわけです。
自分の中で「1〜5なら”正常”メッセージを送る。それ以外は”異常”メッセージ」という処理があるとします。あるとき「1〜100まで正常」となったら、自分だけパラメータを修正します。1〜100なら”正常”、それ以外を”異常”とすればいいだけ。
相手は正常か異常かメッセージを受け取ればいいだけなので、何も変わりません。
それぞれが自分自身の振る舞いだけを気にすればいいため、メンテナンス工数も下がり、またバグが生まれにくくなります。
ひよこちゃんを呼ぶ
原理はカンタン。
- ネコをクリックすると「メッセージ1」を発信します。
- 「メッセージ1」を受け取ったひよこは、ネコのところへ集まります。
たったこれだけですが、メッセージでお互いに動くことができるんだよ、ということを教えることができました。
まだ理解できない子もいましたが、多数のスプライトを処理するようになってくると、いつかメッセージの使いやすさをわかってくれると思います。