Robo Code初階學習 五(並行碼篇)

不是每次只可以有一個動作在進行,我們可以在某些特定條件下讓2個或以上動作同一時間進行,例如向前的同時亮燈和響聲。

影片版 (舊版本)

圖文版

當一串code裡含有1個或以上的動作同時進行,我們將其稱為並行碼 Parallel Execution

反之(即每次只執行1個動作),我們將其稱為順序碼 Sequential code,即我們先前所學的。

我們將並行碼中的「大泡泡」稱為狀態 State

並行碼操作例子 - 如不使用駕駛動作,如何同時轉動兩個摩打?

Robo Code App詳細介紹(摩打動作及Servo動作篇),我們提及過我們不需要使用兩個動作來控制摩打。

然而,我們可以以這個問題來做例子學習 - 我們如何不使用駕駛動作使車子向前?

我們可以將兩個摩打動作拉進同一個狀態裡,然後將兩者如上圖那樣設定成相反方向(一前一後),你知道為什麼嗎?

因為當你將兩個摩打分別裝在左右時,它們其實是「上下調掉」的狀態,若我們設成同一方向車將會反轉。

我們可以將不同的動作放在同一個狀態中,上限為3個。例如聲音+駕駛/燈光+聲音等等。

然而,它並不是沒有限制,請留意下方的講解。

什麼可以放在同一個狀態中?什麼不可以?

我們可以同時放入同一個狀態的動作是按照「不會發生衝突」的提前。例如,主塊不可能同一時間發出兩種不同的聲音,因此不可能同時存在響爸鈴聲和狗叫聲;RGB燈不可能在長亮的狀態下閃動,因此不可能同時存在亮燈和閃燈動作。

但是,摩打動作在有兩個DC摩打同時存在的情況下,便可以做到同時轉動,因此它們可以在同一狀態出現。但它也不可能做出「在向前的同時轉向」,所以這兩個動作也不能共存。

狀態可以連結到另一個狀態嗎?

可以,無論狀態中有多少個動作,我們都只會將它視作一次過渡 Transition

如不知道什麼是過渡,可重溫Robo Code App詳細介紹(如何操作及聲音動作篇)