Minecraft Wiki
登録
Advertisement
Book and Quill
このページは翻訳途中です。 
あなたが内容を翻訳してみませんか?
Brush
この記事はスタイルガイドの基準を満たす必要があります。 [議論]
この項目を整理してくださる協力者を求めています。
Mcredstonesim icon
この記事は、コンパクトかつわかりやすくするためにMCRedstoneSim形式の図を用いて記述されています。 
2ブロックを越える高さの回路もあり、その場合はレイヤー構造をGIFアニメやラベルを付記することで表します。完全な解説はレッドストーン記号体系のページにあります。

高度なレッドストーン回路(英:Advanced Redstone Circuits)には、複雑なレッドストーン回路を必要とするメカニズムが存在します。これらは通常、論理ゲートなどの多くの単純な装置で構成されています。より単純なメカニズムについては、電子メカニズムレッドストーンワイヤー式トラップを参照してください。

コンピュータ[]

Minecraftでは、いくつかのゲーム内システムで効率的に情報を処理することができます。そのシステムはトロッコピストンレッドストーンなどです。これらすべてのシステムのうち、レッドストーンのみが特別にレッドストーン信号という形式を使い、情報を処理するために追加されました。

レッドストーンは電気と同様に信頼性が高く、切り替えスピードが速いため、電気が空気圧などの様々な機会を追い越して我々の世界の先端技術になったように、Minecraftの先端技術として他の機械システムを追い越してきました。

現代のデジタル回路でもレッドストーン工学でも、複雑な情報処理系の要素の構築は複数の抽象化された層を用いて簡略化されています。

第1層は原子部品の層で、レッドストーンレッドストーントーチレッドストーンブロックレッドストーンリピーター感圧板ピストンボタンレバーの全てがレッドストーン信号に影響を与えることができます。

第2層は2進論理ゲートです。これは複合デバイスで、非常に限定された内部状態を有し、通常は1〜3ビットで動作します。

第3層は論理ゲートを組み合わせて作られたハイレベルな構成要素です。これらの装置はビットのパターンで動作し、頻繁に自然数など人間にとってよりわかりやすい形に翻訳し、抽象化します。このような装置には数学的加算器、組み合わせ錠、記憶レジスタなどがあります。

第4層および最終層では、主要な構成要素の組が組み合わされて、しばしばユーザーの監督なしで任意のデータを処理できる機能的なコンピュータシステムを作成します。

8-bit Register Page (J400 series)

8ビットレジスタページは抽象化部品の第3層にあります。

変換器[]

これらの回路は、与えられた形式の入力を別の形式に変換するのみです。変換器には、2進→BCD、2進→10進、2進→16進、BCD→7セグメントなどがあります。

ピストンマスク分波器[]

この設計は、ANDゲートを組み合わせたものと理解してよいでしょう。

分波器は、次のような論理を使った回路です。

出力0 = (~bit2) & (~bit1) & (~bit0)

出力1 = (~bit2) & (~bit1) & (bit0)

といった具合です。

分波器を実装する一番わかりやすい方法は、論理ゲートを何個も並べて接続することですが、3桁や4桁でもめちゃくちゃになってしまいます。

2進数の表を見てみると、あるパターンがある事に気づくでしょう。

N Bit2 Bit1 Bit0
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1

桁数をQとすると、最上桁はQ/2の数値を反転させ、次の桁はQ/4の数値を反転させ、Q番目の桁に到達するまで繰り返します。

したがって、このような回路を作る必要があります:

Demux1

ここで、緑の三角形は非反転、赤の三角形は反転します。黒い線は想像上のANDゲートです。また、上は最下桁、下は最上桁を表します。

これを簡単に実現するには、ブロックと空気で構成された3枚の「パンチカード」を使います。「パンチカード」やマスクは、スライムブロックを使ってピストンで動かしています。

つまり、3層のマスクのすべてが特定の方法で整列している場合にのみ、信号が伝播していることになります。

ファイル:3-to-8 demux.png

ファイル:Bits demux38.png写真を開くと層を見られます。

ご覧のように、この仕組みは非常に小型で分かりやすいです。

これを逆にして使うこともできます(多重化器としてではありませんが、リピーターを逆にすると、全ての過出力(0~7)からの信号は、分波器の現在の状態と一致する場合にのみ伝搬するので、「出力3 = (入力3) AND (Demux=011)」のように動作します)。

2進数→8進数[]

3bit Implies

3桁二進数→8進数のゲート。

3桁の二進数入力を多数のうち1つの起動線に変換する一連のゲートです。大きくても5×5×3と小型なので、色々な意味で便利です。

暗黙的論理和を使用して結合された線が多数あるため、信号が他の入力に負帰還されないように、各入力の前に一方通行装置を配置して回路を構成する必要があります。

各出力線の要件(分離一方通行装置を除く):

0 1 2 3 4 5 6 7
大きさ 5×3×2 5×3×3 5×5×3 5×5×3 5×3×3 5×4×3 5×5×3 5×5×3
トーチ 1 2 2 3 2 3 3 4
レッドストーン 7 7 12 10 7 7 10 10


2進数→16進数または10進数[]

4ケタの二進数入力を、多数の内の1つの起動線に変換する一連のゲートです(例えば、入力が10進数の場合は0~9、16進数の場合は0~F)。これらは最大でも3×5×2と小型なので、様々な意味で便利です。

暗黙的論理和を使用して結合された線が多数あるため、信号が他の入力に負帰還されないように、各入力の前に一方通行装置を配置して回路を構成する必要があります。

4bit Implies

4桁二進数→16進数のゲート

各出力線の要件(分離一方通行装置を除く):

0 1 2 3 4 5 6 7 8 9 A B C D E F
大きさ 3×3×2 3×4×2 3×4×2 3×4×2 3×4×2 3×5×2 3×5×2 3×5×2 3×4×2 3×5×2 3×5×2 3×5×2 3×5×2 3×5×2 3×5×2 3×5×2
トーチ 1 2 2 3 2 3 3 4 2 3 3 4 3 4 4 5
レッドストーン 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

16進数→2進数[]

また、16進数の信号を4桁の2進数に変換することもできます。必要なのはORゲート4つのみで、それぞれ8つの入力があります。これらは、信号が他の入力に負帰還されるのを防ぐために、ORを分離する必要があります。

それぞれの出力ラインについて、下の表の1に該当する箇所に該当する入力ラインに接続したORゲートを設置します。

0 1 2 3 4 5 6 7 8 9 A B C D E F
4-bit 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
3-bit 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
2-bit 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1-bit 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

[]

Door Lock Key

Logic for a 3-digit key log, with digits 0-9. It's order-sensitive

右図の例ではOR回路を使用しています。 (>=1), [./https://minecraft.gamepedia.com/Logic_circuit#XNOR_Gate XNORs] (=), [./https://minecraft.gamepedia.com/Memory_circuit#RS_NOR_Latches RS NOR latches] (SR) いくつかの [./https://minecraft.gamepedia.com/Redstone_Repeater 遅延] (dt*). XNOR については、C 設計を好みます。

右の例では 4 ビット設計を使用しているため、16 進数のキーを扱うことができます。 したがって、[1,F] または [0,E] の 15 桁のさまざまな数字を使用できます。 状態 (0)16 = (0000)2 ではシステムがアクティブにならないため、15 しか使用できません。 16 の状態を処理する場合は、ロジックを編集して、5 ビットの入力を操作します。5 番目のビットは (0)16 の状態を表します。

以下では、(0)16 = (1111)2 を使用します。 [1,9] の場合、MUX テーブルがオンになります。 したがって、キーは 10 進数を使用します。 したがって、使用するボタンをバイナリ データに多重化する必要があります。 ここで、最初の 2 つの列に目を通します。 1 番目は入力桁を (16 進数) で表し、2 番目は入力桁を 2 進コードで表します。 ここで [A,E] のボタンも追加できますが、より良い配置を好むことを断念しました。 /b1\-box は最初のビットを出力し、/b2\-box は 2 番目のビットを出力します。

i=1..3 の Key[i] が表示されます。ここで、使用するキーを設定します。 それらの最初の出力は 1 ビット、2 番目の出力は 2 ビットなどです。 バイナリ暗号化のレバーを使用して、ここでキーを設定できます。 ここでは、(0)h := (1111)2 の MUX テーブルを使用します。 最初の桁を入力すると、ビットをペアで比較する必要があります (b1=b1、b2=b2、b3=b3、b4=b4)。 すべての比較が正しい場合、最初の桁が正しいという状態を設定します。

したがって、(((b1=b1 & b2=b2) & b3=b3) & b4=b4) =: (b*=b*) を結合します。 Minecraft では、左側のように 4 つの AND を使用する必要があります。 ここで、ステータスを RS-latch /A\ に保存します。 比較は、Key[2] と Key[3] に対して同じように機能します。

次の桁が間違っている場合、状態が消去されることを確認する必要があります。したがって、キー押下イベント (--/b1 OR b2 OR b3 OR b4\--/dt-\--/dt-\--) を処理します。 「dt-」の近くにある 3 つのブロックの図を検索します。ここで、いずれかのキーが押されたかどうかを確認し、少し遅れてイベントを転送します。 /A\ をリセットするために、2 桁目が間違っている場合は、(キーが押された) & (B ではない) を組み合わせます。これは、任意のキーが押され、キーの 2 桁目が false と入力されたことを意味します。これにより、/A\ はリセットされません。最初の数字を入力すると、/A\ が既にアクティブになっている場合にのみ、/A\ がリセットされます。したがって、(B* & A) =: (AB*) を結合します。 /AB*\ は、2 桁目が false で、最初のキーが既に入力されている場合、メモリ セル /A\ をリセットするようになりました。桁ボタンを長押しすると /A\ がリセットされるため、メジャー ディレイ /dt+\ を使用する必要があります。この失敗を少し防ぐために、遅延 /dt+\ を使用します。 /AB*\ の後の OR は、手動リセット、つまりプレッシャー プレートによるリセットに使用されます。

次に、Key[2] のリセット回路全体をコピーします。唯一の変更点は、手動リセットが (A ではなく) から発生し、自動リセット (後の間違った桁) が (C) から発生することです。最初の桁が入力されていない場合、A からの手動リセットにより、B がアクティブ化されなくなります。したがって、この行は、キーが順序に依存していることを確認します。

問題は、マイナー遅延ブロック /dt-\ を使用する理由です。 /A\ がオンになっていることを視覚化します。ここで、正しい 2 桁目を入力します。したがって、B がオンになり、(B ではない) がオフになります。ただし、(B ではない) がまだオンになっている間は、キーが押されたイベントはまだ機能しているため、A はリセットされますが、そうすべきではありません。 /dt-\-blocks を使用すると、key-pressed-event がアクティブになる前に、/B\ に行動する機会を与えます。

/C\ の場合、リセット イベントは B からの手動リセット行のみです。そのため、/B\ が true になる前にアクティブ化されません。そして、プレッシャープレートが /A\ と /B\ をリセットすると無効になります。

長所
  • 回路自体を変更することなく、すべての桁のキーを変更できます。
  • 比較回路をコピーすることにより、任意の桁数でキーを拡張できます。 以前の出力からの依存関係のみ。
  • 任意の桁 (最後の桁を除く) を (0000)2 に設定すると、桁数を 1 減らすことができます。
  • 最後の桁を (0000)2 に設定すると、ドアを永続的に開くことができます。
短所
  • The bar to set the key will be get the bigger, the longer the key you want to be. The hard-coded key-setting is a compromise for a pretty smaller circuit, when using not too long keys. If you want to use very long keys, you also should softcode the key-setting. But mention, in fact the key-setting-input will be very small, but the circuit will be much more bigger, than using hard-coded key-setting.

Not really a con: in this circuit the following happens with maybe the code 311: 3 pressed, A activated; 1 pressed, B activated, C activated. To prevent this, only set a delay with a repeater between (not A) and (reset B). So the following won't be activated with the actual digit.

If you fix this, the circuit will have the following skill, depending on key-length. ( digit = 2n-1, possibilities: digitLength )

Length 1 2 3 4 5
2 bit 3 9 27 81 243
3 bit 7 49 343 2.401 16.807
4 bit 15 225 3.375 50.625 759.375
5 bit 31 961 29.791 923.521 28.629.151

そのほか[]

ダイヤル錠[]

詳細は「Tutorials/Combination locks」を参照

Tutorials/Combination locks

Sorting Device[]

This is a device which sorts the inputs, putting 1s at the bottom and 0s at the top, in effect counting how many 1s and how many 0s there are. It is designed so that it is easily expandable, as shown in the diagram. The 5×5 center square is tileable. The inputs are at the bottom and right and the outputs are at the top and left

Truth table for a three-bit sorting device:

A B C 1 2 3
0 0 0 0 0 0
1 0 0 1 0 0
0 1 0 1 0 0
0 0 1 1 0 0
1 1 0 1 1 0
0 1 1 1 1 0
1 0 1 1 1 0
1 1 1 1 1 1

タイマー[]

Timers can detect the time difference between the first input and the second.

2
1
A timer. The extra repeater at the bottom is to compensate for the delay of the upper repeaters.
Example of a timer in action. This one determines the time difference between the input and output of a 2-tick repeater.

The amount of time can be determined by how far the signal travels. For example, if 5 of the locked repeaters are powered, it means the time difference was 0.4-0.5 seconds, ignoring lag. If the time difference is exactly 0.4 seconds, 4 repeaters will be powered.

The repeaters that will lock can be set to different delays. For example, if they are set to 4 ticks and the first 3 are active, it means the time difference was 0.8-1.2 seconds. You can even have a mix, which can be handy if you know what the range is likely to be. However, you will need to be careful when reading these timers.

If you are measuring higher scales, the second signal might not reach all of the repeaters. You will need repeaters to replenish the signal.

A section of the timer that replenishes the signal. Since the upper repeater has a delay, another repeater is required in the lower section.

If the signals are short times (like if you are using [./https://minecraft.gamepedia.com/Observer observers]), you may not have time to read the data.

2
1
An input modifier. When the inputs are applied, the timer will treat them as active until the button is pressed.

You can also measure how long a signal lasts.

A timer that measures the duration of a stone button.

Please note the following when making a duration timer:

  • Because of the delay that the redstone torch adds, the delay of the initial repeater, the one that stays unlocked, must be increased to 2 ticks.
  • The data from the timer will be preserved.
  • Because the repeaters will still be powered when the timer is used again, the circuit must be obstructed between uses in order to unlock the repeaters. To do this mine the [./https://minecraft.gamepedia.com/Redstone_torch redstone torch], wait for all of the repeaters to deactivate, and put the redstone torch back.

D フリップフロップを使用したシリアル インターフェイス ロック[]

ファイル:Serial lock LogicCircuit.png

D flip-flop is an electronic component that allows you to change its output according to the clock. It's and RS NOR latch that sets its value to the D input when the ">" (clock) input is changing its state from low to high (in some cases from high to low).

Basically, it's equivalent to the expression: "Set the output Q to the input D when the input C goes from 0 to 1".

For example, you can use D flip-flops to shift the value from left to right.

ファイル:D3333.pngファイル:D lock.png

In this lock, the > signal propagates from the rightmost flip-flop to the leftmost, so the signal shifts to the right. This circuit allows you to input a 4-bit number with two levers. You can use any number of bits, but this configuration is already pretty secure even if someone figures out what a lock it is.

So, if you want to input the combination 1-0-1-0, follow these steps:

  1. D = 1
  2. > = 1
  3. > = 0
  4. D = 0
  5. > = 1
  6. > = 0
  7. D = 1
  8. > = 1
  9. > = 0
  10. D = 0
  11. > = 1
  12. > = 0

In theory, you can program the lock from this serial interface as well. Just attach 4 RS NOR latches and a hidden place for the programming levers.

This design is not very practical as a lock, but might be a nice feature on something like a puzzle challenge map.

こちらもご覧ください[]

Advertisement