第7回でプログラムが得意なことの1つに、繰り返しに強いということをお話ししました。
人間だったらイライラしたり、疲れたりしそうなことでも、プログラムは無限に繰り返すことができます。
上の画像をクリックすることでゲームへ飛びます。
今回の説明部分は1ページめくった『9.無限ループとその止め方の仕組み』です。
画面の上の方に注目してください。体育の授業でやりそうな「8の字跳び」をものすごいスピードでやっています。
8の字跳びに見えない!というツッコミはお許しください。これ以上見やすいものが思いつきませんでした…。
それはともかく、ここですごいのは「全く疲れることも、つっかえることもなく、ひたすら繰り返している」こと。
その気になれば何周でも、何時間でも続けられます。これがプログラムのすごいところです。
ではこの8の字跳びはいつ終わるのか?お答えします、終わりません。
プログラムでは「繰り返し」としたときに、ちゃんと止まる仕組みを作ってあげないと
自分から止まることはありません。よく言われる「無限ループ」がそれです。
それで困らないものであればそれでもいいのですが、割と困ることが多いのが世の中でもあります。
お風呂の水も出し続けていたらあふれますし、きれいなイルミネーションもずっと続いていたら電気代がスゴイです。
前回もお見せした命令です。「自動実行」が「動作をひたすら繰り返す」ことであることは第7回でお話ししました。 実はこれ、このままにしておくとひたすら変数が足されてしまって問題が起こってしまいます。
今使っている「RPGツクール」ではルールとして「自動実行の命令が行われている時はこちらは操作できない」という
ものがあります。実際前回までのウェーブをしている間は、自分のキャラクターは動かせなかったと思います。
つまり、自動実行で命令を入れたら、何かしらの方法で止まる方法を作っておかないと
全く動けなくなってしまい、そこでそれ以上操作することができなくなるわけです。
プログラムの世界ではこれを「フリーズ」と言うようです。聞いたことがある人もいるのではないでしょうか。
そこで女の子が一番右に来たら(この場合変数が14になったら)変数を増やすのを止める命令を入れます。
上の図では変数が14になった時点でトリガーが自動実行から決定ボタンに変わります。これでフリーズは防げます。
しかも実行内容に何も入っていないので、これで「何もしない」ことになり、動作を止めることができます。
(実際はこの後、今度は1ずつ変数を減らす命令を入れているので、女の子が往復をしていたわけですが)
|