Minecraftでレッドストーンをなるべく使わずに複数ビットの加算器をつくる(1) ~情報伝達編~

前回分はこちら

今回のゴール

異なる二点間においてON/OFFを伝達する方法を考える

ON/OFFとは

Minecraftのアイテムの中にはON/OFFの状態を保持するものが存在する。

  • レバー

    f:id:megane_bean:20160929011448p:plain

  • トリップワイヤーフック

    f:id:megane_bean:20161001172948p:plain

ON/OFFの定義

隣にレッドストーンランプを置いたときに光る状態をONとする。

(例えばトリップワイヤーフックの場合は、何かが引っかかっている状態がONとなる)

成果物

ひとまず成功。

f:id:megane_bean:20161001175039p:plain

 入力(画面左のレバーのON/OFF)が、出力(画面右の感圧版のON/OFF)に伝搬するようになった。

  • 青枠 ・・・ 入力の状態を可視化するレッドストーンランプ
  • 緑枠 ・・・ 入力の状態を出力の状態に伝えていることを示す水流
  • 橙枠 ・・・ 出力の状態を可視化するレッドストーンランプ

入力がONのとき

f:id:megane_bean:20160930024657j:plain
中央の水流も流れつつ画面右のランプも点灯しているため、出力もONになっていることがわかる。

入力がOFFのとき

f:id:megane_bean:20160930024743j:plain
中央の水流が止まり画面右のランプも消灯しているため、出力もOFFになっていることがわかる。

こうなるまでの試行錯誤とか解説とか

長くなったので、今回を含めて三回に分けて記録する。

  1. 導線の代わりになるもの(今回)
  2. 入力の状態を反映するには(次回)
  3. 出力の状態を反映するには(次々回)

導線の代わりになるものを決める

「今回のゴール」の章にある通り、ある地点のON/OFFを別の地点に伝えなければならない。

f:id:megane_bean:20160929022125p:plain

Minecraftのアイテムの内、この"伝える"ということに使えそうなものとして以下のものが思い浮かんだ。

  • マグマ
  • レール&トロッコ

マグマについては、とほぼ似た性質な上に流れる距離が水のそれより短いため、マグマを使うくらいなら水を使ったほうが便利だと思われる。(そもそもこのチャレンジ自体が"不便"なものではあるが)

次にレール&トロッコについてだが、過去にトロッコを走りっぱなしにさせたところWiiUがフリーズしたことがあったので今回は使用を見送ることにする。

以上より、情報の伝搬手段としてを採用した。

情報を伝えるためには水の流れを変える必要がある

前項同様、Minecraftのアイテムで水の流れを変えられそうなものを手あたり次第試した。

  • ドア
  • トラップドア
  • フェンスゲート
  • ピストン
  • 粘着ピストン

ドアトラップドアフェンスゲートについては、開閉で水の流れを変えることはできなかった。

ピストン粘着ピストンについては、ブロックを押し出すことで水の流れを変えることはできたが、ピストンについては、ON→OFFにおける動作で扱いづらい面があったので粘着ピストンのみを使用することにした。

導線に電気が流れている、ということを表現する

当たり前なのだが、水が流れている状態をON、流れてない状態をOFFとする。*1

次回予告

入力の状態を水流に反映する方法 についてグダグダと書く予定。

*1:なぜこんな当たり前のことを書くのかと言うと、"流れている/いない"と"ON/OFF"が逆になっていた方がシンプルな構造で実現できたからである。
ただし、それだと"電気が流れている感"が無くて見栄えがよろしくなかったの為このチャレンジでは使用しないことにした。機会があれば番外編として記述するかも。