二分法:
那麼二分法又是什麼呢?
維基的解釋超難懂(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時就會被跳過第二層,
並繼續下一層的確認是否要移動或跳過