| はじめまして。自称SRCの中小企業、Mrと申します。
質問にお答えする前に、少々長い文章になりますがまあ読んでみてください。
私は、インクルードを作成するにあたり、三つの段階があると考えます。 第一に、そのインクルードで実現したい機能を明確にすることです。 第二に、その機能をどうやって実現するか、という方法を考えることです。 第三に、実際にその方法でインクルードを作成します。 これらの段階は全て、絶対に省略することはできませんし、またあやふやなまま作成しても決して満足のいくものを作れないと考えます。 これらは常にこの順番で行われるわけではありません。第二段階で、SRCでは実現不可能な機能だと分かった場合は、もう一度第一段階に戻って考え直しです。 第三段階で実際に作成したら、その方法で実現できなかった場合、第一・第二段階に戻ってまた考え直しということになるわけです。
前置きが長くなりましたが、ネィルさんは今、第二・第三段階で悩んでいるのだと思われます。 そして、その質問に対し回答するためには、回答者に対し、ネィルさんが第一段階でどのように考えたのかを説明する必要があるのです。 第一段階は出発点であり完成像でもあります。その完成像が分からなければ、アドバイスするのは非常に難しいといえます。 そこで、回答が欲しいのでしたら、今回のインクルードが ・どういった状況で ・どういった条件で ・どういった機能をするのか など、出来るだけ詳しく説明してはいただけないでしょうか。 これは、ネィルさんの今後のためにも大切なことだと考えます。人に説明出来ないものを作るというのは大変難しいですから。面倒くさいかもしれませんが、スキルアップのためと考え、書いてみてはいかがでしょうか。
なお、結論だけ言えば、ネィルさんが書き込まれたインクルードですが、いろいろと間違っています。 ・ラベルとGoto文を組み合わせるよりも、CallとReturnを使ってサブルーチンとした方が分かりやすいインクルードになります。(複数あるGoto文は、どこへ飛ぶのか分かりづらく、制御順を追うのが困難になるため、プログラム用語ではスパゲティプログラムなんて言い方をします) ・If Info(ユニット, 特殊能力所有, 売却可能) = 1 Thenがどのユニットに対して実行されているのかが分かりません。 ・なんでIf二つなのにEndIf三つあるの? 等がそれにあたります。
また、第一段階の説明がないので憶測になりますが、ネィルさんの実現したい機能はForEachコマンドを使えば実現可能だと考えられます。
それでは失礼します。
|