第8回 筋道を立てよう − フローチャート − 「3.ボールを動かす その1」

8−3 ボールを動かす その1

さて、次はいよいよ「ボールが跳ね回る動作」をフロー化してみましょう。
「ジュースを買う動作」と同様に、大きな部分から詳細の部分へ順番に展開してみます。

大きく分けて、プログラムは2つに分解できます。
いろいろと「準備」する部分と、実際にボールが動く処理をする「本体」部分の2つですね。

    

まず、「準備」の部分は、使うべき「変数を宣言」する部分と「初期値の代入」をする部分に分けることが出来ます。 この準備段階のことを初期設定と言いますが、この部分の詳細は後で見ることにして、「本体」の部分を詳しく見ていきましょう。
この部分は、ボールの様々な処理を行う部分ですが、大きく分けると「ボールの表示」と「ボールの移動」の2つの処理に分けることが出来ます。

    

このように、表示と移動を繰り返せば、ボールが連続して動作しているように見えますね。

では、ボールの表示について詳しく見てみましょう。
「ボールの表示」を表示する処理には、「ボールの消去」をする処理と「ボールの表示」する処理の2つが必要です。
正確に言えば「一つ前のステップのボールを消去」して「新しい座標にボールを表示」です。そのため、ボールを表示したら、その「座標の保存」をしておいて、次回の消去に使うようします。
ちょっと、ここの処理はすぐには思い浮かばない手順かもしれませんが、このような動作は、ほぼ定番ですので、こういうものだと覚えておきましょう。

    

サクサクと表示の処理をしてきましたが、次は、移動の処理です。
今回のボールは斜めに動きますが、残念ながら、直接斜めに移動させることは出来ません。
したがって、ここは次のように2段階で行います。
まず、縦の方向に移動させます。そして同じ移動量だけ横の方向に移動さます。そうすれば、図のように結果的に斜めに移動したことになりますね。

    

横→縦、という順番でも構いませんが、このように縦と横の処理を別々に行うことで斜め移動を実現できます。
今回は、いわゆる斜め移動であり、45度の移動と解釈しましたので、縦と横の移動量を同じにしましたが、縦と横の移動量を調節することで、移動する角度を変えることが出来きますね。(ちなみに、三角関数を使えば、その角度が出せますね。)

さて、移動の処理に戻りましょう。 先ほどの説明通り、斜め移動を実現するには「縦方向の処理」と「横方向の処理」の2つが必要になります。
したがって、

    

となりますね。
まずは、ここまで、よろしいでしょうか?

前へ     目次へ     次へ

第8回 筋道を立てよう − フローチャート − 「3.ボールを動かす その1」