本教程介绍的是需要复杂的红石电路进行组合建造的机械装置。关于进阶红石电路,请见“红石电路”。
此页面被建议与Tutorial:红石计算机合并。 讨论
理由:这些页面具有相同的主题或信息。在达成共识前,请勿擅自合并。
该页面需要整理以符合格式指导。 讨论
请协助改善内容来使它符合规定。
红石电路与现实生活中的数字电路(基于布尔逻辑代数)基本可以等同看待。如果你熟悉高等教育中的数字电路与初等计算机科学的知识的话,本篇目对你来说将较为容易理解。在阅读此章节前务必熟练掌握基本逻辑门等知识。
目录
1 计算机
1.1 算术逻辑
1.1.1 半加器
1.1.2 全加器(1位)
1.1.2.1 简易全加器
1.1.2.2 活塞全加器
1.1.2.3 交替全加器
1.1.3 4位加法器
1.2 逻辑单元(2-4译码器)
1.3 二进制转换为八进制(3-8译码器)
1.4 二进制转换为十进制/十六进制(4-10或4-16译码器)
1.5 十六进制转换为二进制(16-4编码器)
1.5.1 示例-顺序敏感的3位十进制数密码锁
2 杂项
2.1 信号规整器
2.1.1 数电版本
3 相关页面
4 导航
计算机[编辑 | 编辑源代码]
主条目:Tutorial:红石计算机
在Minecraft中,一些游戏内的系统在计算机科学中与图灵机等价——也就是说这样你可以建构信息处理的装置。这些系统包括:水,沙子,矿车,活塞与红石。
这些系统中只有红石是特别为信息处理而设计的,主要以红石信号的方式来表示。
红石与电力类似,具有高适应性与较快的切换速度。就像在现实世界中电力取代了蒸汽动力成为高科技的基石一样,前述的这些特性使红石力压其他机械系统,成为Minecraft中最具有科技含量的部分。
现代数字电路与红石工程在复杂信息处理的应用时。都被简化为抽象的从基本到复杂的多层次结构。
第一层是最基本的组件:红石粉、红石火把、红石中继器、活塞、按钮、拉杆与压力板等所有与红石信号相关的方块。
第二层是二进制逻辑门;它们是能够处理有限位(一般是1-3位)的混合装置。
第三层是由逻辑门组合而成的高阶组件。这些组件用于处理模式化的位数据,一般能够将其编码为更加易读的数字。例如数学加法器,组合锁具,寄存器等。
第四层,也是最后一层,是由一系列的高阶组件组合成的功能型计算机系统,通常能够在不需要人工维护的情况下处理任意数据。
一个8位寄存器,属于第三层结构
算术逻辑[编辑 | 编辑源代码]
主条目:Tutorial:算术逻辑
半加器[编辑 | 编辑源代码]
逻辑门:异或门,蕴含门
红石火把数量:12
红石粉数量:7
方块数量:19
尺寸:5×4×4
这个半加器能够输出两个一位二进制数的和。结果位输出到输出端S(英文Sum,加法和之意)。如果两个数字都是1,那么会产生进位1到输出端C(Carry,进位之意)(C会变为0)。这个半加器可以被修改为具有同相输出的C端,但图中这种结构在全加器链中可以照搬。
注:由于红石线的新特性,本结构已经失效!为了应急,你可以先使用下面的全加器,只要不使用C输入端即可。
全加器(1位)[编辑 | 编辑源代码]
逻辑门:同或门(2),蕴含门,非门,或门,与门
红石火把数量:16
红石粉数量:32
方块数量:48
尺寸:从上到下6×12×5,包括输入/输出端。
这个全加器能够将两个一位二进制数与前一个加法器的进位C相加(事实上是C而不是C,第一层的左下部),产生一个和(S端)和进位(事实上是C而不是C)。
如果要改造为减法器,把其中一个二进制输入取反(第一个或第二个数)即可。想把第几个输入作为被减数,就取反第几个输入。如此改造成减法器时,输出计算结果也是反向的。在现实世界中的计算机里,二进制带符号数的第一位(也被称为“标志位”)决定了该二进制数的正负,如果你把这个特性(应用相同的反相规则)引入,你就可以得知该数字是负数,还仅仅只是一个较大的数字。
当使用上述的逻辑门时,注意输入与输出,你可能会对为什么这里使用了如此多的反相信号而不是同相信号有疑问。这个全加器使用了比异或门更能实现压缩的同或门,同理,蕴含门比与门更为压缩。因此如果你想压缩全加器的体积,必须使用反相信号。如果用能够表示2层方格的符号来表示,图像将十分复杂,因此我们将每一层都单独用图表表示了出来,而且也方便你分层次地建造。
简易全加器[编辑 | 编辑源代码]
A
C
S
B
逻辑门:异或门,与门
红石火把数量:7
红石粉数量:10
中继器数量:2
A
C
S
B
红石火把数量:9
红石粉数量:11
逻辑门:异或门,与门
这个全加器结构更为简洁但有着不可避免的延时(因为使用了中继器)。
注意:输入必须为红石原件或将两侧红石线改为红石中继器,见充能。
活塞全加器[编辑 | 编辑源代码]
1位活塞全加器[失效链接]
2位活塞全加器[失效链接]
红石火把数量:3
黏性活塞数量:2
红石中继器数量:8
红石粉数量:16
方块数量:7
交替全加器[编辑 | 编辑源代码]
进位输入与输出端对称,这样你能够方便的压缩并组合多个这样的单元。
红石火把数量:14
红石粉数量:15
尺寸:5×6×3
4位加法器[编辑 | 编辑源代码]
注意!重要性最低的那一位数就是图表中的最左边那位(即“个位”)。这里之所以标明,是为了向你清楚地说明全加器比起半加器的功能优势——半加器无法处理比其低一数位的进位。如果你想依据一般的使用习惯把个位放在右边,那么将图表左右镜像处理即可。
注:由于红石线的新特性,本结构的个位部分的半加器已经失效!为了应急,你可以先使用全加器,只要不使用C输入端即可。
逻辑门:同或门(7),蕴含门(4),非门(4),或门(3),与门(3)
红石火把数量:56
红石粉数量:108
方块数量:164
尺寸:23×12×5
这个加法器能够将两个四位二进制数相加(A与B),产生每一位数的和(S)与整个和的进位(C,相当于第五位)。和的位数顺序与加数的顺序相同,这也就是说,最左侧的S是和的最低位。这个4位加法器仅仅是一个全加器链的示例,你可以通过同样的构造来建造具有更多位数加法或减法能力的计算单元。
逻辑单元(2-4译码器)[编辑 | 编辑源代码]
在电路中,有时候你可能需要建造能够依据输入来选择输出的逻辑单元。这样的逻辑单元能够用于更复杂的电路中,比如说算术逻辑单元(ALU)。下面介绍的逻辑单元又被称为2-4译码器。
这是一个2位逻辑单元,依输入不同可以有4种状态。
输出端在最上面一行,依照11、00、01、10的顺序排列(输入端顺序为上侧的是第一位,下侧第二位)。
下面是另一种采用格雷码的简化版本。输出端为顶部那行末端的红石火把。本设计能够被扩展到任意位,但会受到电路延时的限制。相对地,输出排序为11、01、00、10。
二进制转换为八进制(3-8译码器)[编辑 | 编辑源代码]
3位二进制转换为1位八进制
这个装置是一系列逻辑门的组合,分为8部分。当组合起来时能够将一个3位二进制数输入转换为一位八进制数输出(未编码状态,所以输出端数量与进制数相同),功能等同于3-8译码器。由于其最大占地面积不过5×5×3,所以有很强的适应性。
右图的每一部分都可以将输入端连接到共同的输入源,但建议你在每一个输入端都加一个反相器以使在该电路与其他电路协同工作时,输入端保持独立性。
某些部分也可以作为三态缓冲器使用,或至少你能够方便地将其改造为三态缓冲器。
下表与右上图的8部分一一对应。
对应八进制数字
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
二进制转换为十进制/十六进制(4-10或4-16译码器)[编辑 | 编辑源代码]
4位二进制转换为十进制/十六进制
这个装置是一系列逻辑门的组合,分为10或16部分。当组合起来时能够将一个4位二进制数输入转换为一位十进制或十六进制数输出(未编码状态,所以输出端数量与进制数相同),功能等同于4-10或4-16译码器。由于其最大占地面积不过3×5×2,所以有很强的适应性。
与上一章节的3-8译码器类似,右图的每一部分都可以将输入端连接到共同的输入源,但建议你在每一个输入端都加一个反相器以使在该电路与其他电路协同工作时,输入端保持独立性。
右图的右下角是一个说明性质的图例,图表中列出的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-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位十进制数密码锁[编辑 | 编辑源代码]
一个对顺序敏感的3位十进制数密码锁逻辑图
右侧的示例采用了OR(符号为>=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”的数量,在多个输出端中按端口优先级分配并输出相同个数的“1”(而常规的信号计数器则是以某个进制的形式输出)。由于信号规整器的输出排列由端口优先级决定,而非输入的排列,会丢失输入的排列信息。因此信号规整器通常仅用于观察多个输入中“1”的数量。
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
数电版本[编辑 | 编辑源代码]
相关页面[编辑 | 编辑源代码]
红石电路
机械
陷阱
导航[编辑 | 编辑源代码]
查
论
编红石
红石电路
时钟电路
逻辑电路
记忆电路
传输电路
脉冲电路
杂项电路
教程
高级红石电路
基本逻辑门
方块更新感应器(BUD)
比较器更新感应器(CUD)
机械
活塞电路
红石音乐
电源
红石块
按钮
阳光探测器
探测铁轨
讲台
拉杆
避雷针[失效:JE 1.21.9和BE 1.21.110]
避雷针[新增:JE 1.21.9和BE 1.21.110]
压力板
红石火把
幽匿感测体
校频
标靶
测试方块[仅Java版]
陷阱箱
绊线钩
绊线
侦测器
传输元件
红石比较器
红石中继器
红石线
机械元件
命令方块
铜灯
合成器
投掷器
发射器
门
栅栏门
漏斗
音符盒
展示架[新增:JE 1.21.9和BE 1.21.110]
活塞
黏性活塞
铁轨
动力铁轨
激活铁轨
红石灯
结构方块
测试方块[仅Java版]
TNT
活板门
钟
龙首
猪灵的头
杂项
紫水晶块
红石矿石
黏液块
蜂蜜块
红石图例使用帮助
查
论
编教程
新手教程
下载、安装与购买
成功地启动游戏
菜单屏幕
游戏术语
计量单位
不该做的事
新手生存
新手指南
第一天
第二天
第三天
提示与技巧
饥饿管理
生存注意事项
庇护所
庇护所
沙漠
微型
最佳居住生物群系
最佳建筑材料
建筑与结构
房屋类型
导航
综合
无聊的时候做什么
跑酷
空置域
伪和平
节省时间的小窍门
在水下利用TNT破坏方块
成就指南[仅BE]
进度指南[仅JE]
Minecraft
下界
末地
冒险
农牧业
最佳附魔指南
拓殖
战斗
完成冒险
双持
探索洞穴
利用碰撞箱
马
使用地图
测量距离和角度
采矿技术
钻石
化石
远古残骸
下界快速旅行
下界传送门
支柱跳跃
幻翼防护
生成骑士
穿越和破坏基岩
防卫僵尸围城[仅JE]
考古
不可破坏的末地水晶
使用更少的末地水晶重生末影龙
区块加载器
透视镜
挂机池
整理物品
潜影盒储存
物品运输
生物运输
自动化烧炼
选择燃料
爆炸室
凋灵笼
光速船[仅BE]
无材料消耗转换药水类型[仅BE]
在超平坦世界中管理史莱姆
减少摔落伤害
Minecraft和教育
视频
游戏直播
村民和交易
村庄生存
创建村庄
村庄机制
治愈僵尸村民
村民养殖
村民交易所
流浪商人陷阱
建筑
给工程添加美感
空气闸
建筑术语
建造游轮
建造大都市
建造过山车
建造安全的家园
建造水建筑
建造几何体
防御
家具
电梯
带釉陶瓦的图案
建造地板
像素艺术
牧场
屋顶类型
弧形屋顶
屋顶建造指南
暗门
建造居住地
水下建筑
墙壁和桥墩
水闸
调色板
建造蹦床
挑战
获得潮涌核心
触发及战胜袭击
打败末影龙
打败凋灵
挑战自定义地图
制作自定义地图
征服苍白之园
征服结构
征服神殿和神庙
征服掠夺者前哨站
征服堡垒遗迹
征服林地府邸
征服海底神殿
征服试炼密室
征服下界要塞
征服末地城
探索深暗之域和远古城市
特殊玩法
冒险模式生存
极限模式
超极限模式
在一个地区中长期生存下去
沙漠生存
在无限沙漠中生存
下界生存
从零开始下界生存
末地生存
雷暴生存
超平坦世界生存[仅JE]
岛屿生存
空岛生存
在和平难度中收集资源
速通
游荡生存
无限石头生存
愚人节版本生存[仅JE]
22w13oneBlockAtATime
24w14potato
农场
方块和物品
紫水晶
骨粉
仙人掌
农作物(小麦、胡萝卜、马铃薯、甜菜根、火把花和瓶子草)
西瓜、南瓜
紫颂果
圆石、石头或玄武岩
可可豆
泥土
滴水石锥
鸡蛋
鱼
花朵
蛙明灯
下界菌
蜂蜜
冰
海带
熔岩
肉
蘑菇
音乐唱片
下界疣
黑曜石
袭击农场
1.21前
海泡菜
雪
甘蔗
甜浆果
原木、树苗和苹果
海龟鳞甲
藤蔓
羊毛
药水
经验
基岩
方块和物品复制
过时方法
铁轨复制机[仅JE]
TNT复制[仅JE]
零刻作物催熟技术[仅BE]
生物
刷怪塔
怪物磨床
刷怪笼陷阱
动物(猪、牛、绵羊)
烈焰人
洞穴蜘蛛
苦力怕
闪电苦力怕
溺尸
末影人
山羊
守卫者
铁傀儡
岩浆怪
以物易物
潜影贝
史莱姆
鱿鱼
海龟
村民
女巫
流浪商人
凋灵骷髅
僵尸猪灵
悦灵
疣猪兽
红石
基础红石
基本逻辑门
高频电路
计时器
抽奖箱
漏斗
通用物品分类器
机械
侦测器稳定器
密码锁
随机发生器
红石机械
红石音乐
红石技巧
鲁布·戈德堡机械
探测器
方块更新感应器
比较器更新感应器
昼夜探测器
矿车
矿车
火车站
储存
数字化存储系统
陷阱
陷阱
陷阱设计
雪傀儡防御炮
TNT大炮
活板门利用
活塞
活塞使用
活塞电路
无延迟科技
飞行器
半连接性[仅JE]
零刻活塞[仅JE]
无头活塞[仅JE]
高级红石
光照操纵
高级红石电路
算术逻辑
计算器
时钟
摩尔斯码
打印机
红石计算机
红石电报机
多人游戏
玩法
游玩服务器
PvP
Java版1.9前、基岩版
基地
隐藏箱子
起床战争
空岛战争
猎人游戏
密室杀手
服务器管理
防止恶意破坏
服务器监狱
服务器商店
雪球菜单
架设服务器
架设Java版服务器
架设基岩版服务器
服务器架设脚本[仅JE]
服务器启动脚本
FreeBSD启动脚本
OpenBSD启动脚本
Ubuntu启动脚本
WebSocket服务器[仅BE]
架设Mod服务器[仅JE]
架设Hamachi服务器
架设Spigot服务器
虚拟硬盘服务器
使用ngrok搭建服务器
架设ZeroTier服务器
本地局域网联机
服务器维护
使用LeviLamina架设服务器[仅BE]
技术性
Minecraft帮助FAQ
自定义皮肤
地图
自定义地图
下载地图
使用MCEdit刷新旧区块[仅JE]
强制打开存档[仅JE]
降级存档
资源包
制作资源包
纹理
音效和音乐
语言和文本
模型
加载资源包
数据包[仅JE]
制作数据包
实例:射线投射
视线魔法
自定义物品
安装数据包
自定义世界生成
自定义结构生成
自定义盔甲纹饰
附加包[仅BE]
基岩版开发指南
制作资源附加包
高级
基岩版实体文档
修改实体模型
制作行为包
自定义实体
自定义方块
自定义物品
自定义附加包语言文件
自定义音效
命令格式
仅Java版
生成下落的方块
文本组件
NBT命令标签
物品堆叠组件
记分板
SNBT
命令方块
结构方块
用命令操控实体
NBT与JSON
自定义命令触发
目标选择器
游戏安装
仅Java版
提高帧率
更新Java
修复Apache Log4j2漏洞
编写启动器
快照版本安装
获取崩溃报告
查看游戏日志
仅基岩版
Minecraft URL Scheme
汇报漏洞
在U盘中使用旧版启动器运行游戏
恢复损坏的地图数据
修复因数据包损坏的世界
在Google Drive上运行游戏
将游戏数据保存到Dropbox云端
仅限地图数据
在ChromeOS上运行Java版
过时教程
到达边境之地
获取崩溃报告(旧版)
无数据包生存
升级LWJGL
更新Minecraft
命令统计值
村民养殖(村庄与掠夺前)
村庄链
水道
水车
仅英文
自定义纹理包
基于门的铁傀儡陷阱
人工湖
矿车加速器
中继器重启系统
水梯
无延迟电路
教程
新手手册
高难度通关配装总结
成就指南
高塔指南
常见问题
教程
新手手册
基地建设指南
资源收集指南
单位阵容组合
注:作下划线标记的教程为中文原创教程。