《图灵完备》游戏攻略第二章:算术运算和存储器——存储器

《图灵完备 Turing Complete》游戏攻略保姆级详解。

第二章:算术运算和存储器

优雅存储

关卡解析

本关要求我们制作一个存储器,存储器会一直存储数据,直到写入端要求它更新。

留存数据无疑需要使用延迟线,但是延迟线只能保存一刻数据,所以我们要一直刷新它。我们先构成一个循环,延迟线会一直存储数据,直到它被关闭,如下图:

我们需要一个开关来控制它何时被关闭:

  • 新增的线是蓝色的。

当然这个开关现在起不到任何作用,我们需要把延迟线的输出值输入到开关上:

然后我们将待写入的值接入总线:

然后用一个开关来控制:

本关最终答案按

1位存储器

在本关中我们做出的电路是1位存储器,它可以储存1位数据。

存储一字节

关卡解析

我们先制作一个可以存储8位数据的存储器。我们只有1位存储器,所以我们需要8个。将8位数据拆成8个1位数据,存储到8个存储器中:

当然,我们还需要制作输出端,将存储的8个1位数据再转化为1个8位数据:

接下来就是如何控制,它有3个要求:
  1. 输入0亮:读取并输出
  2. 输入1亮:写入到存储器
  3. 输入0亮:启用输入端

我们先制作第二个。只要将输入1连接到每个1位存储器即可:

此时,将输入0连接至输出端下方即可完成一和三:

本关最终答案

8位存储器

我们本关制作出的整个电路是8位存储器,可以存储1字节的数据。

1位解码器

关卡解析

本关的电路搭建特别简单,不需要过多解释,直接看图即可:

本关最终答案

1位解码器

本元件就相当于上面的电路,可以在两路输出中选择一路。



3位解码器

关卡解析
我的方法是一路一路制作,8个输出端口分别对应一套电路。注意对照下方的真值表。

我们先制作第一套,此电路可以确定是不是三个红,如果是就输出到输出1:

然后制作第二套,因为真值表的第一行是绿色,所以我们不用放置非门:

然后再制作第三套,第二路是绿,因此第二路不需要非门:

像这样将所有电路全做出来,一共8套电路:

然后我们将8个电路结合起来,注意不要连错孔:

本关最终答案 方案A

宽带

这里提供一下另一种解法:

本关最终答案 方案B -小渊xyz
你可以先理解一下这种解法,我们之后在“小盒子”那关会用到。“宽带”这个名字是我取的,只是因为这个带子很宽,我不知道现实里这个东西叫什么。
  • 点击元件后按空格可以旋转。

3位解码器

本关我们获得了3位解码器,这个元件输入3个数据,根据这3个数据在那条路决定在哪条路输出。

逻辑引擎

前言

本章已经步入尾声,加油!

编码、解码

我们发现,本关4个指令,编入了0~3这4个数字,这就是编码。我们用解码器可以对其进行解码。

关卡解析

  • 请一定要明白我们每步为什么要这样做,这关结束时的电路极其复杂,如果你不明白原理很有可能抄都抄不出来。

我们先将指令输入端进行解码,用到我们上一关制作的3位解码器:

这样,4种指令,就分别对应解码器的前4个输出口。

我们使用8位或元件直接处理两个数据,然后将处理结果加上8位开关,与解码器输出的OR指令路连接:

现在来制作第二条指令,即按位与非,和我们之前制作的按位或和按位非的电路相似,只是把逻辑门换成了与非门,我们用1举例:

后面的也这样搭建,然后在结果路放置8位开关,让指令NAND路控制开关,将结果输出到总线:

  • 注意本关空间有限,最好不要做的太乱,我们还需要制作2条指令。

然后制作按位或非,我们已经有按位或和按位非,把它们组合就行:

然后在结果路加开关,让NOR指令路控制,接入总线,适当调整位置节省空间:

现在我们再制作按位与的电路即可:

也是同样,加开关,让指令AND控制,接入总线:

本关最终答案
运行后发现正确无误。
  • 长得好像一个蓝头发的人头......
  • 注意:本关电路不要删除之类的,我们之后的“算术引擎”还会用到!

函数

  • 本关创建的电路有点像是汇编里的函数概念,0、1、2、3分别是函数,而两个输入端就是参数。了解一下即可,后面会用到。
  1. def OR(x,y):                 #定义OR函数
  2. return(按位或操作(x,y))
  3. def NAND(x,y):               #定义NAND函数
  4. return(按位与非操作(x,y))
  5. def NOR(x,y):                #定义NOR函数
  6. return(按位或非操作(x,y))
  7. def AND(x,y):                #定义AND函数
  8. return(按位与操作(x,y))
  9. print(OR(183,180))           #调用OR函数
-----------控制台----------
75
---------------------------

8位与、8位非、8位或非

我们获得了这关里制作的3个按位操作元件:



小盒子

关卡解析

这关的难点在于空间很小,我们要想尽办法节省空间。

还记得我们在前讲的“宽带”吗?首先我们先将地址数据使用解码器导出成4条线路:

我们知道,用A、B、0、1可以组成4个地址,分别的 (A,0), (A,1), (B,0), (B,1),我们将这4个地址用与门判断出来:

我们在输入端设置4个8位寄存器,输出结果直接接入总线,然后输出到输出端:

接下来我们只需要做到“控制”即可。需要8个与门,空间有点小,你看怎么能摆下:

左边4个与门用于判断是否读取,我们先接入数据:

然后我们把输入1接进去,就相当于“如果收到读取的信号,就让信息通过”:

右边四个与门也类似,用于判断是否写入。先接入数据(我用的是深蓝色的线):

将输入2接入到四个与门,就相当于“如果接收到要写入的信号,就让数据通过”:

最后我们再来一条线(白线),将读取信号输入端和输出端开关连接。注意你很有可能没办法连接这条线,因为空间被填满了,你需要让其他东西“让开”。在移动其他元件时一定要将它的输入输出一起移动,不要导致断开和短路,如果出问题了可以按Ctrl+Z撤销操作。最后做出来是这样:

本关最终答案

256字节随机存储器

可以用于存储数据的元件,之后会用到。

计数器

关卡解析

首先我们制作一个这样的结构:

寄存器会始终把数据存储并输出,并且直接输出到输出端。到下一段后,因为有ADD在,会+1(高电平就是1),然后再输出出来,重新写入到寄存器。左侧的高电平时为了始终启用寄存器的读取和写入功能。这样,在不覆盖的状态下,寄存器会每刻都+1。

现在我们来做数据覆盖。我们只需要用到一个选通器,选择让哪个数据覆盖到寄存器即可。注意不要弄错选通器的输入端口:

本关最终答案

8位计数器

我们获得了8位计数器元件,其实就是我们本关制作的电路。它会每秒+1,直到有新的数据覆盖。



《图灵完备 Turing Complete》游戏攻略保姆级详解

你可以通过《图灵完备》这款游戏,学习处理器架构,搭建自己的伟大作品。游戏闯关模式的最终目标是搭建一台可以运行的计算机。我将会开始更新这款游戏的攻略,详细解析每一关的通关思路,并且讲解背后的原理。


以下三章为《图灵完备 Turing Complete》游戏手把手教程(教程原创为知乎:淘气喵w,特此说明)
第一章:基础逻辑电路

第二章:算术运算和存储器

第三章:处理器架构

24小时热点

热点专题

免费的行情软件app网站在国外有哪些?

区块链看行情的软件,简而言之,就是一类能够实时提供数字货币行 ...

2382721

波场区块链浏览器

2024年最新十大不收费看盘软件排名公布

随着股市交易的普及和技术的发展,投资者对高效、可靠且免费的看 ...

1132523

波场区块链浏览器

Bitfinex(香港B网)

Bitfinex交易平台目前仍处于试运营阶段,该平台由iFi ...

727339

Hi元宇宙

OEX全球站交易所介绍

OEX(www.oex.com)隶属于OEX Interna ...

643654

Cointelegraph Bitcoin

挖矿app十大排名,挖矿软件推荐

区块链技术自比特币诞生以来,已经在全球成为最热门的一项技术, ...

577399

波场区块链浏览器

FSN币,Fusion

FUSION是一个公开的区块链,通过提供跨链、跨组织和跨数据 ...

500268

ImToken 多链钱包

区块链免费看行情的网站有哪些?

区块链行情网站,简单来说,就是提供数字货币实时价格,交易量, ...

498285

区块链圈小菜鸡

1U等于多少人民币?U币怎么兑换人民币?

U币(如USDT)是一种基于区块链技术的稳定币,其价值与美元 ...

489022

区块链圈小菜鸡

全球币圈十大交易所排名有哪些?最新2024年币圈十大交易所排行榜

在加密货币市场中,交易所是投资者进行数字资产买卖的关键平台。 ...

455023

区块链圈小菜鸡

2024年人气最高的免费看行情的软件大全

区块链看行情的软件是指那些能够提供实时数字货币行情、市场动态 ...

454369

波场区块链浏览器