控制#

介紹#

VEXcode VR 中的控制區塊透過處理循環、條件和延遲區塊的運作來管理專案的流程。

循環是指電腦重複執行相同的步驟或步驟群組,直到收到停止指令為止。條件是計算機用來決定下一步操作的規則。例如,如果感測器偵測到物體,機器人就可以向前移動。

以下是可用模組列表:

  • wait – 暫停程式碼區塊運行指定的時間。

  • wait until – 暫停程式碼區塊運行,直到滿足指定的條件。

  • repeat – 將一組程式碼區塊重複指定次數。

  • forever – 無限重複一組方塊。

  • repeat until – 重複執行一組程式碼區塊,直到滿足某個條件。

  • while – 當條件為真時,重複執行一組程式碼區塊。

  • if – 若條件為真,則執行一組程式碼區塊。

  • if / else – 如果條件為真,則執行一組程式碼區塊;否則,執行另一組程式碼區塊。

  • if / else if / else – 根據多個條件執行不同的程式碼區塊集。

  • break – 立即退出 repeat、forever、repeat until 或 while 循環。

  • 停止專案 – 結束專案。

等待#

wait 堆疊區塊會在執行下一個程式碼區塊之前暫停目前程式碼區塊運行一段時間。

等待堆疊塊#
等待 (1) 秒

參數

描述

時間

等待時間,以秒為單位,表示為正整數或小數。

例子

啟動後向前移動一秒鐘,然後停止所有動作。#
當開始時 :: hat events
[Move forward for one second, then stop.]
行駛 [前方 v]
等待 (1) 秒
停止行駛

等到#

等待直到堆疊區塊會暫停程式碼區塊的運行,直到滿足指定的條件後才會執行下一個程式碼區塊。

等待直到堆疊塊#
等待直到 <>

參數

描述

狀態

進入下一模組之前必須滿足的條件。

例子

啟動後,向前移動,直到按下螢幕,然後停止所有移動。#
當開始時 :: hat events
[Move forward until a button is pressed, then stop.]
行駛 [前方 v]
等待直到 <[LeftBumper v] 按下?>
停止行駛

重複#

repeat C 程式碼區塊會執行其內部程式碼區塊設定的次數。

重複 c 塊#
重複 [10] 次
結束

參數

描述

時代

一個整數,用於設定重複程式碼區塊運行的次數。

例子

當開始時 :: hat events
[Move in a square path.]
重複 [4] 次
行駛 [前方 v] [150] [mm v] ▶
向 [右 v] 轉 [90] 度 ▶
結束

永遠#

永遠運行的C程式碼區塊會不停地重複執行它內部的程式碼區塊。

永遠的C塊#
永遠
結束

參數

描述

此程式碼區塊沒有參數。

例子

啟動後,沿著正方形路徑連續移動,向前移動 50 毫米,然後向右轉 90 度,形成無限循環。#
當開始時 :: hat events
[Move in a square path forever.]
永遠
行駛 [前方 v] [150] [mm v] ▶
向 [右 v] 轉 [90] 度 ▶
結束

重複直到#

repeat until C 程式碼區塊會重複執行其內部的程式碼區塊,直到滿足指定的條件為止。

重複直至阻塞#
重複直到 <>
結束

參數

描述

狀態

每次循環前都會檢查一個表達式或變數。如果該表達式或變數為False,則程式碼區塊繼續重複執行;如果該表達式或變數為True,則循環停止。

例子

啟動時,所有 LED 指示燈保持紅色,直到按下螢幕,然後熄滅。#
當開始時 :: hat events
[Move the pen until the bumper is pressed.]
行駛 [前方 v]
重複直到 <[LeftBumper v] 按下?>
移動筆 [下降 v]
等待 (0.5) 秒
移動筆 [上升 v]
等待 (0.5) 秒
結束
等待 (0.5) 秒
停止行駛

儘管#

while C 程式碼區塊會在滿足指定條件時重複執行其內部的程式碼區塊。

當 c 塊#
當 <>
結束

參數

描述

狀態

每次循環前都會檢查一個表達式或變數。如果為真,則程式碼區塊繼續重複執行;如果為假,則循環停止。

例子

啟動後,機器人向前移動 200 毫米,同時所有 LED 指示燈保持綠色。停止移動後,LED 指示燈熄滅。#
當開始時 :: hat events
[Display a message while moving.]
行駛 [前方 v] [300] [mm v] ◀ 且不等待
當 <行駛中?>
列印 [Moving...] ▶
等待 (0.1) 秒
清除所有列
結束
列印 [Done!] ▶

如果#

if C 程式碼區塊會在條件為True時執行其內部的程式碼區塊。

如果阻塞#
如果 <> 則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。如果該表達式或變數為真,則執行if程式碼區塊內的程式碼區塊;如果該表達式或變數為假,則跳過這些程式碼區塊。

例子

啟動後,機器人會持續偵測螢幕是否被按下。如果被按下,機器人會以中等力度踢一個物體。#
當開始時 :: hat events
[Turn in a circle if the bumper is pressed.]
行駛 [前方 v]
永遠
如果 <[LeftBumper v] 按下?> 則
行駛 [反向 v] (200) [mm v] ▶
向 [右 v] 轉 (360) 度 ▶
結束
停止行駛
結束

如果/否則#

if / else C 程式碼區塊根據條件是真還是假來決定要執行哪一組程式碼區塊。

如果則阻止#
如果 <> 則
否則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。如果它為真,則執行if程式碼區塊內的程式碼區塊。如果它為假,則執行else程式碼區塊內的程式碼區塊。

例子

啟動後,持續偵測螢幕是否被按下。如果被按下,則顯示一個興奮的、向前看的表情符號;否則,顯示一個無聊的、向前看的表情符號。#
當開始時 :: hat events
[If bumper pressed, reverse and turn right.]
永遠
如果 <[LeftBumper v] 按下?> 則
行駛 [反向 v] (100) [mm v] ▶
向 [右 v] 轉 (90) 度 ▶
否則
行駛 [前方 v]
結束

如果/否則如果/否則#

if / else if / else 可擴充 C 程式碼區塊依條件選擇要執行哪一組程式碼區塊:

  • 如果條件評估結果為True,則if 執行其程式碼區塊。

  • else if 語句僅在所有先前條件都為 False 時才會檢查其他條件。可以使用多個 else if 語句。

  • 否則,僅當前面所有條件皆不為真時,才會執行其程式碼區塊。

如果否則如果否則阻塞#
如果 <> 則
否則如果 <> 則
否則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。第一個為真的條件會執行該組代碼區塊。如果所有條件都為假,則會執行else程式碼區塊內的程式碼區塊。

例子

當控制器的 1 軸位置改變時,向前推則前進,向後拉則後退,中立時停止。#
當開始時 :: hat events
[Turn right if the an Eye Sensor detects red, left if it detects green, and continue driving if anything else.]
永遠
如果 <[FrontEye v] 偵測到 [紅色 v]?> 則
向 [右 v] 轉 (90) 度 ▶
否則如果 <[FrontEye v] 偵測到 [綠色 v]?> 則
向 [左 v] 轉 (90) 度 ▶
否則
行駛 [前方 v]
結束
結束

休息#

break 程式碼區塊會立即退出循環。此程式碼區塊可以用於 repeat、repeat until、while 和 forever 程式碼區塊中。當循環需要根據專案運行過程中發生的事件(例如按鈕被按下或感測器偵測到物體)提前停止時,break 非常有用。

中斷堆疊區塊#
中斷

參數

描述

此程式碼區塊沒有參數。

例子

啟動時,LED 燈每 0.5 秒閃爍一次紅色和綠色,直到按下螢幕,然後停止。#
當開始時 :: hat events
[Stop turning after a button is pressed.]
永遠
行駛 [前方 v]
如果 <[LeftBumper v] 按下?> 則
中斷
結束
結束
停止行駛

停止項目#

停止專案堆疊區塊會結束正在執行的專案。

停止項目阻塞#
停止專案

參數

描述

此程式碼區塊沒有參數。

例子

啟動時,LED燈每0.5秒閃爍一次紅色和綠色,直到按下螢幕,然後停止專案。#
當開始時 :: hat events
[Stop the project entirely after a button is pressed.]
永遠
行駛 [前方 v]
如果 <[LeftBumper v] 按下?> 則
停止專案
結束
結束