この記事のポイント
「繰り返し」ブロックを使って、スプライトが歩くプログラムを書けるようになります。
はじめに 同じプログラムが多く大変だ、を解決
前回までで、スプライト(キャラクター)のコスチュームを変化させることでスプライトを歩いているように見せることができました。
しかし、例えば、スプライトを4歩動かすだけであれば、プログラムは短かいですが、スプライトを100歩動かそうとすると、このようにプログラムがどんどん長くなってしまいます。これをプログラムをするときにはかなり大変ですよね。
途中で何個目のブロックを追加しているかわからなくなりそうですね。。。
ただ、100動かすとしても、プログラムとしては以下を何度も書くだけです。
- スプライトのコスチュームを変えて、
- スプライトを動かす
この記事では、「繰り返し」という概念を用いて、スプライトを歩かせるプログラムをカンタンにします。
前回の記事
前回はコスチュームを変更してスプライトを歩いているように見せるプログラムを学びました。
スクラッチはコチラから始めることができます。完全無料!
完成作品
完成作品はこのようになります。前回と動きは同じですが、プログラム内容は異なります。
プログラミング
では実際にプログラミングをしてみます。
完成プログラム
今回の完成プログラムはこのようになります。前回のプログラムより短いですが、スプライトの動きは同じです。
「〇回繰り返す」ブロックを使う
では「〇回繰り返す」ブロックを使ってみましょう。
「1秒待つ」ブロックの下に〇回繰り返すブロックをくっつけます。
ここで気づいた人もいると思いますが、今までのブロックの形状と違って、「10回繰り返す」ブロックは「逆コの字」の形です。これは「C型ブロック」と呼ばれます。
「10回繰り返す」ブロックでは、このC型ブロックの穴の中に繰り返しをしたいブロックをはめて使います。
繰り返しの回数は「4回」にしておきましょう。
コスチュームを交互に変える。
では、さっそくC型ブロックの穴に、前回プログラムで歩くように見せた部分をはめてみます。
これらブロックをC型ブロックの穴にはめます。
- コスチュームを「コスチューム2」にする
- 「50」歩動かす
- 「1」秒待つ
ただ、実はこれでは正しく動きません。
スプライトが右に進みますが、スプライトのコスチュームが変わらずスケートしているみたいに見えてしまいます。
理由は、「コスチュームをコスチューム2にする」ことが繰り返されている、つまり、ずっとコスチューム2に変更されていることになります。
スプライトが歩いているように見せるためには、コスチューム1→コスチューム2→コスチューム1→コスチューム2・・・を繰り返す必要があります。
これを実現できるのが、「次のコスチュームにする」ブロックです。
「コスチュームをコスチューム2にする」→「次のコスチュームにする」に入れ替えて動かしてみてください。
これで、前回と同様のスプライトの動きになったと思います。お疲れ様です!
【少し発展】繰り返しの回数を変えてみる
さて、ここでこの「〇回繰り返し」ブロックのすごさを説明します。
繰り返しの回数を変えたい場合は、「〇回」の部分の数字を変えるだけでOKです。
例えば、「10回」に変更してみましょう。カンタンにスプライトの動作を10回繰り返すことができましたね!
繰り返しブロックがなかったら、10回分のブロック追加を行わないといけないですね。繰り返しはらくちん!
【少し発展】もっとスムーズに歩いているように見せる。
今のプログラムですと、スプライトがかなり大股で歩いているように見えてしまいますね。
もっとスムーズに歩いているように見せるためにプログラムを修正しましょう。
プログラムの修正
プログラムをこのように変更してみましょう。
- 「20」回繰り返す
- 「10」歩動かす
- 「0.5」秒待つ
すると、先ほどよりもスムーズにスプライトが動いているのが確認できると思います。
【小ネタ】プログラミングにおける繰り返し(for文)の大切さ
プログラミングの3大要素の1つ
繰り返しは反復処理と呼ばれ、これはプログラミングの3大要素のうちの1つであります。この反復処理のおかげで世の中の自動化は成り立っていると言っても過言ではないです。
実際の現場でも「繰り返し(for)」はよく使われるのか?
【結論】よく使われます! 繰り返し処理がなければ成り立ちません。
特に、私の所属しているロボットや工場の自動化の業界ではこの繰り返しが最も重要です。工場の組み立て作業のようにやり方が決まっていてひたすら同じ作業を繰り返すところでは、効果はバツグンです!
単純で同じ繰り返し作業はロボットに任せてしまいましょう。
【小ネタ】プログラムの改善(リファクタリング)
今回行ったように、結果は同じ動作をするプログラムなのに、内容を書き換える行動をリファクタリングと言います。
このリファクタリング作業は非常に重要です。
最初は、目的の動きをさせるためにバーッとプログラムを書くことが多いです。
そのようにバーッと作ったプログラムは、記述が統一されておらず何を意図して書かれているのかわかりにくいものであることが多くなってしまいます。
そうすると、他の人が後からそのプログラムを見たときに内容を理解するのに時間がかかってしまいます。
そもそも書いた本人ですら、後から読むと内容が分からなくなることがあります。本当にプログラミングあるあるです。
後から見てもプログラムの内容を理解しやすくするために、プログラムの記述を短くしたり、他の人が後からそのプログラムを読んで内容を分かりやすくることを目的に「リファクタリング」を実施します。
「リファクタリング」とは要は、プログラムの記述を後から見直してキレイにすることです。
実際の開発では、複数人でプログラムを作成することの方が多いです。他人のプログラムを読むことが多くなるので、他人がわかりやすいプログラムを書くことはとても重要です。
次回
次回は、「ずっと」ブロックを使って、スプライトを自由にうごかすプログラムをつくります!
コメント