プレイ日記
ゲームを作るにあたって必要不可欠となる、ループの作りとその特徴について考察してみました。 まず、ループの作り方としては、@ラベルを用いる方法、WHILE~WENDを用いるやり方、REPEAT~UNTILの3通りがあります。 (続きはコメント欄へ)
6そうだね
プレイ済み
返信[1]
親投稿
まず@ラベルを使った場合ですが、これは単純に一行ずつ処理を実行していきます。 @ラベルの文字数は、早い話が1文字でも事足りるので、ファイルサイズの削減には適していると言えるかもしれません。 途中で条件によって枝分かれして進んでゆくといった処理をしたい場合にも便利です。 ただ、ループの中で変数の値が絶えず変わる場合になると、逐一条件判定をする必要が出てきて、どうしても数行にわたって判別の処理をしなければいけません。しかも、どこでその処理をするのか、というのもゲームの中ではとても重要になってきます。
0そうだね
プレイ済み
返信[2]
親投稿
次に、WHILE~WENDを使った場合ですが、これはWHILEのあとの条件が成立する限り、WENDまでのループ内の命令を繰り返す形式です。 ラベルと比べると、最低でも10数文字はどうしても消費しなければなりません。加えて、一度抜けると戻りにくいことから、何度も使用したり、色んな場所で使用するのには不向きです。 しかし、変数の条件判別にはめっぽう強く、その手の命令をしたいときにはラベルを用いる場合よりずっとスマートにまとめられます。 更に、ランダムの事象の中に更にランダムの事象が存在する、といった場合でもはさみこみができるのでかなりコンパクトです。
0そうだね
プレイ済み
返信[3]
親投稿
最後に、REPEAT~UNTILを使う方法ですが、これはUNTILの後の条件が成立する限り、REPEATからの処理を繰り返す形式です。説明だけ見ると、WHILE~WENDとよく似ていますね。 しかし、二つの決定的な違いが、処理の順番です。WHILE~WENDでは、先に条件判別をしてから、成立していたらループ内の処理を実行しています。これに対してREPEAT~UNTILでは、先にループ内の処理を実行して、それから条件判別をして、ループをやめるかどうかを判断します。 すなわち、2つのループに同じ条件式を組み込んでも、REPEAT~UNTILでは、たとえ条件不成立だったとしても一度は処理が実行されてしまうことになります。 使い分けとしては、ループを開始するのにふさわしい状態かどうかを判別したいときにはWHILE、ループを実行していてやめるべき状態であるかどうかを判別したければREPEAT
0そうだね
プレイ済み
返信[4]
親投稿
を使うといいのではないでしょうか。 だいぶ長くなって申し訳ないのですが、まとめると、 「ラベルは分かりやすい奴だけど融通が利かない」 「WHILEはスリムなムードメーカーだけど我が儘で冷めやすい」 「REPEATはおっとりしていて回りにも優しいけど恋人の条件は厳しい」 みたいな感じです。 はたして要約になっているのか、自分でもよく分かりませんし、的確に考察出来たかどうかは正直自信がないですが、参考になれば幸いです。
4そうだね
プレイ済み