返回首页

红石 Minecraft 中的图灵机

本文描述了使用红石在 Minecraft 中实现图灵机。它涵盖了内存单元、移位寄存器、程序单元和执行循环。适合通过游戏学习计算理论。

使用红石在 Minecraft 中组装图灵机
Advertisement 728x90

在《我的世界》中用红石搭建图灵机

图灵机由无限长的纸带(划分为单元格)、读写头以及充当程序的转换表组成。在《我的世界》中,这些组件通过红石系统进行模拟——红石是一种拥有16个信号强度等级(0至15)的信号传输机制。红石粉最多可传输15格距离,每经过一格信号强度衰减一级。

核心红石元件:

  • 红石火把:反转信号(非门/NOT)。
  • 拉杆:提供稳定、持续的电源。
  • 按钮:产生固定时长的脉冲信号。
  • 中继器:增强信号强度、强制单向传输,并增加1至4游戏刻的延迟。
  • 比较器:用于比较或相减信号强度。

这些元件可组合成各类逻辑门:非门(火把)、与门(两个中继器输入至火把)、或门(线路汇合)以及与非门/或非门(多种组合)。该机器采用4字符字母表:0、1、空(ε)及一个保留状态。

Google AdInline article slot

纸带存储单元

每个单元可存储4位数据(数值0–15),激活后会持续输出对应信号。例如,某单元可存储 0101。左侧按钮用于重置单元。额外的位数为未来扩展预留了空间。

完整纸带由8个此类单元组成,共计提供32位存储空间。

读写头移位寄存器

该寄存器用于追踪读写头在纸带上的位置。点亮的灯指示当前激活的单元格。右侧按钮控制移动方向:左移、右移及重置(将读写头移回最左侧灯)。最左侧可选配一盏指示灯,用于提示移位操作完成,从而在执行循环中最小化时序延迟。

Google AdInline article slot

该寄存器通过位移操作控制读写头在纸带上的移动。

程序指令单元

每个程序单元存储10位指令数据:

  • 4位用于写入的数值。
  • 2位用于读写头偏移量(10 = 左移,01 = 右移)。
  • 4位用于下一机器状态。

操作严格遵循“写入 → 移位 → 状态转换”的顺序。完整程序共占用20个单元,覆盖4种状态 × 4种符号(含ε与停机状态)。

Google AdInline article slot

二进制转十进制转换器

该模块将二进制地址转换为十进制格式,以便精准定位纸带单元格。信号从右侧输入(例如,二进制 10 会在左侧输出为十进制 2)。这大幅简化了内存寻址过程。

执行循环

采用固定时序延迟(每次操作2秒)来保持系统同步,无需额外的完成信号反馈:

  • 读取当前纸带单元格的符号。
  • 根据当前状态与符号查找转换规则。
  • 从转换表中写入新数值。
  • 读写头向左或向右移位。
  • 更新为下一机器状态。
  • 若达到停机状态则终止;否则重复循环。

一条橙色导线从程序模块连接至执行循环,用于传输停机信号。

整体架构

完整搭建包含以下部分:

  • 20个程序指令单元。
  • 8个纸带存储单元。
  • 读写头移位寄存器。
  • 同步执行循环。
  • 二进制转十进制地址转换器。

作为实际演示,该机器可成功对纸带上存储的数值执行递增操作。

核心要点

  • 红石系统利用标准逻辑门与0–15信号强度,精准模拟了图灵机逻辑。
  • 4位存储单元内置冗余设计,便于后续扩展。
  • 固定时序延迟简化了执行循环,省去了反馈信号的需求。
  • 4字符字母表与4种内部状态共衍生出20种可能的转换路径。
  • 该装置在特定场景(如二进制递增)下可完全正常运行。

— Editorial Team

Advertisement 728x90

继续阅读