红石为什么能算数:用我的世界看懂逻辑门和二进制

很多人玩《我的世界》,卡在红石这一步。教程里的电路能照着摆,摆完却不知道那些线和火把在干什么,换个教程又得重新抄一遍。

其实红石没有想象中那么玄。它在绝大多数场合只关心一件事:这一格有没有信号。有就是通,没有就是断。计算机内部也只认两种状态,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