Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement

Template:Mcrs diagrams

Ic translate
此條目的(部分)內容需要翻譯。

你可以幫助我們來翻譯此條目,但請勿使用機器翻譯

Disambig gray  本文章介紹的是需要複雜的紅石電路進行組合建造的機械裝置。關於進階紅石電路,請見「紅石電路」。關於適用於初學者的紅石電路教學,請見「教學/初級紅石電路」。

紅石電路與現實生活中的數字電路(基於布林邏輯代數)基本可以等同看待。如果您熟悉高等教育中的數字電路與初等計算機科學的知識的話,本篇目對您來說將較為容易理解。

計算機

在Minecraft中,一些遊戲內的系統在計算機科學中與圖靈機等價——也就是說這樣您可以建構資訊處理的裝置。這些系統包括:水,沙,礦車,活塞與紅石。

這些系統中只有紅石是特別為資訊處理而設計的,主要以紅石訊號的方式來表示。

紅石與電力類似,具有高適應性與較快的切換速度。就像在現實世界中電力取代了蒸汽動力成為高科技的基石一樣,前述的這些特性使紅石力壓其他機械系統,成為Minecraft中最具有科技含量的部分。

現代數字電路與紅石工程在複雜資訊處理的應用時。都被簡化為抽象的從基本到複雜的多層次結構。

第一層是最基本的組件:紅石粉、紅石火把、紅石中繼器、活塞、按鈕、控制桿與壓力板等所有與紅石訊號相關的方塊。

第二層是二進位邏輯門;他們是能夠處理有限位(一般是1-3位)的混合裝置。

第三層是由邏輯門組合而成的高階組件。這些組件用於處理模式化的位資料,一般能夠將其編碼為更加易讀的數字。例如數學加法器,組合鎖具,寄存器等。

第四層,也是最後一層,是由一系列的高階組件組合成的功能型計算機系統,通常能夠在不需要人工維護的情況下處理任意資料。

8-bit Register Page (J400 series)

一個8位元寄存器,屬於第三層結構


半加器

半加器

邏輯門:同或,蘊含

紅石火把數量:12

紅石粉數量:7

方塊數量:19

尺寸:5X4X4

這個半加器能夠輸出兩個一位二進位數的和。結果位輸出到輸出端S(英文Sum,加法和之意)。如果兩個數字都是1,那麼會產生進位1到輸出端C(Carry,進位之意)(C會變為0)。這個半加器可以被修改為具有同相輸出的C端,但圖中這種結構在全加器鏈中可以照搬。

註:由於紅石線的新特性,本結構已經失效!為了應急,您可以先使用下面的全加器,只要不使用C輸入端即可。

全加器(1位)

全加器(1位加法器)

邏輯門:同或(2),蘊含,非,或,與

紅石火把數量:16

紅石粉數量:32

方塊數量:48

尺寸:從上到下6X12X5,包括輸入/輸出端。

這個全加器能夠將兩個一位二進位數與前一個加法器的進位C相加(事實上是C而不是C,第一層的左下部),產生一個和(S端)和進位(事實上是C而不是C)。

如果要改造為減法器,把其中一個二進位輸入取反(第一個或第二個數)即可。想把第幾個輸入作為被減數,就取反第幾個輸入。如此改造成減法器時,輸出計算結果也是反向的。在現實世界中的計算機裡,二進位帶符號數的第一位(也被稱為「標誌位」)決定了該二進位數的正負,如果你把這個特性(應用相同的反相規則)引入,你就可以得知該數字是負數,還僅僅只是一個較大的數字。

當使用上述的邏輯門時,注意輸入與輸出,您可能會對為什麼這裡使用了如此多的反相訊號而不是同相訊號有疑問。這個全加器使用了比異或門更能實現壓縮的同或門,同理,蘊含門比與門更為壓縮。因此如果您想壓縮全加器的體積,必須使用反相訊號。如果用能夠表示2層方格的符號來表示,圖像將十分複雜,因此我們將每一層都單獨用圖表表示了出來,而且也方便您分層次地建造。

活塞全加器

1位活塞全加器

2位活塞全加器

紅石火把數量:3

粘性活塞數量:2

紅石中繼器數量:8

紅石粉數量:16

方塊數量:7

交替全加器

全加器

進位輸入與輸出端對稱,這樣您能夠方便的壓縮並組合多個這樣的單元。

紅石火把數量:14

紅石線數量:15

尺寸:5x6x3

4位加法器

4位加法器

注意!重要性最低的那一位數就是圖表中的最左邊那位(即「個位」)。這裡之所以標明,是為了向您清楚地說明全加器比起半加器的功能優勢——半加器無法處理比其低一數位的進位。如果您想依據一般的使用習慣把個位放在右邊,那麼將圖表左右鏡像處理即可。

註:由於紅石線的新特性,本結構的個位部分的半加器已經失效!為了應急,您可以先使用全加器,只要不使用C輸入端即可。

邏輯門:同或(7),蘊含(4),非(4),或(3),與(3)

紅石火把數量:56

紅石粉數量:108

方塊數量:164

尺寸:23X12X5

這個加法器能夠將兩個四位二進位數相加(A與B),產生每一位數的和(S)與整個和的進位(C,相當於第五位)。和的位數順序與加數的順序相同,這也就是說,最左側的S是和的最低位。這個4位加法器僅僅是一個全加器鏈的示例,您可以透過同樣的構造來建造具有更多位數加法或減法能力的計算單元。

邏輯單元(2-4解碼器)

在電路中,有時候您可能需要建造能夠依據輸入來選擇輸出的邏輯單元。這樣的邏輯單元能夠用於更複雜的電路中,比如說算術邏輯單元(ALU)。下面介紹的邏輯單元又被稱為2-4解碼器。

這是一個2位邏輯單元,依輸入不同可以有4種狀態。

Logic unit

輸出端在最上面一行,依照11、00、01、10的順序排列(輸入端順序為上側的是第一位,下側第二位)。

下面是另一種採用格雷碼的簡化版本。輸出端為頂部那行末端的紅石火把。本設計能夠被擴展到任意位,但會受到電路延時的限制。相對地,輸出排序為11、01、00、10。

Logic unit 3

二進位轉換為八進位(3-8解碼器)

3bit Implies

3位二進位轉換為1位八進位

這個裝置是一系列邏輯門的組合,分為8部分。當組合起來時能夠將一個3位二進位數輸入轉換為一位八進位數輸出(未編碼狀態,所以輸出端數量與進位數相同),功能等同於3-8解碼器。由於其最大占地面積不過5x5x3,所以有很強的適應性。

右圖的每一部分都可以將輸入端連接到共同的輸入源,但建議您在每一個輸入端都加一個反相器以使在該電路與其他電路協同工作時,輸入端保持獨立性。

某些部分也可以作為三態緩衝器使用,或至少您能夠方便地將其改造為三態緩衝器。

下表與右上圖的8部分一一對應。

對應八進位數字 0 1 2 3 4 5 6 7
尺寸 5x3x2 5x3x3 5x5x3 5x5x3 5X3X3 5x4x3 5x5x3 5x5x3
紅石火把數量 1 2 2 3 2 3 3 4
紅石粉數量 7 7 12 10 7 7 10 10

二進位轉換為十進位/十六進位(4-10或4-16解碼器)

4bit Implies

4位二進位轉換為十進位/十六進位

這個裝置是一系列邏輯門的組合,分為10或16部分。當組合起來時能夠將一個4位二進位數輸入轉換為一位十進位或十六進位數輸出(未編碼狀態,所以輸出端數量與進位數相同),功能等同於4-10或4-16解碼器。由於其最大占地面積不過3x5x2,所以有很強的適應性。

與上一章節的3-8解碼器類似,右圖的每一部分都可以將輸入端連接到共同的輸入源,但建議您在每一個輸入端都加一個反相器以使在該電路與其他電路協同工作時,輸入端保持獨立性。

右圖的右下角是一個說明性質的圖例,圖表中列出的16個部分的輸入端皆按此逆時針順序排列。

對應十進位/十六進位數字 0 1 2 3 4 5 6 7 8 9 A B C D E F
尺寸 3x3x2 3x4x2 3x4x2 3x4x2 3x4x2 3x5x2 3x5x2 3x5x2 3x4x2 3x5x2 3x5x2 3x5x2 3x5x2 3x5x2 3x5x2 3x5x2
紅石火把數量 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-4編碼器)

您也可以將一個十六進位訊號轉換為一個4位二進位訊號。與前面不同的是,您不再需要除了或門之外的任何邏輯門了——因此您只需要分析各個輸入端與哪幾個輸出端的對應關係,然後直接用紅石線連過去。需要注意的是,為了防止不同輸入端連線的互相干擾,在最終連到輸出端之前您需要用連續的兩個非門或是中繼器來互相隔離;您也可以選擇在一堆連向某一輸出端的紅石線末端用最簡單的輸入隔離型或門(參見紅石電路條目的或門設計方案B或C)。在最終投入使用前請先測試以保證不會出錯。


下面是十六進位與對應二進位的列表:

十六進位數 0 1 2 3 4 5 6 7 8 9 A B C D E F
第4位 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
第3位 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
第2位 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
第1位 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

如果您想得到一個八進位轉二進位的8-3編碼器,在本機構基礎上剝離第四位輸出與前八位輸入即可。

示例-順序敏感的3位十進位數密碼鎖

Door Lock Key

一個對順序敏感的3位十進位數密碼鎖邏輯圖

右側的示例採用了ORs(符號為>=1)、異或門 (符號為=)、 RS或非鎖存器(符號為SR)和一些延遲器(符號為dt*)。依個人喜好,我採用了同或門設計方案C。

右側的例子採用了4位設計,因而您可以設定一個十六進位的密碼。由於狀態(0)十六進位 == (0000)二進位無法啟動系統,故您只可以設定15種密碼(1到F,或0到E)。如果您希望加入第16種,那麼請自行編輯電路加入第五位輸入。

接下來我們將規定(0)十六進位 為 (1111)二進位,至於[1,9]區間內的數請查看上一節末尾的表格。這樣,我們就可以使用十進位數字作為密碼的外在顯示了。我們必須把十個按鈕分配到對應的二進位資料上,請看右圖的前兩列:第一列代表表示為十進位(當然十六進位在[0,9]區間內和十進位的表示一樣)的輸入碼;第二列對應著每一個輸入碼的二進位。當然您也可以加入更多的按鈕來對應區間[A,E],我只是為了講解方便而把那幾位去除了。方框/b1\輸出第一位,方框/b2\輸出第二位,依此類推。

接下來您可以看到用Key[i](i=1,2,3)來表示的密碼設定區。這幾個Key[i]方框的第一個輸出均為第一位,第二個輸出為第二位,依此類推。您可以在每個Key[i]處用控制桿設定二進位加密型的密碼。請參考上一節末尾的表格,還有(0)十六進位:= (1111)二進位的特殊對應。如果我們用按鈕輸入了第一位,裝置會與這一位對應的四位二進位數逐位比較。一旦每一位都正確,才會輸出置位訊號到下一級。

因此我們要實現邏輯運算(((b1=b1 & b2=b2) & b3=b3) & b4=b4) =: (b*=b*),在Minecraft中至少需要4個與門。這樣我們可以把識別透過的訊號存到RS鎖存器/A\中。Key[2]和Key[3]具有同樣的驗證比較過程。

我們必須確認如果第二輸入位是錯的話狀態會被清除。因此我們採用了一個按鍵觸發事件(--/b1 OR b2 OR b3 OR b4\--/dt-\--/dt-\--)。請在圖中找到包括兩個"dt-"的那三個方框。工作原理是:任意鍵按下就會產生訊號,然後再加上一個小延遲。為了在第二個輸入位錯誤時復位/A\,我們進行邏輯運算(有鍵按下) 「與」 (非B),即「任何鍵按下且第二位輸入錯誤」。這樣如果我們正輸入第一位,/A\不會被復位;如果/A\已經被啟動,那麼只有/A\應當被復位。因此在第二位輸入錯誤而且第一位已經輸入時繼續邏輯運算(B* & A) =: (AB*),這樣/AB*\就復位了記憶單元/A\。為了避免如果按按鈕時間過長從而使/A\錯誤地被復位的問題,我們加入了主延遲元件/dt+\。/AB*\後面的非門是為了人工復位而設計的(例如可以連接一個壓力板)。

然後,把整個復位電路複製到Key[2]上去,除了人工復位端由(非A)引出,自動復位端(即錯誤輸入後的)從C引出。從A接來的人工復位阻止在第一位未輸入前B就被啟動。所以這一系列線路保證了本裝置密碼的順序敏感特性。

問題是為什麼我們要使用短延遲方塊/dt-\。如果/A\啟動後,第二位也成功輸入,那麼B啟動,(非B)變為低電平。但當(非B)仍然為高電平時,按鍵觸發事件也被啟動,A會被錯誤地復位——但這一切沒有發生。/dt-\方塊的應用使得在按鍵觸發事件被啟動之前/B\可以有充足的時間作出反應。

對於/C\來說,只需要引自B的人工復位端即可以防止C在B啟動之前被錯誤啟動,同時也能保證在人工復位端復位/A\與/B\時,/C\也可以被復位。

優缺點:

+ 您可以在不改變電路的前提下改變每一位密碼。
+ 您可以依據同樣原理擴展比較模組電路以使密碼鎖支持更多位數的密碼。
+ 您可以透過將除了最後一位之外的任何位為(0000)二進位來減少密碼位數。
+ 您可以將最後一位設為(0000)二進位來直接使門打開。
- 想要支持越多的位數,輸入欄就越長。您可以選擇被編碼的按鍵以保持電路的小規模——但要小心,事實上輸入編碼電路比起由於位數增加而使背後巨大的裝置規模變得更大來說,是微不足道的。

嚴格來說不算缺點的缺點:本電路中當密碼是311時可能會出現剛輸入到第二位,密碼鎖就打開了。為了防止這種情況,用中繼器在(非A)與(復位B)之間加一個延遲即可。

如果您修復了這一點,電路會因密碼長度差異而具有以下的加密強度:( ||位數|| = 2n-1,密碼組合數:||位數||長度 )

長度 1位數 2位數 3位數 4位數 5位數
2 位 3 9 27 81 243
3 位 7 49 343 2401 16807
4 位 15 225 3375 50625 759375
5 位 31 961 29791 923521 28629151

雜項

對順序不敏感的密碼門

只要特定組合的控制桿拉下或是按鈕按下,門就會打開。 (註:您需要對邏輯門有一定的了解才能理解本裝置的構造)
教學[1](十分易學)

RS或非密碼鎖

把一系列的按鈕連接到RS鎖存器陣列的S端,然後根據需要將這些RS鎖存器的Q端或Q端連入一系列與門的輸入,將與門的輸出接到鐵門那裡。最後,用一個單獨的復位用按鈕連接所有RS鎖存器的R端。RS鎖存器使用的是Q端(需要按按鈕)還是Q端(不需按按鈕)決定了密碼組合。
簡單的例子:

RSnorlatchlock

這個例子不具有自動關門功能。如果加入自動復位電路就可以解決這個問題。

與門密碼鎖

基於與門的組合鎖僅僅需要控制桿開關、與門和非門。像下面的例子一樣,與門鎖具構造極其簡單,但在複雜系統中不具有動態變化能力,也沒有自動復位裝置。密碼組合取決於控制桿所附著方塊後面是否有火把附著(起到非門的作用)。您可以像這個例子一樣在最末端的與門處放一個具有最高權限的控制桿,只有控制桿拉下時,輸入正確密碼才能開門。

Combolockredstone

或門密碼鎖

或門密碼鎖就更為簡便了,當所有輸入全部錯誤時,輸出才會無訊號。

由於或門密碼鎖的高壓縮性與快速反應能力,本裝置對於地址解碼器與可尋址儲存器(RAM)極其有用。

設計方案A。密碼由輸入端那裡的紅石火把決定(圖中為1001)。

Or-lock

您也可以透過把輸入端後的紅石線改成中繼器,從而能夠讓控制桿門都靠在一起。

同理,您可以擴展更多的輸入端。

設計方案B。密碼由藍色區域那裡的反相器決定(圖中為001001)。

File:Compact or-lock.JPG


N為輸入端數量 K為您希望設定的密碼中「1」的個數

設計方案 A B
尺寸 2N-1x3x1 Nx6x2
紅石火把數量 K 2N-K
紅石粉數量 3N-K-1 2.5N + 2K

訊號分類輸出裝置

Sorting Device

深色方格為裝置本體,淺色方格標明擴展方式

本裝置構造簡單,實質上只有一個或門與一個與門。

輸入端為右側和下側。這個裝置將輸入訊號分類,兩輸入均為「1」時,上側輸出才為「1」;兩輸入均為「0」,左側輸出才為0,這樣您就可以統計兩個輸入端1與0的個數或持續時間了。 如圖所示,本設計方案十分容易擴展。淺色的方格展示了擴展的方法與輸入、輸出端的位置。依照圖示,將同樣的裝置對應埠接入即可。

3位分類輸出裝置的真值表:

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

順序敏感的RS或非密碼鎖

這種密碼鎖只有當以特定順序按下按鍵時,門才會打開。

註:您需要對邏輯門與MCRS符號有一定的了解才能理解本裝置的構造。

做一系列的按鈕,並(只連接)其中一個到RS或非鎖。然後把RS或非鎖與第二個按鈕連接至通向另一個RS或非鎖的 與門,繼續這個步驟下去直到你連接了所有的按鈕或者對這個鎖滿意了。把最後一個的RS或非鎖和一個來自輸入按鈕的訊號連接到一個單獨的與門,接出到輸出的RS或非鎖。然後把所有剩餘的按鈕都連接到輸入按鈕並且將重設訊號發送到每一個RS或非鎖。緊鄰門放置一個壓力板可以將門重設。這種類型的鎖的安全性有嚴格的限制。比如說,不是所有按鈕都能被使用否則這個系統將無法重設

原文: (Then connect both the RSNOR latch and a second button to an AND Gate, which feeds to another RSNOR latch. Do this continually until you have either filled all of the buttons or are satisfied with the lock. Connect the final RSNOR latch to a separate AND Gate with a signal from an enter button. Feed that to the output RSNOR latch. Then connect any of the left-over buttons to the enter button and send reset signals to all of the RSNOR latches. A pressure plate next to a door can reset the door. This type of lock has severe limitations its security. For example, not all the buttons could be used in the pin or there would be nothing to reset the system.)

For a lock that can have a combination of any size, using all the buttons, and still have a wrong entry reset the system, you need a different way for it to reset. To construct this, hook up a panel of buttons (any number, but four or more is preferred) to a parallel series of adjacent repeaters. Invert as necessary so that all the repeaters are powered and are unpowered by the press of the corresponding button. These repeaters power a row of blocks. On top of the blocks, place a torch corresponding to the incorrect buttons for the fist number in the PIN. For the correct button/number, place dust under the powered block which leads to a RS NOR Latch. Place a row of blocks above the torches for the incorrect buttons, with redstone dust on top. Then connect this dust to the reset of the first RS NOR Latch. Only the correct button will set the RS NOR Latch and all others will reset it. Connect the output of the RS NOR LATCH to half of an AND gate. After the first row of blocks with the reset torches, place another row of repeaters and another row of blocks. Again place torches for the incorrect buttons and dust under the correct button's line. Power will be fed from the buttons through the rows of repeaters and blocks for as many rows as there are digits in the PIN number. Connect the dust from the correct button to the other half of the AND gate coming from the first RS NOR Latch. Only if the two conditions are met, that the first button was pushed correctly, setting the first RS NOR Latch, and the second button is pushed correctly will the AND gate send a signal to set the second RS NOR Latch. Again, connect a reset line from the incorrect button's torches to the reset of the second RS NOR Latch. NOTE: Delay the reset signals by one full repeater to give time for the next RS NOR Latch to be set before the reset happens. Continue building the array in the same manner until you reach the desired number of digits. In operation, when a button is hit, each RS NOR Latch checks (through the AND gate) to see if the previous RS NOR Latch is set, and the correct button for this RS NOR Latch has been pushed. Only when the correct buttons are pressed in order, will the signal progress through the conditional RS NOR Latches to the end. Connect the output of the last RS NOR Latch to a door and attach a line to a pressure plate inside the door to reset the last RS NOR Latch. See the video demonstration linked below. (Where?) (Yes where? A video would be very helpful)

引用

相關頁面

Advertisement