2024年3月17日日曜日

Scratchで使用しているブロックの数を数える方法について

 あまプロではScratchでプログラミングを教えています。

ScratchはMITが開発したビジュアルプログラミング言語で、どなたでも無料で利用可能です。
1つの機能がブロックで表現されており、視覚的直感的にプログラミングを行う事ができ、あまプロでも重宝しています。

スクラッチはプログラムの単位を「作品」と呼んでいるのですが、ふと1つの作品内で幾らブロックを使用しているのかが気になりました。
Scratchでは簡単に調べる方法は提供されてへん様でしたので、あメログ

先ず、スタートすると音が鳴るだけの簡単な作品を作ってみました。

ステージに2ブロック

続けて、ねこに3ブロック

この作品をメニューのファイル > コンピュータに保存する、で保存します。

すると、作品名.sb3というファイルがダウンロードできます。

 この*.sb3はzip圧縮されているので、unzipなどで解凍します。

すると、下記の様にproject*.json、*svg、*.wavが生成されます。


 *.svgがコスチュームで、*.wavが音になります。
ブロックについてはproject.jsonに記述されています。

エディタなどでproject.jsonを開いてみると、JSON形式で色々と載っています…。
これだと何の事か解りませんが、よくよく見てみると、opcodeというキーがブロックを表してそうです。

opcodeと仮定して、opcodeの数を数えてみましょう。

grepコマンドとwcコマンドで数える事ができます。

ステージ数1+スプライト数1+ステージのブロック数2+ねこのブロック数3=7
なので、合ってそうです。

以上、スクラッチでブロック数を数える方法でした。