Shawn·Lay 发表于 2014-5-8 20:29:42

我的世界 minecraft 红石 逻辑电路基础(二)(申精)

本帖最后由 S8的崛起①号 于 2014-5-8 20:38 编辑

继续继续

本片内容开始难度将增加~但是相信理科同学会毫无压力,不过,我看了后**啊,太~我就不费话了,大家自己看吧!

游戏中的红石电路,没有电压电流的概念,只有被激活和未被激活的逻辑开关状态,说明红石电路是纯粹的逻辑电路。要熟练地使用红石电路,就需要玩家掌握一定的逻辑运算知识。下面我会简单解释一些(简单~http://bbs.ggg.cn/static/image/smiley/comcom/15.gif)。想对逻辑运算进行入门学习的朋友可以看百度文库的这个篇文章了解基本知识:http://wenku.baidu.com/view/3b1e1e5c3b3567ec102d8a50.html。如果要深入学习则需要找一些布尔逻辑代数的书来看。(狂汗,作者这不科学啊!太复杂了!!)

逻辑运算中变量的值只有0和1两种,对应的逻辑电路也只有关和开两种状态。在红石电路中,我们不妨把未被激活的红石线路内的信号定义为 “0”,已激活的线路内的信号定义为 “1”,之后我们便可以方便地对照逻辑运算表和逻辑电路元件了。

注意:最好不要看红石火炬的亮和灭来定义逻辑信号的指示标准。在后面的内容中我们会看到这样做可能导致逻辑颠倒。


最基本的逻辑运算有:“或”“非”“与” 三种

“或”的运算表示为:A或B = A + B = C这可以通俗地理解为 A B 两变量的加法,当两者中任意一个值为 “1”,另一个值为 “0”时,C 的值为 “1”。两者值都为 “0”时,自然地 C的值也为 “0”。特别的当 A B 两者的值均为 “1”时 ,C 的值也为 “1”(因为逻辑运算中没有比“1”大的值)。归纳来讲就是参与“或”运算的所有变量只有都为“0”时,结果的值才为“0”,其他情况下,结果值均为“1”。

“非”运算的表示为A的头上加一横杠(这里打不出来,大家见谅), 非A = C 。“非”运算就是将变量值取反,当A为“0”时 C为“1”,而A为“1”时 C为“0”。

“与”运算表示为: A与B = A·B = C 可通俗理解为 A B 的乘法, 只有当 A B 均为 “1”时,C的值才为“1”,否则C的值为“0”。
(以上的内容小莲真的没看懂!!!小莲要哭了~~)


在逻辑电路中,同样有三种基本门电路:“或门”“非门”“与门”对应如上三种逻辑运算。下面我们就看看如何用红石电路来实现这三种基本逻辑门电路。

1 红石火炬方块的逻辑含义
当红石火炬方块为单输入单输出时,以下两图显示出方块两侧的线路中的信号是相反的,这说明单入单出的红石火炬方块为一个逻辑“非门”。
http://static.ggg.cn/bbs/attachment/forum/201301/04/182129p2q223qp2eofbbe2.jpg.thumb.jpg
http://static.ggg.cn/bbs/attachment/forum/201301/04/1821305u6gvgz66a95knog.jpg.thumb.jpg

2 “或门”
在搭建红石“或门”前,我们先看下面4张图。
http://static.ggg.cn/bbs/attachment/forum/201301/04/182130zozk27nvu73803k8.jpg.thumb.jpg
http://static.ggg.cn/bbs/attachment/forum/201301/04/182131dbhgygmzggxzxhca.jpg.thumb.jpg
http://static.ggg.cn/bbs/attachment/forum/201301/04/18213157xc7g5wdjgpj5da.jpg.thumb.jpg
http://static.ggg.cn/bbs/attachment/forum/201301/04/1821329585oy6yyyng5o4d.jpg.thumb.jpg

在这里,笔者有一个小失误,就是没在火炬方块的正前方添加红石线路,不过考虑到,如果添加了线路,其状态应与红石火炬状态相同。所以应该不影响大家理解。

我们将左右两边的红石线路看作变量A和B,我们发现,只有当A和B的值都为“0”时,红石火炬的值才为“1”(21楼图),其他状态均为“0”(22-24楼图),这和“或门”的状态刚好相反(“或门”的逻辑状态是输入均为“0”时结果才为“0”,其他状态为“1”)。于是要搭建真正的“或门”,我们需要再在此电路的输出上摆上一个单入单出的红石火炬(“非门”)。同时我们也可以了解到,多输入的红石火炬方块实质上是一个“或非门”(“或门”“非门”的串联结构),只有再多加一个“非门”才能还原为正式的“或门”(两个“非门”一起,则状态还原)。
(火炬和该方块激发电路存在时间差)


下面两图就是已经完成的逻辑“或门”,大家可以对照条件验证。
http://static.ggg.cn/bbs/attachment/forum/201301/04/182132bgzing0zycg7lryu.jpg.thumb.jpg
http://static.ggg.cn/bbs/attachment/forum/201301/04/182133so7oyoyoorontt3x.jpg.thumb.jpg

3 “与门”
在构造“与门”之前,我们先要引入逻辑反演规则,将“与门”用“或门”和“非门”来实现(游戏中无法直接实现逻辑乘法)。反演规则如下所示:
http://static.ggg.cn/bbs/attachment/forum/201301/04/1821337ug8zh875h5igy88.jpg
(注意,取“非”运算不符合分配率,上面两个等式,1式的左边和2式的右边并不等价,同样的1式的右边和2式的左边也不等价。)
由上面的第2式我们可以运算得到 A 和 B 的逻辑“与”:
http://static.ggg.cn/bbs/attachment/forum/201301/04/182134bqz8lwsy5wutzt5h.jpg
用逻辑电路实现就是:A 和 B 前各放置一个“非门”,然后再作“或非”,则可得到“与门”。
下面两图就是已经完成的“与门”
http://static.ggg.cn/bbs/attachment/forum/201301/04/182134x9x3xd8b0i9t8tm9.jpg.thumb.jpg
http://static.ggg.cn/bbs/attachment/forum/201301/04/182134o6fok6zjzfh45h3h.jpg.thumb.jpg


4 “异或门”
下面要介绍一个有点复杂,但是应用广泛的逻辑电路门单元 -- “异或门”,其功能为:比较两个输入端的值,如果值相同(同为“1”或同为“0”),则结果输出值为“0”,如果相异,则结果输出值为“1”。通过使用“异或门”和“非门”,我们可以简单地实现可编码的多位密码门(编码端在屋内,输入端在屋外,密码对比相同时,经由“非门”转换结果为“1”,则门可打开,相异时门则保持关闭)。

“异或门”的逻辑解释和实现如下图所示:
http://static.ggg.cn/bbs/attachment/forum/201301/04/182135h11z7f9h1s7h98j5.jpg.thumb.jpg

下面两图有实际演示效果:
http://static.ggg.cn/bbs/attachment/forum/201301/04/182128ym2uf7xfjtwcy1z7.jpg.thumb.jpg
注意,4角和中间十字处的一个亮点是普通火炬,与电路无关。
通过以上4种主要的逻辑门电路,我们就可以创造出任何种类的大型逻辑电路(包括多位二进制加法器等),接下来的就是大家的聪明才智和创造力了。

http://bbs.ggg.cn/static/image/smiley/comcom/9.gif看完有没有这表情的~我已经是内牛满面了~~~逻辑电路基础内容完毕(基础!这是基础啊!!!)

又是激动人心的传送门:
我的世界 minecraft 红石 最基础的教程(一)
我的世界 minecraft 红石 时序逻辑电路基础(三)

@魂澈 可否申精

Shawn·Lay 发表于 2014-5-8 20:39:11

@魂澈 求申精@魂澈

ID不重要 发表于 2014-5-8 20:40:24

轉的吧?

対立の私 发表于 2014-5-8 20:46:02

ゞ{无~|~语、》 发表于 2014-5-8 21:07:15

围观
页: [1]
查看完整版本: 我的世界 minecraft 红石 逻辑电路基础(二)(申精)