見出し画像

shapez 指定した色を出力する工場(何かの萌芽)

仕組み

最初のフィルタでは使わない色をブロックして使う色だけを流す。(例えば赤を使うのは出力が赤、黄、紫、白の場合。赤を使わないのは出力が緑、青、シアンの場合)

次のフィルタは、積層機で積層相手がない場合に迂回するのと同じ要領で、混色しないときは混色機を迂回して次の工程に流す。混色するしないの判定では出力を指定する信号(一番右の定値信号)を使うのではなく、混色相手の有無を見ている。

例えば、赤は緑が流れていれば緑と混色されて黄になり、次の混色機へ運ばれる。緑が流れていなければそのまま次の混色機に流れる。次の混色機で青が流れていれば混色され、黄は白になり、赤は紫になる。青が流れていなければそのまま(黄または赤が)出力される。

これで7色すべて出力できる。

所感

ベルトと信号を良い塩梅で使えたと思う。「良い塩梅で」というのは、ベルトと信号の役割分担というか、ベルトが得意なことと信号が得意なことを上手く振り分けて、全体的にすっきり作れた(と自分では思っている)ということ。

例えば「赤(のベルト)が流れている」ということは「課題は赤または黄または紫または白である」ということを意味している。意味しているというか、そういう情報(信号)になっている。

つまり、最初のフィルタで課題の信号を実体に置き換えて、次のフィルタに伝えている。

まあ、これは色の工場だから、送られてきた素材を見れば課題(求められている出力)が分かるのは当たり前のことではある。

ただここには何かの萌芽があって、3本のベルト(3bit)の状態(ON/OFF、流れているかいないか)で8とおり(赤、緑、青、黄、紫、シアン、白、無色)の色を示すことができるのだから、工場の側に7色のストレージだけを用意しておき、3本のベルトに何でもよいから適当なシェイプを流すことで課題を伝え、該当する色のストレージの蓋を開け閉めして出力する、ということもできるわけである。

(ただ、その場合、どの信号がどの色を示すのかの約束をゲームの外で作っておく必要があるので、ゲームとしてはいまいち魅力を感じない。)