切換
舊版
前往
大廳
主題

【嵐】【指令】記分板進階應用篇③:二分法,快速進行分數與向量的轉換

雪色 | 2017-07-05 13:05:22 | 巴幣 6 | 人氣 585

二分法:
那麼二分法又是什麼呢?
維基的解釋超難懂(X):
https://zh.wikipedia.org/wiki/二分法_(數學)
可以不用看啦,反正也無法理解

以下是目前在Minecraft記分板支援的二分法和比較簡易的介紹:
他是一個很好理解的數學公式,
就是將一個數值被2^n(2的n次方)減去並給予計數
假設我們設一個數字是67
那麼67這個數字可以被(2^6+2^1+2^0)減去
也就是67=2^6+2^1+2^0=63+4
如果還是無法理解,那我把它翻譯成minecraft的記分板解釋法O.O

以下是將數值二分法並轉換成向量(這只是二分法能應用的其中之一的舉例):
先給國中生能理解,向量是什麼?
就是在一個平面或立體的空間的座標(x、y、z)在兩點間移動的距離
直接用機關來舉例:

假設我要讓tag=tp的生物能夠向x軸快速的移動一個指定格數,
設要進行記數轉換成向量的記分板為motion
/tp  @e[tag=tp,score_motion_min=32] ~32 ~ ~
/scoreboard players remove @e[tag=tp,score_motion_min=32] motion 32
/tp  @e[tag=tp,score_motion_min=16] ~16 ~ ~
/scoreboard players remove @e[tag=tp,score_motion_min=16] motion 16
/tp  @e[tag=tp,score_motion_min=8] ~8 ~ ~
/scoreboard players remove @e[tag=tp,score_motion_min=8] motion 8
...
/tp  @e[tag=tp,score_motion_min=1] ~1 ~ ~
/scoreboard players remove @e[tag=tp,score_motion_min=1] motion 1

這串機關能處理的最大移動距離會是=32+16+8+4+2+1=63
將這串機關翻譯會是這樣子:
當@e[tag=tp]的motion分數大於32時,會向x軸移動32格
移去e[tag=tp]的motion分數大於32記分板motion共32分
當@e[tag=tp]的motion分數大於16時,會向x軸移動16格
移去e[tag=tp]的motion分數大於16記分板motion共16分
當@e[tag=tp]的motion分數大於8時,會向x軸移動8格
移去e[tag=tp]的motion分數大於8記分板motion共8分
...
也就是他在第一層(移動32格)移動完並且減去分數後,
如果遇到第二層(移動16格)時剩餘的motion不大於16時就會被跳過第二層,
並繼續下一層的確認是否要移動或跳過

創作回應

搭啦
請問tag=A的用途是?
2018-05-19 19:03:29
雪色
記分板中的一個功能,可以給實體標籤以便偵測
2018-05-19 19:08:34
雪色
你可以用/scoreboard players tag (實體) add A 來給實體一個tag=A
移除的話把add改成remove就好
2018-05-19 19:09:09
搭啦
我的意思是,上面指令裡有tag=A,下面解釋時卻只有tag=tp,那上面寫的tag=A的用途為何?
2018-05-19 19:15:33
雪色
oh. 好像是打錯...
2018-05-19 19:25:30
雪色
之前還真的沒注意到OAo..
2018-05-19 19:26:11
雪色
感謝你的提醒.w.
2018-05-19 19:26:43
搭啦
喔~我還以為有其它用途
2018-05-19 19:27:45
追蹤 創作集

作者相關創作

更多創作