BricRoboでブロック並べを解いてみる(3) – アプリの仕組み

何ができるかわかったところで、仕組みがどうなっているか見てみます。画面でちょこまか動いているのはローバーやブロックを動かした結果を表示しているだけで、実際の情報はBricRoboのモデルとして作られた中にあります。
この図の上の部分が見えている画面。画面上のサークルやローバーやブロックは、BricRoboモデルで作成した中身を反映しているだけです。
では色分けした部品が何をしているかというと、
■青色
サークルを表しています。サークルが持つ情報には、自分はどの位置なのか、何色なのか、ブロックが乗っているのか、ローバーが乗っているのか、ゴールなのか、迷路法で計算した距離、などです。
■黄色
サークルに対してコマンドを発行します。あとで説明しますが、サークルはコマンドを受け取ると何か処理をします。そのコマンドを画面からもらってサークルに流す役目をします。
■緑色
サークルから流れてきた最後のコマンドを受け取り、画面側に提供します。黄色から流れたコマンドは、サークルを巡って最後にここに流れ着きます。調べるコマンドは、この流れ着いたコマンドの中に知りたい値が入っています。
■ピンク色
サークルにブロックを置きます。ブロックを置く場合にはサークルと同じ色のところに同じ色のブロックを置かないとかいろいろ置き方があるので、その辺の処理はここで受け持ちます。
Photo_2
この下側の実際に迷路法を解いている部分。BricRoboモデルの実物は次の図になります。凄い複雑そうに見えるでしょ。でも、書いてあることは上の図の通りで、4x4マス目の上下左右の繋がりをポートの結線で表しているので、こんなにたくさん線が引いてあるのです。
しかし、ここで気づきますよね。サークルの繋がりを結線で表しているので、どんな形でも関係ないんですわ。平面の2次元でなくても3次元でもOK。複雑になるなら、3次元の層ごとに別のダイアグラムに分けて書けばいいわけで。
なんで、こんなもので迷路法が解けるのか? という仕組みについては、次回で解説します。
Field
>>BricRoboでブロック並べを解いてみる(4) – 迷路法をブロック並べに応用