五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【MCBE-命令教程】連鎖挖礦/砍樹(shù)

2020-07-28 23:26 作者:Happy2018new  | 我要投稿


引言:雖然B站上有很多的“連鎖挖礦/砍樹(shù)”的教程,但是都不盡人意。如果使用那種連鎖挖礦,如果礦物過(guò)長(zhǎng),很多時(shí)候連鎖到一半就中斷了。除了這個(gè)問(wèn)題以外,在連鎖后產(chǎn)生的礦物掉落物旁邊放置相同類(lèi)型的掉落物,仍然會(huì)被連鎖(理論上連鎖已經(jīng)結(jié)束了...)

為了解決上述問(wèn)題,我寫(xiě)了這篇專(zhuān)欄,可以有效地解決這些問(wèn)題,但是時(shí)運(yùn)的問(wèn)題還是無(wú)法解決...

望三連啊,點(diǎn)個(gè)免費(fèi)的贊也可以~

要解決中斷的問(wèn)題,我們首先就要了解為何會(huì)出現(xiàn)這種問(wèn)題...

以地獄石英舉例,我挖完后,它的掉落物是這樣掉落的(如圖 1)

圖 1

然后我又挖了一個(gè),它是這樣掉落的(如圖 2)

圖 2

所以我們可以初步的判斷,地獄石英被開(kāi)采后,它的掉落物的掉落方向是不固定的。然后我又多開(kāi)采了一些不同類(lèi)型的方塊,結(jié)果也是如此。

但是這和連鎖中斷有何關(guān)系呢?

其實(shí)答案已經(jīng)出來(lái)了。因?yàn)殚_(kāi)采后,掉落物的掉落方向是不固定的,而傳統(tǒng)的算法是以掉落物為單位進(jìn)行連鎖,而掉落方向的不固定,導(dǎo)致最終的掉落位置偏移了預(yù)期的位置,導(dǎo)致連鎖中斷,類(lèi)似圖 3的情形,地獄石英本應(yīng)該在礦石的前面,但是由于偏移,導(dǎo)致無(wú)法落到預(yù)期位置。

傳統(tǒng)算法(以鉆石礦舉例):

execute @e[type=item,name=鉆石,ry=0,rym=0] ~1~~detect~~~diamond_ore -1 setblock~~~air 0 destroy

execute @e[type=item,name=鉆石,ry=0,rym=0] ~-1~~detect~~~diamond_ore -1 setblock~~~air 0 destroy

execute @e[type=item,name=鉆石,ry=0,rym=0] ~~1~detect~~~diamond_ore -1 setblock~~~air 0 destroy

execute @e[type=item,name=鉆石,ry=0,rym=0] ~~-1~detect~~~diamond_ore -1 setblock~~~air 0 destroy

execute @e[type=item,name=鉆石,ry=0,rym=0] ~~~1 detect~~~diamond_ore -1 setblock~~~air 0 destroy

execute @e[type=item,name=鉆石,ry=0,rym=0] ~~~-1 detect~~~diamond_ore -1 setblock~~~air 0 destroy

圖 3

不過(guò)有人就說(shuō)了,命令方塊的執(zhí)行間隔很短(1游戲刻),那么掉落物的掉落方向所產(chǎn)生的誤差可以忽略不計(jì)。但是根據(jù)多組實(shí)驗(yàn),這種系統(tǒng)是無(wú)法運(yùn)行的。大家也可以自己親自試一試。

P.S. 即使修復(fù)了這個(gè)問(wèn)題,第二個(gè)問(wèn)題(在掉落物旁放同類(lèi)礦石也會(huì)被連鎖,即使理論上連鎖已經(jīng)結(jié)束)也仍然無(wú)法修復(fù)。因?yàn)閭鹘y(tǒng)算法是以掉落物為目標(biāo)進(jìn)行追蹤,所以要同時(shí)修復(fù)這兩個(gè)bug,我們得從另一方面入手(不以掉落物為單位進(jìn)行檢測(cè))。

修正方法:

所以我們?cè)谕婕彝诘V后,用經(jīng)驗(yàn)球和掉落物同時(shí)檢測(cè)(某些礦物挖了后不掉經(jīng)驗(yàn)除外)。如果同時(shí)檢測(cè)到了這2個(gè)實(shí)體,我們則給這個(gè)掉落物添加一個(gè)標(biāo)簽。然后以這個(gè)掉落物為單位,檢測(cè)前后上下左右是否有同類(lèi)方塊。如果有,則在前/后/上/下/左/右的位置處生成一個(gè)實(shí)體(下稱(chēng)“栓繩”),給生成的栓繩添加另一個(gè)標(biāo)簽(下稱(chēng)這些實(shí)體為tag=b)。然后移除剛剛那個(gè)掉落物的標(biāo)簽,并更改它的rx軸/ry軸旋轉(zhuǎn)值,以保證命令方塊下一次循環(huán)的時(shí)候,不會(huì)再以該掉落物為單位進(jìn)行連鎖,這也就解決了在連鎖結(jié)束后,放置同類(lèi)方塊還是會(huì)連鎖的問(wèn)題。

執(zhí)行這些操作后,現(xiàn)在地圖上只剩 tag=b 和沒(méi)有被連鎖的方塊了。那么我們給這些栓繩添加另一個(gè)標(biāo)簽(下稱(chēng)這些實(shí)體為tag=c),然后以 tag=c 為單位,檢測(cè)前后上下左右是否有可以連鎖的方塊。如果有,則在對(duì)應(yīng)位置生成一個(gè)實(shí)體,并為其添加一個(gè)標(biāo)簽(給他們添加的標(biāo)簽還是b)。

現(xiàn)在來(lái)梳理一下思路:地圖上現(xiàn)在還有一些 tag=b(剛剛生成的,沒(méi)有標(biāo)簽c) 和一些 tag=c (最早生成的,也有標(biāo)簽b)。那么我們現(xiàn)在以 tag=c 為單位,檢測(cè)其位置處是否是可以被連鎖的方塊,如果是,則打碎自己位置的方塊并清除自己,現(xiàn)在只剩下 tag=b 了。然后重復(fù)以上操作,直到最后, tag=c 無(wú)法在前后上下左右找到可以被連鎖的方塊,也就無(wú)法生成 tag=b ,則整個(gè)連鎖宣告結(jié)束(因?yàn)樽詈?tag=c 都會(huì)被kill,所以如果不在kill之前生成 tag=b ,則就沒(méi)有 tag=c 或 tag=b 了)。

那么就是這樣了,不管礦物有多長(zhǎng)都可以被連鎖到(礦物必須在加載區(qū)塊內(nèi))

不過(guò)還是有一些小問(wèn)題,比如 tag=b 可能會(huì)被重復(fù)生成。為了解決這個(gè)問(wèn)題,建議使用遞歸,即給全部由命令方塊生成的栓繩添加一個(gè)標(biāo)簽d,然后從帶有這些標(biāo)簽的栓繩中隨機(jī)選擇一個(gè),檢測(cè)當(dāng)前位置處是否有多個(gè)同類(lèi)連鎖方塊的實(shí)體。如果有,則刪除多出來(lái)的那些,然后去除自身的標(biāo)簽d,然后從隨機(jī)抽取的列表中移除。如果還有帶有標(biāo)簽d的栓繩,則遞歸下去,直到?jīng)]有,遞歸被打破。

END.附上我寫(xiě)的連鎖鉆石塊的指令組,如圖 4(玩家持有標(biāo)簽lswk:player即可使用,function more是檢測(cè)是否有重復(fù)生成的實(shí)體,這里就不給這個(gè)function的圖了)。

圖 4

其實(shí)還可以繼續(xù)簡(jiǎn)化,看你們的啦~

P.S. 不會(huì)把指令發(fā)到評(píng)論區(qū),請(qǐng)自己理解消化后自己再寫(xiě)一個(gè)。復(fù)制粘貼是沒(méi)有意義的,別人的東西終究是別人的。連鎖砍樹(shù)同理也可以做的哦~

【MCBE-命令教程】連鎖挖礦/砍樹(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平遥县| 祁门县| 兰坪| 成武县| 申扎县| 芜湖市| 栾城县| 新蔡县| 永登县| 抚远县| 徐汇区| 四平市| 宁国市| 苏尼特左旗| 中方县| 渭南市| 大名县| 交城县| 新民市| 肥西县| 黔江区| 华宁县| 怀柔区| 金堂县| 肥东县| 许昌县| 长乐市| 松江区| 温州市| 册亨县| 乐东| 武鸣县| 琼结县| 元氏县| 广水市| 孟连| 涟源市| 林周县| 融水| 张北县| 二手房|