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

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

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

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

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

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

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

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

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

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

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

追加するプログラム

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

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

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

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

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

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

監修

阿部和広 著者の記事一覧

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

最新号好評発売中!

子供の科学 2020年 12月号

CTR IMG