第11回 何か作ってみよう「2.まずは漠然と」

11−2 まずは漠然と

さて、最初に、どう言うモノを作ったら良いか、すこしずつ具体的に考えてみることにします。
本当に大雑把で構いませんが、作ろうとするプログラムを考える上で、

  ・ムシが動き回る
  ・障害物を置いたり消したりできる

とこの2つに分けて考えると、楽そうです。
一見、アホらしい作業のようですが、こんな感じに全体の大きな部分を次第に細かくしていく作業が重要です。
そう、大雑把な作りたいモノから、作るべき部分や部品を切り分けることができるようになれば、半分くらいはプログラムが終わったも同然でしょう。
もっと簡単に言ってしまえば、部分に分けることができたら、後は、BASICに翻訳するだけですね。(でも苦労しているんですが・・・)

ただ、単に大雑把に部品を取り出して分解するのではありません。それらの関係を把握しておく必要があります。
以前、自動販売機でジュースを買う、という一連の流れをフローチャートにしましたが、このフローチャートというのも、そういった関係を表すための表現方法の1つです。
例えば、ジュースを買う動作なら「お金を入れる」動作と「商品ボタンを押す」動作は、前後の関係がはっきりしていますし、これらは、1回のお金に対して、1回のボタンという回数の関係も分かります。あ、可能性的には、1回のお金を入れる動作に対して、連続買いができますので、1:nの関係かもしれません。
そんなことで、フローチャートであれば、前後の関係や回数の関係など、位置と時間の関係が目で見えるので、比較的理解しやすいわけです。

このように、部品間の関係を把握するコツとして、頻度に注目する、という方法があります。
ちょっと、ムシに戻って考えてみましょう。
最初に分けた2つの部品の関係に「頻度」に関する言葉を加えて整理すると、次のようになります。

   ・ムシが常に動いている
   ・たまに、障害物を置いたり消したりする

いかがでしょう?
ここまでくれば、2つの部品の関係が良くわかります。

さて、ここで注目すべきは、どちらが「メイン」になるか、という点です。ま、これはもちろん、ムシの移動ですね。
「常に−たまに」という頻度関係は、作ろうとするプログラムの構造に大きな影響を与えます。
要するに「何をイベント処理にすればいいの?」という点が明確になるわけですね。
そうしたら、イベント的でない部分、この場合ムシの移動ですが、これは、メインの部分にしてしまえば良いわけです。

こうして考えると、FormのAfter()で虫を動かし、タップイベントでブロックを処理する、という大まかな方向性が掴めるでしょう?
ま、あえて、イメージ図にすると、こんな感じになります。

    

その他の関係としては、この2つの部品が独立しているか、ちょっとだけ連携しているか、ほとんど連携していないか、という部分に注目します。
いわゆる「○○つながり」って奴ですが、ムシは移動する時に障害物のブロックを避けて動きますので「ブロックつながり」ですね。
その他には、それほど関係していないようなので、お互いに独立して作り始める事が出来そうです。
フローチャートとはちょっと違った視点から大雑把に考えてみましたが、メインとイベントに注目し、関係を考える事で、プログラムの骨格が見えてきましたね。なんとなく。

前へ     目次へ     次へ

第11回 何か作ってみよう「2.まずは漠然と」