IT技術 育児

小学プログラミング:Scratchのブロック定義の使い方を覚えよう

IT技術

Scratchの機能に「ブロック定義」というものがあります。
これは何でしょうか?
これをうまく利用することで、プログラムを短くしたり、読みやすくすることができます。
以前作成した、カエルの歌の輪唱で使ったブロック定義について今回は解説します。

ブロック定義って何?

ブロック定義とはScratchのこの機能です。

Javaなどのプログラムに馴染みのある人には「関数」と言ったらピンとくる機能です。

public void run(){
・・・
}

こんな塊のプログラムですね。


これはどんなものかというと・・・。

プログラムを部品化する機能です。

1本の長いプログラムの場合、修正などするときに修正箇所を探したりプログラムを切り貼りするときに、手間がかかったり間違えやすくなります。
そこで、ある程度意味のまとまった塊に分けて作ることができる機能です。
小説などの書籍では「章」という単位で区切りをつけられています。
これに近い感覚です。

ブロック定義を使う目的は2つ

ブロック定義を使うといいことは2つあると思います。

管理がしやすくなる

一つはプログラムの管理がしやすくなることです。
あとで見直すとき。
修正するとき。
このようなとき、どこを修正するのか、そこを見直したいのか、必要な場所を発見しやすくなります。

ブロック定義はある程度意味のまとまった塊にプログラムを分けるために使います。
(ある程度というのが曲者で、作成者のセンスによります。)

高機能なプログラムを作ると、どうしてもプログラムが長くなってしまします。
そのプログラムをひたすら縦につなげて作っていると、あとで「あ、あの部分修正したい」と思ったとき、その場所を探すのが結構難しかったりします。
そこで、作るときにあらかじめ分割して作って、あとでつなげて実行します。

カエルの歌を例にすると
音量や楽器、テンポを設定する部分とカエルの歌の譜面の部分を分けて作るイメージです。
(私のプログラムではそこまで分けていませんけどね)

プログラムを再利用して作る量を減らせる

ちょっと難しそうな話になってきました。
ブロック定数を使う最大のメリットはこちらなので頑張りましょう。

ブロック定数を使わずにカエルの歌の輪唱を作成するとこのようになりました。

カエルの歌の譜面にあたるプログラムを2つ作っていることに気づくでしょうか。
「60の音符を1拍鳴らす」より下は赤矢印、青矢印のルートどちらも全く同じプログラムが続きています。

この同じプログラムを作るという手間を省略しましょう。
ブラック関数を使ってみます。

譜面の部分を1個作るだけで済みました。
これがブロック定義を使うメリットです。

「これくらいならコピペした方ほうが楽じゃん」って思うかもしれないですね。
実は、そんなこともあります。
それはカエルの歌が簡単というのもあるでしょう。

しかし、修正する場合を考えてみましょう。
輪唱のプログラムなので、まったくおんなじ音楽が2回流れないといけません。
譜面に間違いが見つかった場合、ブロック定義を使っていないと赤矢印ルート、青矢印ルートの2か所を修正しないといけません。
しかし、ブロック定義を使っていれば1か所の修正だけでいいのです。

最後に

ブロック定義を使うメリットをわかっていただけたでしょうか。
正直、慣れるまでちょっと難しい機能です。
使わなくてもプログラムが作れますからね。
どんな時に使ったらいいのか、効果的な使い方ができるのかは少し経験が必要です。
慣れてくると、「ここはブロック定義にしよう!」って直感で分かるようになります。
初めはあまり気にせずにプログラムをやってみましょう。
あるとき、「あ、ブロック定義が使えるかも」って気づく時があります。

コメント

タイトルとURLをコピーしました