很多人玩《我的世界》,卡在紅石這一步。教程裏的電路能照着擺,擺完卻不知道那些線和火把在幹什麼,換個教程又得重新抄一遍。
其實紅石沒有想象中那麼玄。它在絕大多數場合只關心一件事:這一格有沒有信號。有就是通,沒有就是斷。計算機內部也只認兩種狀態,0 和 1。這不是巧合,兩者用的是同一套邏輯。
這篇講三件事。爲什麼兩種狀態就夠用,幾個最基本的邏輯門長什麼樣,以及 1+1 是怎樣被一個電路算出來的。
一根線只有通和斷
紅石信號有強度,範圍從 0 到 15,每經過一格紅石粉衰減 1 點。單靠紅石粉,信號傳十幾格就沒了。這是新手搭長線路時最想不通的地方,明明接上去了,末端卻沒反應。
於是就有了中繼器。很多人以爲中繼器是把信號加強,其實它做的是把信號重新算成 15 點強度,相當於讓計數器歸零重算。
順帶記住一個數字。中繼器有延遲,最短 1 紅石刻,也就是 0.1 秒,最長 0.4 秒,後面還會用到。
這裏能看出紅石和真實電路的區別。現實中的導線不需要每隔十幾米插一箇中繼器,信號衰減是紅石的設定,不是它的毛病。
兩種狀態爲什麼夠用
十進制麻煩在於要區分十種狀態。判斷一根線是 0 還是 1,比判斷它是 0 到 9 裏的哪個容易得多。電路里最容易做對的事,就是有電和沒電。
一位只能表示兩個數,所以要用多位。八位能表示 256 個數,從 0 到 255,計算機裏常見的 255 和 256 就是從這來的。
在紅石裏,多位就是多根線。一排紅石線並排放着,每根代表一位。前面提到的那臺玩家自制處理器,八位數據總線說白了就是八根並排的紅石線,外圍再掛上控制線路。
三個最基本的門
![]()
非門最簡單。在方塊上貼一個紅石火把,它就成了反向開關:通電,火把滅;斷電,火把亮。自動門、隱藏樓梯這類裝置裏幾乎都有它。
或門是兩根線匯到一起,任意一根有電,輸出就有電。想讓兩個按鈕任意按哪個都能開門,用的就是或門。不過兩根線直接並在一起會互相干擾,實際搭的時候要用中繼器或者固體方塊隔開。
與門要求兩個輸入同時有電才輸出。省事的搭法是先做或非門,把幾根線接到同一個方塊上、方塊下面貼火把,火把亮着代表一根都沒通,再在後面接一個非門,就成了與門。需要兩把鑰匙同時插入纔開的保險門,用的是這套結構。
![]()
還有個異或門,兩個輸入不一樣的時候才輸出。日常裝置裏用得少,但它是加法器的主角。
![]()
1+1 是怎麼算出來的
二進制加法只有四種情況。0 加 0 得 0,0 加 1 得 1,1 加 0 得 1,1 加 1 得 10,也就是本位 0、進位 1。
把這四種情況和上面兩個門對照一下。本位的結果,輸入不同的時候是 1、輸入相同的時候是 0,跟異或門完全一致。進位的結果,只有兩個輸入都是 1 時纔出現,跟與門完全一致。
所以一個異或門加一個與門就夠算出一位加法,這個組合叫半加器。擴展成能接收上一次進位的版本就是全加器,需要兩個半加器加一個或門。八個全加器串起來,能算八位數的加法。
到這裏,一臺機器會算數所需要的東西就齊了。剩下的事只是把這個結構複製得足夠多。
![]()
一位叫 Sammyuri 的玩家花了七個月,搭出一臺叫 CHUNGUS 2 的八位處理器:1 Hz 時鐘,256 字節內存,四級流水線,四十多種運算功能,接上 32×32 的屏幕能玩俄羅斯方塊、貪喫蛇和四子棋。作者自己說明過,視頻裏的遊戲畫面加速了幾百到幾千倍,不加速沒法看。(規格與說明來自 PCWorld、Electronic Design 的公開報道)
按方塊邊長一米換算,這臺處理器建在現實裏大概有一棟樓那麼大。還有人做過 32 位、帶 2 KB 內存的版本,能跑斐波那契數列。
從一根線通不通,到能玩俄羅斯方塊,中間確實只隔了邏輯門和二進制這兩件事,剩下的部分是耐心和工程量。
第一個誤區是把紅石當電路學。紅石裏沒有電壓、電阻、電容,學不到模擬電路,它更像是數字邏輯的沙盤。
第二個是拿速度衡量紅石。紅石慢不是設計得差,而是遊戲按刻更新,信號傳播要時間。1 Hz 在紅石處理器裏已經是第一梯隊,放在現實裏慢得離譜,這兩種慢不是一回事。
第三個是一上來就做計算機。實際需求裏,大多數人只想讓門自動開、讓農場自動收。真要動手,建議按這個順序:先用一個按鈕控制一扇門,再做兩個按鈕都按下才開門,然後做任意一個按下就能開門。搭完這三個,邏輯門就不再是紙上的概念了。
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
