更新日:、 作成日:
スクラッチ 1.4 デバッグの仕方
はじめに
Scratch (スクラッチ) 1.4 のデバッグの仕方を紹介します。
プログラムの問題を見つけ正しい動作になるようにします。
ブレークポイントを設定して変数の値を確認し、1 行ずつ実行していく。これらの機能がないため、別の方法で確認するやり方を紹介します。
デバッグとは
デバッグとは、プログラムが正常に動いているか調査して修正することです。
自分で思っているのと違う動きをするのはよくあることです。また不具合やバグと呼ばれる異常な動きをするとエラーになり、プログラムが終了してしまうこともあります。
プログラムを少し作ったらデバッグして動作を確認する。また少し作ったらデバッグする。というのを繰り返してバグがないプログラムを作ります。
デバッグの仕方
デバッグする方法として、バグがありそうなところで処理を止め、プログラムの状態を確認し、そこから 1 行ずつ実行して確認するのが基本です。しかしスクラッチにはそういう機能はありません。
そこで次の方法を紹介します。
- 処理の流れを確認する
- プログラムの状態を確認する
- ブレークポイントを設定する
処理の流れを確認する
1 行ずつ実行する機能はありませんが、ゆっくり実行することはできます。
適当なプログラムを作ります。

[編集] メニューから [ステップ実行の設定] をクリックします。

[ブロックを点滅させる (遅く)] をクリックします。

この状態でプログラムを実行すると、実行されるブロックが黄色く光り 1 つずつ実行されていくのがわかります。

途中で処理を止めたいときは右上にある [赤丸] をクリックします。

これでどの命令を実行したときに問題があるのかを探せます。
スポンサーリンク
プログラムの状態を確認する
スプライトの場所や変数などいろいろな値を確認する方法を紹介します。
チェックボックスになっているブロックがあります。これをチェックします。

ステージにその値が表示されます。

この方法では常に値が表示されて便利ですが、「処理の流れを確認する」方法でゆっくり実行していると、値がすぐに反映されません。そこで次の方法を使います。
[見た目] にある と言う ブロックを使用します。

と言う ブロックを値を確認したい場所に入れます。

[チェックボックス] のブロックを と言う ブロックにドラッグします。

x座標と言う のように 1 つになります。

この命令が実行されるとその値が表示されます。

デバッグ用に追加しているのでプログラムが完成したときは忘れずに削除します。
ブレークポイントを設定する
処理を止めたい場所のことを「ブレークポイント」と言います。スクラッチにブレークポイントの機能はありませんが、似たようなことはできます。
[制御] にある まで待つ ブロックを使用します。

処理を止めたい場所に入れます。

[演算] にある = ブロックを まで待つ ブロックにドラッグします。

0=1 のように違う数字を入力します。

実行するとここで処理が止まります。上記の「プログラムの状態を確認する」方法で紹介したブロックを使って値を確認できます。「処理の流れを確認する」方法でゆっくり実行していると、値が表示されるまで時間がかかるので [通常] に戻しておきます。
確認したら 0=0 のように同じ数字を入力すれば、処理を続行できます。

よくあるバグ
よくあるバグとして 10 回繰り返し実行するのを 9 回や 11 回実行した。条件に一致していると思っているのに一致しなかったなどです。

まずはプログラムの流れが正常か確認します。違っていたらなぜなのかを値を表示するなどして確認します。
プログラムが複雑になるほど変数をよく使用します。変数の値が思っているのと違うとバグなので、その値をデバッグで確認すれば修正できると思います。
スポンサーリンク