前言
关于这款游戏
-= 你能学到什么 =-
计算机里所有的电子元件都可以基于一种叫做“与非门”(NAND gate)的基本元件而实现。在本游戏中,你将会面对一系列挑战,在求解谜题的过程中,走出从基础逻辑门通向算术单元、存储器等复杂元件的道路,并沿着这条道路最终学习如何搭建完整的处理器架构。完成所有主线关卡后,你将对处理器架构、汇编语言和电子元件彼此之间的具体联系产生更加深刻的理解。你也会了解高级编程语言中常见的条件判断、循环、函数等概念是如何在汇编和硬件层面具体实现的。
-= 你能构建什么 =-
本游戏是基于一个强大的电路模拟器而开发的。这个电路模拟器允许你自由发挥想象力,以不同的解法通过各个关卡,或以自己喜欢的方式搭建属于自己的计算机。你可以随心所欲地在你的计算机上连接显示屏、计时器、声音元件等部件,也可以接收现实生活中的键盘和网络发送的数据。你甚至可以为你自己的计算机设计一套自己专属的汇编语言。
第一层基础逻辑电路
01、原力觉醒——输入输出
在逻辑代数中,逻辑变量有两种取值,0和1(分别为假false和真true),仅表两种不同的状态。
真true 1
假false 0
02、与非门(NOR)
本关我们可以了解与非门的性质,并作出真值表,了解真值表是什么东西。
概念
那么本关要求是作出 NAND(与非门)的真值表,而 NAND(与非门)是在 AND(与门)运算后对其取反(非)。
那么大家可以通过上图与、或、非的真值表来推导下图的与非门。
答案
03、非门(NOT)
这里我们可以理解为A与B的输出一致了,那么我们只有0 1这两种输入了,通过上面的真值表结果也就很明了了。
在进入下一关前让我们先了解一下逻辑代数的基本公式。
这个表了解了第一、二层没难度的
04、与门(AND)
根据基本公式可以知道 A与A的非的非 值为 A与A ,那么两值与非的非结果就是两值的与。
我们可以在逻辑上理解为与非门就是与门的基础上加上非门,反之亦然。
AND(与门)是全部变量输入都为1时才输出1,当有变量为0时输出0。
本关答案
05、或门(OR)
我们先了解一下德·摩根定律。
根据上图可知
OR <-> NOR AND <-> NAND是对输出取反可得,
而OR <-> NAND AND <-> NOR是对输入取反可得。
本关答案也就可以推导出来了。
OR 或门是全部变量输入都为0时才输出0,当有变量为1时就可以输出1。或门是当有输入为1时就输出1
06、或非门(NOR)
即在或门输出上取非。
07、高电平
数字逻辑电路中高电平只输出1,低电平只输出0。
08、第二刻
本关要求只在第二刻输出1,其他为0,目的是引导我们通过输出来判断输入。
通过表可以理解 输入1为 1 时,且输入2 为 0 时 输出为1, 其他为0。
这里我们可以直接作出标准逻辑表达式,在这里我另外开了个帖子,大家可以跳转去看看,掌握这个方法对后面过关很有帮助。
我们也可以直接去推导,在图中我们发现唯有当输入1(这里开始叫做A)为1,输入2(这里开始叫做B)为0时,才输出1。
即if(A==1&&B==0) return true;
else return false;
我们看到判断的条件就是A与B的值满足,那么我们试着写出与的条件:
if(A==1&&B==1) return true;
else return false;
因为A与B都是bool型的[只有两种取值,0和1(false和true)],直接取反就是另外一个值,所以我们可以放一个与门,将 A 以及 B非 来作为与门的输入即可。
如有什么错误地方欢迎大家指出,或者还有什么更好解法也欢迎在评论区分享!
如果看不懂的话也欢迎大家在评论区提出问题(我把数制给跳了)
#冷门佳作推荐#