BricRoboでブロック並べを解いてみる(6) – BricRoboモデルとソースコード一式

さあ、今回で最終回にします。BricRoboモデル、C#でコード生成したもの(中身を実装済み)、UI画面のC#コード、それら全体をビルドできるVisual Studio 2015のプリジェクトをZIPにして公開します。
まずは以下のZIPファイルをダウンロードして展開してください。
  
  block_narabe.zip
中にあるETR2016.eapはEnterprise Architect(EAと呼びます)のEAPファイルです。BricRoboモデルを見たいという人で、EAを持ってない人はEA+BricRoboをセットにしたインストーラーがあるので、これをダウンロードしてインストールすると、EAでBricRoboモデルを編集して、BricRoboでコード生成することができます。下記のページの一番上の「統合ダウンロード(BricRobo V1.7β+EA)」のダウンロードから入手できます。
  統合ダウンロード(BricRobo V1.7β+EA)
とりあえず、Visual Studio 2015(VS2015と呼びます)があればブロック並べ解法のアプリをビルドできます。展開したblock_narabe.zipの中にあるSlover.slnをVS2015で開いてビルドしてください。最初の章で紹介したアプリができます。
EAPファイルを開くと下の図のような画面構成になります。アルゴリズムのパッケージのなかに、迷路法を解く順序をアクティビティ図で書いたフローチャートがあります。Sloverパッケージはコード生成するためのモデルで、ここからコード生成したC#コードと、別に作ったUI画面のC#コードを一緒にビルドしてアプリが出来てます。
BricRoboパッケージはBricRoboモデルに必ずあるメタモデルで消してはいけません。
見かけないツールバーがありますが、これはEAに追加されたBricRoboのアドインで、BricRoboでモデルを書くときに使います。
Photo_2
EAPファイルのアルゴリズムには下の図のようは感じで、どんな手順で処理していけば解けるのか、フローチャートっぽく書いてます。あとでBricRoboモデルでコマンドを増やしていくとき、どんな処理が必要なんだっけ? と考える拠り所になるので、知らないものを作るときは、ちゃんと書いたほうが後で困りませんからね。
Photo_3
そんなわけで、今日で正月休みも終わるので、これにて終了にしたいと思います。最近、なにか作るときは、BricRoboモデルで作ったらどうなるんだろう? 真っ先に考えるようになりました。慣れなんでしょうね。水中ロボットなどはピッタリ当てはまるので簡単なんですが、こういう解法アルゴリズムとかでも、まずは役目のブロックを書き出して、関係を決めて、全体をどう動かしたら完成するのか? と考えると、大抵のものはできると思えてきました。
異論もあるようですが、オブジェクト指向っていうんだから、まずは実体のあるオブジェクト=ブロックで仕組みを作って、そのブロックを作るためのクラス=部品を考えていくほうが、ずっと簡単。 で、反復しながらクラス=部品を洗練(抽象化したり細分化したり)していくしてくのが王道じゃないかと。