Minecraftでレッドストーンをなるべく使わずに複数ビットの加算器をつくる(1) ~情報伝達編~
今回のゴール
異なる二点間においてON/OFFを伝達する方法を考える
ON/OFFとは
Minecraftのアイテムの中にはON/OFFの状態を保持するものが存在する。
例
- レバー
-
トリップワイヤーフック
ON/OFFの定義
隣にレッドストーンランプを置いたときに光る状態をONとする。
(例えばトリップワイヤーフックの場合は、何かが引っかかっている状態がONとなる)
成果物
ひとまず成功。
入力(画面左のレバーのON/OFF)が、出力(画面右の感圧版のON/OFF)に伝搬するようになった。
入力がONのとき
中央の水流も流れつつ画面右のランプも点灯しているため、出力もONになっていることがわかる。
入力がOFFのとき
中央の水流が止まり画面右のランプも消灯しているため、出力もOFFになっていることがわかる。
こうなるまでの試行錯誤とか解説とか
長くなったので、今回を含めて三回に分けて記録する。
- 導線の代わりになるもの(今回)
- 入力の状態を反映するには(次回)
- 出力の状態を反映するには(次々回)
導線の代わりになるものを決める
「今回のゴール」の章にある通り、ある地点のON/OFFを別の地点に伝えなければならない。
Minecraftのアイテムの内、この"伝える"ということに使えそうなものとして以下のものが思い浮かんだ。
- 水
- マグマ
- レール&トロッコ
マグマについては、水とほぼ似た性質な上に流れる距離が水のそれより短いため、マグマを使うくらいなら水を使ったほうが便利だと思われる。(そもそもこのチャレンジ自体が"不便"なものではあるが)
次にレール&トロッコについてだが、過去にトロッコを走りっぱなしにさせたところWiiUがフリーズしたことがあったので今回は使用を見送ることにする。
以上より、情報の伝搬手段として水を採用した。
情報を伝えるためには水の流れを変える必要がある
前項同様、Minecraftのアイテムで水の流れを変えられそうなものを手あたり次第試した。
- ドア
- トラップドア
- フェンスゲート
- ピストン
- 粘着ピストン
ドア、トラップドア、フェンスゲートについては、開閉で水の流れを変えることはできなかった。
ピストン、粘着ピストンについては、ブロックを押し出すことで水の流れを変えることはできたが、ピストンについては、ON→OFFにおける動作で扱いづらい面があったので粘着ピストンのみを使用することにした。
導線に電気が流れている、ということを表現する
当たり前なのだが、水が流れている状態をON、流れてない状態をOFFとする。*1
次回予告
入力の状態を水流に反映する方法 についてグダグダと書く予定。
*1:なぜこんな当たり前のことを書くのかと言うと、"流れている/いない"と"ON/OFF"が逆になっていた方がシンプルな構造で実現できたからである。
ただし、それだと"電気が流れている感"が無くて見栄えがよろしくなかったの為このチャレンジでは使用しないことにした。機会があれば番外編として記述するかも。