「第44回 メッセージとリストを使って神経衰弱を完成させよう」プログラムのバグを見つけよう

 連載
《れんさい》
「はじめようジブン専用パソコン」の「第44回 メッセージとリストを使って神経衰弱
《しんけいすいじゃく》
を完成させよう」(2020年11月号)で神経衰弱プログラムを完成させたけど、記事の最後に「このプログラムには重大
《じゅうだい》
なバグがある」と書いてあったね。みんなは見つけることはできたかな。

神経衰弱プログラムのバグ

 「神経衰弱」プログラムの重大なバグとは、開いたカードをもう一度クリックすると同じ絵のカードと一緒
《いっしょ》
に取れてしまうというものだった。ということは、カードの位置を憶えていなくても取れてしまうことになる。これではゲームにならない。

一度開いたカードをもう一度クリックする
開いたカード(赤丸で囲んだ「gobo-a」)をもう一度クリックすると…
同じ絵のカードが取れてしまう
左隅にあったカードも一緒になくなっている(同じ絵のカードが取れてしまっている)

 カードをクリックしたときのプログラムを見てみよう。

カードをクリックしたときのプログラム

 一度目にカードをクリックしたとき、コスチュームが「カード番号」になるので、表の絵が表示され、「表になった番号」は「0」なので、「表になった番号」は「カード番号」になる。

 同じカードをもう一度クリックすると、カードは表の絵のまま、「表になった番号」は「0」ではなく「カード番号」なので、「取る」が送られてしまう。これがバグの原因だ。

バグの修正(バグフィックス)をする

 先ほど見つけたバグを直すにはいくつか方法がある。たとえば、「コスチューム #」と「表になった番号」が同じ、つまり、すでに表になっているなら、それ以降の処理
《しょり》
を止めてしまえばよい。これをプログラムにすると次のようになる。

追加するプログラム

 このブロックを「このスプライトがクリックされたとき」の下に入れよう。

バグを修正したプログラム

 できたら、緑の旗
《はた》
を押して動作を確認してみよう。同じカードをクリックしてもカードは取れず、2枚目に同じ絵のカードを開くと取れて、そうでなければ裏
《うら》
に戻るね。

 これでバグの修正、つまりバグフィックスは完了だ。

 どんなに慎重
《しんちょう》
にプログラムしたつもりでもバグが残っていることがある。これを避けるには、プログラムを書く前に、いろいろな状況を想定
《そうてい》
するだけでなく、完成したプログラムが大丈夫だと思っても、条件を変えながら何度もテストすることが大事だ。

 もっと複雑
《ふくざつ》
なプログラムになってくると、系統的
《けいとうてき》
に分析
《ぶんせき》
・設計するための手法を用いる必要がでてくることもある。ステップアップのためにチャレンジしてみて欲しい。

監修

阿部和広 著者の記事一覧

青山学院大学大学院 特任教授

最新号好評発売中!

子供の科学 2026年 11月号

CTR IMG