Dear!くろうどぃあ!

このブログでは、私、くろうどの趣味に関する事を記述します。
当面は、「RPGツクールMV」をメインにします。

ツクるためのプログラミング概論【2】プログラムの構造

2016-04-08 22:52:48 | RPGツクールMV
さてみなさん。

今回は、ツクるのに役立ちそうな、プログラミングの基礎知識を語る会の第2回です。


■目次(予定)
【1】コンピュータの構成
【2】プログラムの構造 (←今回)
【3】変数と関数
【4】オブジェクト指向
【5】ブラウザの仕組み


■本編
【2】プログラムの構造

今回解説するのは、RPGツクールMVでいうと、イベントコマンドの「フロー制御」と書かれている枠の部分です。

▼イベントコマンド(フロー制御)


上から「条件分岐」「ループ」「ループの中断」「イベント処理の中断」「コモンイベント」「ラベル」「ラベルジャンプ」「注釈」となっています。


●順次処理
「フロー制御」以外のイベントコマンドの大半を、ここでは「処理」と呼びます。

「処理」は記述した順に、上から下へ、実行されていきます。

※フローとは、流れの事ですので、上流から下流へ、水が流れるように実行されます。

▼順次処理



●条件分岐
「フロー制御」内に、「条件分岐」というものがあります。

RPGツクールMVの場合、他にも、「選択肢の表示(はい、いいえなどの入力)」などでも、分岐が発生しますが、条件が異なるだけで、構造上は同じです。

分岐に書かれた条件に従って、実行する処理が分かれます。

分岐には、範囲があり、その範囲内に、実行する処理を記述します。
(RPGツクールMVでは、「:分岐終了」と書かれている所までです)

注意点としては、条件を満たしていない場合には、その分岐の範囲内の処理は実行されないという点です。

なので、自分が実行させたい処理が、分岐の中に書くべきなのか、外に書くべきなのかは、要注意です。

また、「条件分岐」の中に、「条件分岐」を入れる事も出来ます。
これをやると、条件が複雑になるため、なるべく避けたい所ですが、場合によっては必要になります。

あと、RPGツクールMVでは、イベントの「ページ」も「条件分岐」の一種と考えてよいかと思われます。


ちなみに、Javaスクリプトでは、「if」と書く事で、この「条件分岐」を表します。
つまり、「もし、xxならば、◎◎する」という事を表現しているわけです。
プログラマが「if文(いふぶん)」と呼ぶのが、これの事です。

▼条件分岐



●繰り返し(ループ)
「フロー制御」内に、「ループ」というものがあります。

RPGツクールMVの場合、この「ループ」は、いわゆる「無限ループ」を作る事が出来ます。
(そのままでは、ゲームが進まなくなります)

ここで、「ループの中断」を「ループ」の範囲内に書くわけですが、「条件分岐」を合わせて使わないと、1回でループを抜けてしまうため、「ループ」を使う意味が無くなります。

RPGツクールMVでは、「はい」が入力されるまでループする……といった使い方が想定されます。
この場合、「選択肢の表示」による分岐(はい)の中に、「ループの中断」を書きます。


ちなみに、Javaスクリプトでは、「for」「while」「do while」のどれかを書く事で、ループを発生させる事が出来ます。
RPGツクールMVでは、ループからの脱出条件を書きますが、Javaスクリプトの場合、ループする条件を書きます。

▼ループ(ループする条件を書くパターン)



●構造化プログラミング
さて、「構造化プログラミング」と呼ばれる手法があります。

「順次処理」、「条件分岐」、「ループ」の3つの構造で、プログラミングする手法です。

この時、処理は、上から下へ、順に実行され、一番下に到達すると、終了です。
(ループは、上に戻りますが、1本の線として見る事が出来ます)

プログラミングの世界では、これが分かりやすいとされてきました。


RPGツクールMVの「フロー制御」には、「イベント処理の中断」や「ラベルジャンプ」といった制御方法もあります。

「ループ」を「ラベルジャンプ」を使って実装する事も出来ますし、好きな場所で「イベント処理の中断」をする事も出来ます。

ですが、特に「ラベルジャンプ」は、使い方次第では、イベントがどの順序で実行されるのか、分かりにくくなります。

「ラベルジャンプ」を使った方が分かりやすい場面もあるため、一概には言えませんが、Javaスクリプトには「ラベルジャンプ」に相当するコマンド(goto)が無いようですので、Javaスクリプトへのステップアップを目指す場合には、多用しない事をおススメします。


それでは~。

最新の画像もっと見る