红石基础

红石粉

红石粉是由红石矿石被破坏时产生的,可以通过下图的几种方式进行连接。通俗来说,红石粉相当于与电路中的电线,传导由电源产生的电流:

2019-12-07_19.15.12.png

红石火把

红石火把会提供电流,可以把它想象为一个发电源

2019-12-07_19.15.25.png

拉杆

拉杆则相当于电源的开关,具有两种状态:即分别为开和关:

2019-12-07_192258.png

特性

Minecraft 毕竟是游戏,与现实的电路肯定有所差异的地方。它所具有的一个游戏特性是:只要一个方块被红石激活了,不论是强激活还是弱激活,那么它表面红石火把都将熄灭。

什么意思呢?如下图所示,拉杆 A 被处于打开的状态,相当于电路被通电,由红石粉流通电流,并传输到方块 B。因此,方块 B 被「弱激活」,由于前面提到的特性,方块 B 上表面的红石火把都会熄灭

特性-2.png

而如果拉杆 A 处于关闭状态,方块 B 未被激活,则方块 B 表面的红石火把将会点燃。

特性.png

根据这些红石组件和该特性,我们就能够在 Minecraft 中组成电路中的与、非、或门了。

电路基础

非门

我们知道,非门输入端和输出端的电平状态总是相反的。借助刚才前面提到的特性,很容易就能实现非门。

如下图所示,拉杆 A 处于开启状态,激活了方块 B ,由于特性在方块 B 左边的火把熄灭,从而导致电流无法再传递到左侧的红石粉「电路」,红石灯将无法点亮:

非门.png

而如果拉杆处于关闭的状态,使得方块 B 的红石火把被激活(输出端的电平状态是反相的),因此红石灯被点亮:

2019-12-07_19.56.45.png

电路图如下:

UTOOLS1576672245217.png

或门

或门即如果几个条件中,只要有一个条件得到满足,「某事件」就会发生。也就是说只要两个输入端中有一个高电平(1)时,则输出端就为高电平。

我们只需要简单地将红石粉交叉排列,就能够满足或门的条件。如下图所示,只要保证其中一个拉杆处于开启的状态,就能保证输出端(连通红石灯)为高电平,于是就能点亮灯。

2019-12-07_20.01.31.png

电路图如下:

UTOOLS1576672264520.png

与门

与门即当所有的输入同时为高电平(逻辑1)时,输出才为高电平,否则输出为低电平(逻辑0)。我们可以将或门做一些修改,就能够很容易地实现与门。

如果你了解编程(这里以形象的 Python 为例),应该能很容易理解这个与门的实现原理:

In [1]: a = True    # 假设 A 为高电平 (True)
 
In [2]: b = True    # 假设 B 为高电平 (True)

In [3]: a or b      # 或门逻辑,则输出端为高电平 (True)
Out[3]: True

In [4]: not (not a or not b)  # 与门逻辑,则输出端为高电平 (True)
Out[4]: True

In [5]: a = False  # 将 A 变换为低电平(False)

In [6]: a or b     # 则或门输出端仍为高电平
Out[6]: True

In [7]: not (not a or not b)  # 与门输出端则变为低电平
Out[7]: False

不了解也没关系,来看在游戏中是如何实现呢。如下图所示,拉杆 A 和拉杆 B 连接两个非门后交叉到一块形成一个或门,再经过一个非门到达红石灯

2019-12-07_20.41.19.png

实现的原理也很简单,看电路图就能够轻松明白了:

UTOOLS1576672376291.png

简单电路密码锁

学习了 Minecraft 中的红石基础以及高中基础物理的知识,让我们来小试牛刀,实现一个由电路驱动的密码锁。

我们想实现的功能是,当且仅当拉杆 1 与拉杆 3 同时处于开启状态时,灯才触发点亮:

2019-12-07_20.59.33.png

先来看下电路图的设计:拉杆 1 与拉杆 3 分别经流一个非门,并与拉杆 2 产生的电流结合,通过或门,然后再经过一个非门到达红石灯。

这样,当且仅当拉杆 1 和 拉杆 2 处于开启状态时,或门输出端才为低电平,流经非门后,红石灯则为高电平,红石灯点亮。而假如拉杆 2 也为开启状态时,或门的输入端(以及输入端)变为高电平,流行非门后,红石灯则为低电平,红石灯熄灭。

UTOOLS1576672434523.png

游戏内实现如下:

2019-12-07_21.34.47.png

2019-12-07_22.01.26.png

这样,就实现了一个简单的密码锁触发红石灯点亮的电路。但这还只是 Minecraft 红石电路的冰山一角。

条件足够的情况下,Minecraft 甚至能造出一台电脑。