偶然发现的游戏图灵完备,玩了几关很有意思,是从门级搭建各种逻辑电路,游戏通过就是要验证各种输入是否符合设计要求;因此作为学习的记录;
由于游戏前面的基础逻辑门很简单,就不写思路及感悟了。
成对的麻烦
本关要求检测四个输入中有大于等于两个的1,则输出也为1。设四个输入为A,B,C,D;则输出Y=AB+AC+AB+BC+BD+CD;此逻辑表达式可以实现该功能。
需要6个双输入与门,2个三输入或门,一个两输入或门;
奇数个信号
本关要求只使用三个逻辑门来实现检测四个输入中是否含有奇数个1;检测是否有1采用异或门,四个输入依此相与,若有奇数个1则输出1;本关收获:检测1用异或门;
四个输入以此接入异或门,进行仿真验证;
半加器
本管要求计算机必须会计数,基础就是半加器;半加器即不带进位的1位加法器;设两输入A,B,则加法结果的和为SUM= A ^ B;A与B异或;进位CARRY = A + B;A和B相与;
采用一个异或门,一个与门完成电路。
信号计数
本关要求设计电路统计四个输入中有多少个1,并连接到三输入的译码器上;这关卡了很久,按照关卡提示,及参考B站视频才有思路;输出是否有1按之前的异或门电路统计,有1就连接到输出的最低位,在游戏里是上面接口;有2用成对的麻烦里的思路,多与2的就连接到输出的中间位;全是1则用与门全与起来,全是1是连接到最高位;但此时与检测2的电路重复,即会输出6,需要给全是1特殊处理,全是1的输出取反和检测2的输出相与,再连接到中间位;
三种电路如下;
从上到下分别是检测2的,检测1的,与全是1的检测电路;