Snap! プログラミング
Snap! は Scratch のソースコードを基に作られたものです。Scratch が初心者向けに機能を絞り込んであるのに対し、Snap! はいろいろとプログラミング言語としての機能を付加した内容になっています。Scratch は命令ブロックをつなげていく手続き型プログラミング言語です。ユーザー定義ブロックはありますが、複数箇所での同じような処理を一つにまとめる程度の意味合いでした。Snap! の定義ブロックは制御型、値や true や false をリポートするリポーター型となんでも作成できます。関数も作成できます。ver. 10 からはハットブロックを除くすべてのブロックが編集可能になりました。Snap! の特徴として、デバッグ機能があります。実行速度を調節してステップ実行させたり、実行中のブロックをハイライトさせてリポーターブロックの値をリポートします。Snap! は Scratch と同じようなブロックを備えていますが、ゲームなどを移植してみるとうまく機能しなかったり、速度が得られなかったりします。
Snap! の解説 PDF
Scratch については書籍も豊富に出回っていて Web での情報も多いのですが、Snap! については日本語での情報が少ないのが現状です。公式のマニュアルを読むのが一番だと思いますが、副読本として理解の一助になれば幸いです。Web ブラウザが対応していれば、PDF ファイルへのリンクを左クリックすることで見ることができます。
日本語化コードの不具合について
現在の Snap! の日本語化コードはブロックの拡張機能に対応しておりません。そのため、語順がおかしかったり、日本語訳が付いていても無効となり英語のままになる箇所があります。オフライン版の場合、 [Snapオフライン版フォルダー]/locale/lang-ja.js を次のように変更すれば修正版が使用できます。
- [is ( ) identical to ( ) ?] ブロックの訳
- 821 行目を変更 "identical to": "と",
- 843 行目を変更 "is _ ?": "_ は同一か?",
- [if < > [ ]] ブロックの訳
- 822 行目を変更 "if _ _ _": "もし _ _ _",
- 735 行目に挿入 "else if _ _": "でなければ もし _ _",
「作図チャレンジ」を使ったプログラミング入門
ステージ上に簡単な図形を描くことで、プログラミングの基本である「順次実行」「条件分岐」「繰り返し」を体験します。 Snap! 入門と言うよりはプログラミング入門を意図しているので、むしろ Snap! にもともと備わっているものではないブロックを使ってプログラミングします。ステージに描かれた図形に沿ってスプライトが動くように、自分で考えてブロックを組み立ててもらうパズル集のようなものです。「階段」を描くのは簡単ですが奥が深い問題で、これを突き詰めていくと「迷路」の問題につながります。
ブロックくずしゲームの作り方
Snap! を使ってブロックくずしゲームの作り方を説明します。パドルのスプライトをカーソル移動キーで動かしてボールを跳ね返し、クローンを使って作成したブロックに当てて消していくゲームです。スプライトは Costumes のものを利用します。
Scratch の解説 PDF
Scratch の変数について説明してみました。