ควบคุม#

การแนะนำ#

บล็อกควบคุมใน VEXcode GO ทำหน้าที่จัดการการไหลของโปรเจ็กต์โดยการจัดการลูป เงื่อนไข และการหน่วงเวลาการทำงานของบล็อกต่างๆ

ลูป คือกระบวนการที่คอมพิวเตอร์ทำซ้ำขั้นตอนเดิมหรือกลุ่มขั้นตอนเดิมไปเรื่อยๆ จนกว่าจะได้รับคำสั่งให้หยุด เงื่อนไข คือกฎที่คอมพิวเตอร์ตรวจสอบเพื่อตัดสินใจว่าจะทำอะไรต่อไป ตัวอย่างเช่น หุ่นยนต์สามารถเคลื่อนที่ไปข้างหน้าได้หากเซ็นเซอร์ตรวจจับวัตถุได้

ด้านล่างนี้คือรายการของบล็อกทั้งหมด:

  • wait — หยุดการทำงานของบล็อกชั่วคราวตามระยะเวลาที่กำหนด

  • รอจนกว่า — หยุดการทำงานของบล็อกชั่วคราว จนกว่าจะตรงตามเงื่อนไขที่กำหนด

  • ทำซ้ำ — ทำซ้ำชุดบล็อกตามจำนวนครั้งที่กำหนด

  • ตลอดไป — ทำซ้ำชุดบล็อกไปเรื่อยๆ อย่างไม่มีที่สิ้นสุด

  • ทำซ้ำจนกว่า — ทำซ้ำชุดบล็อกจนกว่าจะตรงตามเงื่อนไข

  • while — ทำซ้ำชุดบล็อกตราบใดที่เงื่อนไขยังคงเป็นจริง

  • if — รันชุดบล็อกหากเงื่อนไขเป็นจริง

  • if / else — รันชุดบล็อกหนึ่งหากเงื่อนไขเป็นจริง มิฉะนั้นจะรันอีกชุดหนึ่ง

  • if / else if / else — รันชุดบล็อกที่แตกต่างกันขึ้นอยู่กับเงื่อนไขหลายประการ

  • break — ออกจากลูป repeat, forever, repeat until หรือ while ทันที

  • หยุดโครงการ — สิ้นสุดโครงการ

รอ#

บล็อก wait จะหยุดการทำงานของบล็อกอื่นชั่วคราวเป็นระยะเวลาที่กำหนด ก่อนที่จะไปยังบล็อกถัดไป

รอบล็อกสแต็ก#
รอ (1) วินาที

พารามิเตอร์

คำอธิบาย

เวลา

ระยะเวลาที่ต้องรอ ระบุเป็นจำนวนเต็มบวกหรือทศนิยมในหน่วยวินาที

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
ขับ [ไปข้างหน้า v]
รอ (2) วินาที
หยุดขับ

รอจนกว่า#

บล็อกคำสั่ง wait until จะหยุดการทำงานของบล็อกอื่นชั่วคราว จนกว่าจะตรงตามเงื่อนไขที่กำหนด ก่อนที่จะไปยังบล็อกถัดไป

รอจนกว่าจะถึงบล็อกซ้อน#
รอจนกว่า <>

พารามิเตอร์

คำอธิบาย

เงื่อนไข

เงื่อนไขที่ต้องปฏิบัติตามก่อนที่จะดำเนินการไปยังส่วนถัดไป

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward when the LED Bumper is pressed.]
รอจนกว่า <[bumper v] ถูกกด? :: custom-led>
ขับ [ไปข้างหน้า v] เป็น [200] [มม. v] ▶

ทำซ้ำ#

บล็อก repeat C จะเรียกใช้บล็อกภายในซ้ำตามจำนวนครั้งที่กำหนดไว้

ทำซ้ำบล็อก c#
ทำซ้ำ [10]
fine

พารามิเตอร์

คำอธิบาย

ครั้ง

ตัวเลขจำนวนเต็มที่กำหนดจำนวนครั้งที่บล็อก ทำซ้ำ จะทำงาน

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Code Base 2.0]
[Drive in a square pattern.]
ทำซ้ำ [4]
ขับ [ไปข้างหน้า v] เป็น [200] [มม. v] ▶
เลี้ยว [ขวา v] เป็น [90] องศา ▶

ตลอดไป#

บล็อก C ตลอดกาล จะรันบล็อกภายในซ้ำแล้วซ้ำเล่าโดยไม่หยุด

ตลอดไป ซีบล็อก#
ทำตลอดไป
fine

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Code Base 2.0 - Eye Forward]
[Blink LED light in a pattern.]
ทำตลอดไป
ตั้ง [bumper v] เป็น [เขียว v] :: custom-led
รอ [0.5] วินาที
ตั้ง [bumper v] เป็น [ปิด v] :: custom-led
รอ [0.5] วินาที

ทำซ้ำจนกระทั่ง#

บล็อก repeat until C จะรันบล็อกภายในซ้ำๆ ตราบใดที่เงื่อนไขที่กำหนดไม่เป็นจริง

ทำซ้ำจนกว่าจะเป็นบล็อก#
ทำซ้ำจนกว่า <>
fine

พารามิเตอร์

คำอธิบาย

เงื่อนไข

นิพจน์หรือตัวแปรที่จะถูกตรวจสอบก่อนเริ่มลูปแต่ละครั้ง หากเป็น เท็จ บล็อกจะทำงานซ้ำต่อไป หากเป็น จริง ลูปจะหยุดลง

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Code Base 2.0 - Eye Forward]
[Blink LED light until the LED Bumper is pressed.]
ทำซ้ำจนกว่า <[bumper v] ถูกกด? :: custom-led>
ตั้ง [bumper v] เป็น [เขียว v] :: custom-led
รอ [0.5] วินาที
ตั้ง [bumper v] เป็น [ปิด v] :: custom-led
รอ [0.5] วินาที

ในขณะที่#

บล็อก while ในภาษา C จะเรียกใช้บล็อกภายในซ้ำ ๆ ตราบเท่าที่เงื่อนไขที่กำหนดไว้เป็นจริง

ขณะที่บล็อก c#
ในขณะที่ <>
fine

พารามิเตอร์

คำอธิบาย

เงื่อนไข

นิพจน์หรือตัวแปรที่จะถูกตรวจสอบก่อนเริ่มลูปแต่ละครั้ง หากเป็น จริง บล็อกจะทำงานซ้ำต่อไป หากเป็น เท็จ ลูปจะหยุดลง

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Code Base 2.0]
[Turn the robot around.]
ในขณะที่ <(ทิศทางขับในองศา) [math_less_than v] [180]>
เลี้ยว [ขวา v]
fine
หยุดขับ

ถ้า#

บล็อก if C จะเรียกใช้บล็อกภายในหากเงื่อนไขเป็น จริง

ถ้าบล็อก#
ถ้า <> แล้ว
fine

พารามิเตอร์

คำอธิบาย

เงื่อนไข

นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน หากเป็น จริง บล็อกภายในบล็อก if จะทำงาน หากเป็น เท็จ บล็อกเหล่านั้นจะถูกข้ามไป

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward whenever the LED Bumper is pressed.]
ทำตลอดไป
ถ้า <[bumper v] ถูกกด? :: custom-led> แล้ว
ขับ [ไปข้างหน้า v] เป็น [200] [มม. v] ▶

ถ้า / มิฉะนั้น#

บล็อก C if / else จะกำหนดว่าชุดบล็อกใดจะทำงาน โดยขึ้นอยู่กับว่าเงื่อนไขเป็น จริง หรือ เท็จ

ถ้าเช่นนั้นบล็อก#
ถ้า <> แล้ว
มิฉะนั้น
fine

พารามิเตอร์

คำอธิบาย

เงื่อนไข

นิพจน์หรือตัวแปรที่ใช้ตรวจสอบเมื่อคำสั่งทำงาน ถ้าเป็น จริง บล็อกภายในบล็อก if จะทำงาน ถ้าเป็น เท็จ บล็อกภายในบล็อก else จะทำงาน

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward if there is no an object in the way.]
ทำตลอดไป
ถ้า <ตาพบวัตถุ?> แล้ว
หยุดขับ
มิฉะนั้น
ขับ [ไปข้างหน้า v] เป็น [200] [มม. v] ▶

ถ้า / มิฉะนั้น ถ้า / มิฉะนั้น#

บล็อก C ที่ขยายได้ if / else if / else จะเลือกชุดบล็อกที่จะทำงานโดยพิจารณาจากเงื่อนไข:

  • คำสั่ง if จะรันบล็อกโค้ดก็ต่อเมื่อเงื่อนไขเป็น จริง

  • else if จะตรวจสอบเงื่อนไขเพิ่มเติมก็ต่อเมื่อเงื่อนไขก่อนหน้าทั้งหมดประเมินค่าเป็น เท็จ เท่านั้น สามารถใช้คำสั่ง else if หลายคำสั่งได้

  • คำสั่ง else จะรันบล็อกโค้ดก็ต่อเมื่อไม่มีเงื่อนไขก่อนหน้าใดประเมินค่าเป็น จริง

ถ้า มิฉะนั้น ถ้า มิฉะนั้น บล็อก#
ถ้า <> แล้ว
มิฉะนั้นถ้า <> แล้ว
มิฉะนั้น
fine

พารามิเตอร์

คำอธิบาย

เงื่อนไข

นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน เงื่อนไขแรกที่เป็น จริง จะเรียกใช้บล็อกชุดนั้น หากเงื่อนไขทั้งหมดเป็น เท็จ บล็อกภายในบล็อก else จะทำงาน

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Super Code Base 2.0]
[Turn right for red, left for green.]
ทำตลอดไป
ถ้า <ตาตรวจจับ [แดง v]?> แล้ว
เลี้ยว [ขวา v]
มิฉะนั้นถ้า <ตาตรวจจับ [เขียว v]?> แล้ว
เลี้ยว [ซ้าย v]
มิฉะนั้น
หยุดขับ

หยุดพัก#

บล็อก break จะออกจากลูปทันที บล็อกนี้สามารถใช้ภายในบล็อก repeat, repeat until, while และ forever ได้ break มีประโยชน์เมื่อลูปจำเป็นต้องหยุดก่อนกำหนดเนื่องจากเหตุการณ์บางอย่างเกิดขึ้นระหว่างโปรเจกต์ เช่น การกดปุ่มหรือเซ็นเซอร์ตรวจจับวัตถุ

ทำลายบล็อกซ้อนกัน#
หยุด

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Super Code Base 2.0]
[Flash the LED until the LED Bumper is pressed.]
ทำตลอดไป
ตั้ง [bumper v] เป็น [เขียว v] :: custom-led
รอ [0.5] วินาที
ตั้ง [bumper v] เป็น [แดง v] :: custom-led
รอ [0.5] วินาที
ถ้า <[bumper v] ถูกกด? :: custom-led> แล้ว
หยุด

โครงการหยุด#

บล็อก stop project ใช้สำหรับยุติโปรเจ็กต์ที่กำลังทำงานอยู่

หยุดโครงการบล็อก#
หยุดโปรเจกต์

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น :: hat events
[Build Used: Super Code Base 2.0]
[Stop the project when the LED Bumper is pressed.]
ทำตลอดไป
ขับ [ไปข้างหน้า v] เป็น [100] [มม. v] ▶
ถ้า <[bumper v] ถูกกด? :: custom-led> แล้ว
หยุดโปรเจกต์