octopuscraft吧 关注:2,143贴子:44,165

【探究向】关于TEUD的研究和应用

只看楼主收藏回复


10*4无痕内吸门镇楼
虽然这电路不太压缩,不过看在自己研发还有萌萌的Octopus的身上,还是放出来镇楼了。OwO
大家好,我是nenn。话说因为Mag和我发现暂时没有比较系统的BUD整理,所以才献丑怒来一发:http://tieba.baidu.com/p/2819632775。而本帖也是考虑到TEUD的特殊性(因为不是简单的BUD),所以在此单独整理出来。其中内容都是Mag和我两人合力研究和整理的,故在此对基友Mag表示感谢OwO。当然,考虑我们的水平有限,如果有错误,请大家指正。
还要感谢一下的喵喵大触。如果你经常光顾红石电路吧或者minecraft吧,相信zat喵喵全能触的名字不会陌生吧。就是这个全能触拉我入了黑石坑QwQ。。。哦对了,黑石的称呼最早也是喵喵给出的,意为“暗藏在黑暗角落的红石原理”,指的是那些冷门的甚至BUG的红石原理。后来大家觉得这称呼不错所以黑石也就在小圈子里面沿用开了。
哎呀罗嗦了QAQ。。。那下面我们开始研究吧。。。
P.S. 手速或许不够快 不过会尽快更的QwQ


IP属地:上海通过百度相册上传1楼2014-01-25 19:59回复
    2L


    IP属地:美国来自iPhone客户端2楼2014-01-25 20:00
    收起回复
      问题的焦点在于比较器 就是下面这个科♂学的元件 OwO

      比较器是红石更新引进的处理模拟信号的元件。基本介绍大家可以参看wiki:http://minecraft-zh.gamepedia.com/%E7%BA%A2%E7%9F%B3%E6%AF%94%E8%BE%83%E5%99%A8 不过千万注意,wiki中文关于比较器的介绍有一部分是有错误的(其实是信息没有更新)。。。1.5.2及以后的版本中,比较器的延时为1t,但是作用与机械时存在微延时(原因应该是同一个tick中代码执行的先后顺序 不过是微延时只有对机械作用时才能体现出来 已有实验证明微延时存在 这里不赘述)。

      物品栏中有物品的方块以及盛水的水缸、放入唱片的音乐盒等等,都可以直接或者透过非透明方块被比较器检测到并输出信号。信号强度随物品多少、盛水多少、唱片编号等等而变化。这一点相信很多人都已经知道了。

      带有物品附加值的方块无法被活塞推动,所以几乎所有可以使得比较器输出信号的方块无法被推动(因为有物品栏)。但是,盛水的水缸例外(就是炼药锅啊坩埚啊啥的,名称随便啦233)。正是由于水缸的这一特性,这个结构被经常用于机械电路(主要用于需要排除bud干扰的活塞向上传递信号)。


      IP属地:上海3楼2014-01-25 20:21
      收起回复

        除了水缸以外,箱子也是很有特点的方块。带有动画这点不说,如果箱子上方有非透明方块,那么箱子会打不开。不过,还有些其他的性质,或许很多人不知道。

        如图,箱子中放任意数量的物品之后,比较器会输出信号。

        如果在箱子上方放置一块非透明方块,你会发现毫无变化。。。。23333

        不过我nenn从来不吭人OwO。这时候估计你会想把信号接出来,在比较器前面放个方块或者红石粉啊啥的,这时候你就发现比较器变暗了!OAO 如果你已经知道了BUD(别说mc只有活塞BUD 那样的话喵喵大触会哭的)为何物,那么你就可以肯定,这种处于亚稳态而且方块更新可以造成红石信号变化的装置就是BUD。由于是比较器处于亚稳态,因此我们可以称其为比较器BUD。
        这是从现象得到的结论,现在我们再从游戏机制分析一下。箱子上方压着非透明方块时,游戏并不会将这个箱子认做是一个”正常“的箱子,而只是一个普通的方块。虽然活塞依旧推不动,不过比较器并不能检测到箱子中的物品,我们也无法打开箱子。值得注意的是,箱子的这种状态的切换并不造成方块更新,所以处于上图中处于BUD态的比较器不会发生变化。
        利用比较器隔墙检测的性质以及箱子状态的切换不会造成方块更新,我们可以通过活塞移动箱子上方非透明方块的位置来控制箱子的状态。这样一来,可以自动重置的比较器BUD便成为可能,比如下图中的经典方案。

        上图是经典的自复位单稳态比较器BUD(其实不仅仅是个简单的BUD探测器)。
        下图是经典的自复位双稳态比较器BUD(同样不仅仅是个简单的BUD探测器)。

        当然如果你是熊孩子的话,这款基于比较器BUD的时钟肯定适合您OwO

        时钟形成的原因主要是:活塞的伸长和缩短(就是方块更新)触发了比较器BUD,触发以后电路进行重置,活塞伸长缩短重新触发比较器BUD。。。如此形成循环,因而输出的不是一个简单的脉冲而是一个时钟信号。


        IP属地:上海4楼2014-01-25 20:55
        收起回复
          当然了,要做成可自动复位的BUD还有其他方案。还记得前面我特意列出来的水缸么OwO那是我最喜欢的方块2333 水缸可以被推动这一点同样可以用来做比较器BUD。
          原理就是推开被隔墙检测到的盛水水缸并不会造成比较器周围的方块更新,这样比较器便会一直处于BUD态,如下图所示。
          这个现象是我独立发现的。。。那是在压缩隐藏附魔台的电路时,突发奇想想用这个装置产生一个脉冲结果误打误撞发现了比较器BUD。都怪邪恶的3B大触 QAQ

          利用这一原理,我们可以制作重置BUD的电路(下图)。这个电路之后也经过Mag的优化从而能够产0.5t的短脉冲,而这一点几乎就等于直接在BUD上加装了一个T触发器,所以这个优化非常有意义。具体的我们后面应用的时候再说。


          IP属地:上海5楼2014-01-25 21:11
          收起回复
            0w0角虫


            IP属地:北京6楼2014-01-25 22:37
            收起回复
              大触OuO


              IP属地:广东7楼2014-01-25 23:03
              收起回复
                利用水缸和箱子的特性作出的自复位比较器BUD是非常方便实用的。除了这两种比较好的方案,我们还可以利用运输矿车和探测铁轨的作用以及红石导线的指向bug来制作比较器BUD。下面我会做一一介绍。
                运输矿车有个箱子。。。不过运输矿车是实体,实体不是方块(实体是实体,实体方块是非透明方块,切勿混淆概念),比较器表示无力检测2333 不过由于探测铁轨的的特性,载物的运输矿车如果在探测铁轨上方便可以通过比较器输出信号(其实变得和箱子一样了),而其他矿车甚至载人的矿车都不行(大家可以亲自尝试),如下图所示。

                仔细想想不难发现,点亮比较器的是探测铁轨而不是矿车本身。借鉴前面水缸的BUD自复位电路的思路,我们同样可以抽离探测铁轨来形成比较器BUD。由于思路和前面相同,而且电路用到了不很稳定的实体(运输矿车),所以这种思路下的方案就不再详细介绍了。

                运输矿车和探测铁轨的作用结果从侧面表明了探测铁轨可以区分其上的矿车是否为运输矿车,而所有矿车为实体。这从侧面暗示了探测铁轨可以检测其上方的实体。虽然这个原理制作的可复位BUD方案不佳,但是其原理在后面TEUD的内容中也是很重要的。


                IP属地:上海8楼2014-01-26 00:49
                收起回复
                  说最后一种自回复比较器BUD之前,我们有必要先了解一个黑石知(zi)识(shi),那就是红石导线的指向bug(不是BUD,是个真真实实的bug!)。
                  记得喵喵曾经和我说过,所有的红石元件中,红石导线是最神秘复杂的。虽然中继器有5种主要的基本功能,比较器除了有中继器5种功能中的其中4种外还有另外4种模拟信号处理功能,红石火把有熄灭特性。。。这些性质可以说,查阅相关资料都可以很快找到。但是红石导线的指向bug、红石导线的微延时、红石导线传递信号的种类等等问题,可不是一般外部的资料可以找到的。好吧,貌似偏题的节奏。。。回来说红石导线指向bug。
                  红石导线的指向bug真的非常bug!这bug已经bug到可以让几乎所有的机械都达到BUD态。啥红石灯BUD、门(铁门、木门、活板门、栅栏门)BUD、红石火把BUD、音符合BUD、活塞BUD、中继器BUD、比较器BUD、TNTBUD。。。。。好吧,貌似列举没意义了。。。总之非常bug 我可以给大家看看我曾经利用红石导线的指向bug做的各种BUD,相信能够耐心看到这里的我觉得无需过多言语解释了OwO 大触们 看图吧






                  我真心没用任何mc1.7.2以外的任何辅助软件或者插件,修改器啊 we啊啥的都没有。这些都是我在纯净原版里面做出来的,即使生存下我同样可以演示给大家看。
                  有一段时间我以为红石导线的指向bug制作的BUD只能手动复位,但后来,探测铁轨提醒了我。。。。。。于是逆天的自复位BUD就出现了

                  稳定的自复位红石火把BUD

                  稳定的自复位中继器BUD


                  IP属地:上海9楼2014-01-26 01:13
                  收起回复
                    下面说说如何利用红石导线的指向bug来制作各种机械的BUD,图片我就用我以前的截图了(我才不承认是我懒QwQ)
                    那我们制作BUD态的红石火把吧 23333
                    第一步 略(2333)

                    第二步 放个中继器改变红石导线的走向 让红石导线不指向方块

                    第三步 点亮线路

                    第四步 打掉中继器。。。

                    好吧。。我承认的确很简单。。。利用这个方法我们可以简单地制作出各种机械的BUD。所以这一类方法制作出的BUD我们不用处于BUD态的元件来命名(不然毫无意义 也不能区分QAQ),而是直接称导线指向BUD。。。。
                    如果再加上探测铁轨来自复位的话,那么自复位的比较器BUD还可以有这种方案:

                    相信如果理解了导线指向bug,这个图我也无需多多解释了。大家仔细观察比较器为何会点亮,然后看看后方红石导线的指向就可以看出来了。 OwO


                    IP属地:上海10楼2014-01-26 01:31
                    收起回复
                      此贴必精!


                      11楼2014-01-26 02:31
                      收起回复
                        晚上回家继续更~


                        IP属地:上海12楼2014-01-26 17:23
                        回复
                          回来了OwO 我们继续吧。
                          话说 我们先讨论点轻松的吧。。。了解过BUD的朋友可以来看看这个问题,下图中的比较器BUD如何制作呢?

                          一般来说,制作比较器BUD总要控制信号输入。所以怎么说比较器四周都不可能没有方块啊OAO 可是图片就这样摆在那里啊OAO
                          23333 好吧,不该调戏各位大触的OwO 其实乃们如果真的按照上面这样想的话才更接近真相。。。这玩意儿根本不是BUD 233333
                          很多人看见自己伸长的活塞就条件反射是BUD,看见自己亮着的红石灯就条件反射是BUD,所以看见了自己亮着的比较器也是BUD。BUD是啥?Block Update Detector,就是方块更新感应器。狭义上来说,只有能够对方块更新作出反应并把这种改变的信息通过红石线路输出的装置才叫BUD。对方块更新作出反应和有红石信号输出这两点缺一不可。当然,广义上的BUD不强调输出,但是对方块更新作出反应这一点没有疑问。不过无论狭义还是广义,BUD的亚稳态特点总是不变的。亚稳态是一种稳定的状态,只是在一定条件下会变得不稳定而已。
                          所以伸长的活塞在毗邻方块更新时会收回才叫触发了BUD,其他机械同理。这里不惜写那么多来说明一下BUD的基本概念,只是因为看见外面大触好多 QAQ 他们都已经很懂BUD了 而我却才知道一点点 QAQ
                          介绍了BUD的概念,我们根据这个概念判断看看上图中的比较器处于什么状态。不过之前当然先要告诉大家怎么搞出这个奇葩玩意儿 OwO 相信玩过模电的骚年们已经知道了,这朵奇葩来自模电的经典异或门。。。
                          下图展示的是经典的模电异或门单元。注意比较器都要设置在减法模式,也就是比较器前端的红石火把要处于点亮状态。

                          如果你用过这个电路,你应该知道上图的单元是没法直接放到电路里的。。。如果需要通用性比较好的红石导线作为输入和输出,需要下图的结构。由于是模电,所以这里拉杆位置原本阻断的两路信号即使串起来也没事。

                          如果乃和我一样手贱OwO 乃试试按照这个顺序拨动拉杆:右左右左。。。然后你应该就可以看到下面的科♂学状态了

                          看见那个科♂学的比较器了么OwO That's it! 现在可以放心打掉那个周围的其他东西啦OwO然后就出现了前面图里的那个突兀的比较器。。。。。。。
                          诶?等等。。。打掉?放心打掉? OAO 好吧。。。。
                          打掉周围的方块比较器依然亮着啊OAO 这尼玛肯定不是BUD啊 坑爹啊OAO 如果我们的研究再深♂入一点,比较器的输出前面用红石导线引出来,你会看到。。。

                          23333 好吧 没有信号。。。。
                          这说明了什么呢OwO 这说明了,比较器其实没有被点亮,但是却显示成了点亮的样子。。。。这个只是个贴图错误,不是BUD。。。。但是,非常容易被有些大触们误认为BUD。。。。
                          大概是新加入的缘故,比较器造成的贴图bug不止这里一处。
                          话说,大家知道中继器的五个特性么 0.0 强充能、中继、延时、单向和D锁存。D锁存特性体现的时候,姿势应该如下图左边的电路所示:

                          可以看到处于锁存状态的中继器会出现奇怪的结构。。。根据输入和输出的情况来看,中继器也的确处于锁存状态。可是右边的电路呢OAO 为何根据输入输出同样应该处于锁存状态的中继器却显示正常?难道也是BUD么OAO


                          IP属地:上海13楼2014-01-26 21:20
                          收起回复
                            其实先说了吧。。。这同样是贴图错误。如果你切换比较器的模式就会看到正常的贴图,这时你再切换回来贴图将一直显示正确了。所以比较器同样可以使得中继器处于锁存态。

                            这一点一开始我以为很多人都知道。后来和小兔子大触讨论比较器的延时问题时,发现连小兔子大触也不知道。。。之后我才注意到貌似很多人也不知道。。。
                            好吧关于比较器的一些小问题不多说了。。。。大家可以看看这里思考思考 http://tieba.baidu.com/p/2812537755 其中23楼我整理的问题貌似现在还没人给出比较合理的解释。。所以如果有大触可以查看比较器和中继器的源代码的话,也可以去看看吧。。。
                            比较器现在尚未解决的几个主要问题:
                            比较器的微延时是如何作用在红石导线和火把上的
                            比较器高频时钟发生器发出的时钟信号能否通过比较器为何同信号强度有关
                            比较器组为何会改变2个间隔1t的单刻脉冲
                            好吧,TEUD的前戏差不多就到这里了。关于比较器乃是不是有了更多的了解呢OwO。那下面我们就进入TEUD的内容吧。


                            IP属地:上海14楼2014-01-26 22:22
                            收起回复
                              都是一群大触手,然我一个建筑渣很无奈啊。
                                  ------这里是一个小尾巴,改成你要文字吧。~


                              IP属地:重庆15楼2014-01-26 22:25
                              收起回复