สวิตช์#

การแนะนำ#

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

หากต้องการเรียนรู้วิธีการพิมพ์คำสั่ง Python เมธอด และตัวดำเนินการ โปรดดูที่ VEXcode AIR Python API

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

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

สลับบล็อก — เพิ่มโค้ด Python ลงในโปรเจ็กต์ Blocks

  • Stack — ให้พื้นที่สำหรับพิมพ์คำสั่ง Python ที่ทำงานตามลำดับร่วมกับบล็อก stack อื่นๆ

  • C Block — ให้พื้นที่สำหรับพิมพ์โค้ดควบคุมของ Python เช่น if, whileหรือ for statements

  • C Expandable — ให้พื้นที่สำหรับพิมพ์โค้ดควบคุม Python ที่มีเงื่อนไขหลายแบบ เช่น if, elifหรือ else

  • Boolean — ให้พื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งคืนค่า True หรือ False

  • ผู้รายงาน — ให้พื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งค่ากลับ

  • Hat — ให้พื้นที่สำหรับกำหนดฟังก์ชัน Python

ซ้อนกัน#

บล็อก Stack เป็นพื้นที่สำหรับพิมพ์คำสั่ง Python ซึ่งจะทำงานตามลำดับร่วมกับบล็อก Stack อื่นๆ

บล็อกซ้อนกัน#
[] :: custom-switch

บล็อก Stack สามารถบรรจุโค้ด Python ได้หนึ่งบรรทัดหรือหลายบรรทัด

เมื่อเริ่มต้น จะใช้บล็อก Stack เพื่อบินขึ้น รอสักครู่ แล้วจึงลงจอด#
เมื่อเริ่มต้น
[Take off, wait 1 second, then land.]
[drone.take_off(500)] :: custom-switch
รอ [1] วินาที
ลงจอด ▶

บล็อกซี#

บล็อก C เป็นพื้นที่สำหรับพิมพ์โค้ดควบคุมของ Python เช่น if, whileหรือ for คำสั่งต่างๆ บล็อกที่วางอยู่ภายใน บล็อก C จะทำงานเป็นส่วนหนึ่งของโครงสร้างควบคุมของ Python นั้น

บล็อกซี#
if [] :: custom-switch
fine

โค้ดควบคุม Python ที่สามารถใช้ใน C Block ได้แก่:

เมื่อเริ่มเกม จะใช้บล็อก C ในการเคลื่อนที่ตามตัวควบคุมจนกว่าจะกดปุ่ม 7#
เมื่อเริ่มต้น
[Move with the controller until button 7 is pressed.]
ขึ้นบินไปความสูง [500] [มม. v] ▶
if [while not controller.button7.pressing():] :: custom-switch
เคลื่อนที่ด้วยคอนโทรลเลอร์
fine
ลงจอด ▶

ซี ขยายได้#

บล็อก C Expandable เป็นพื้นที่สำหรับพิมพ์โค้ดควบคุม Python ที่มีเงื่อนไขหลายแบบ เช่น if, elifหรือ elseสามารถเพิ่มเงื่อนไขเพิ่มเติมได้โดยการเลือกเครื่องหมายลูกศรบวก

บล็อกขยาย C#
if [] :: custom-switch-expand
fine

โค้ดควบคุม Python ที่สามารถใช้ในบล็อก C Expandable ได้แก่:

เมื่อเริ่มต้นใช้งาน จะใช้บล็อก C Expandable เพื่อปีนขึ้น ปีนลง หรือลอยอยู่กลางอากาศ#
เมื่อเริ่มต้น
[Climb up or down with buttons 5 and 6.]
ขึ้นบินไปความสูง [500] [มม. v] ▶
ทำตลอดไป
if [if controller.button5.pressing():] :: custom-switch-expand
ปีน [ขึ้น v]
else [elif controller.button6.pressing():] :: custom-switch-expand
ปีน [ลง v]
else [else:] :: custom-switch-expand
ลอยตัว
fine
fine

บูลีน#

บล็อก Boolean เป็นพื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งค่ากลับเป็น True หรือ Falseสามารถวางไว้ภายในบล็อกที่มีช่องป้อนข้อมูลรูปหกเหลี่ยมได้

บล็อกบูลีน#
<[] :: custom-switch>

บล็อก บูลีน สามารถบรรจุเงื่อนไขในภาษา Python ได้

บล็อกบูลีนที่มีเงื่อนไขแบบ Python#
<[controller.button7.pressing()] :: custom-switch>

บล็อก บูลีน สามารถใช้ตัวดำเนินการตรรกะได้เช่นกัน:

บล็อกบูลีนที่มีตัวดำเนินการตรรกะในภาษา Python#
<[controller.button5.pressing() and controller.button7.pressing()] :: custom-switch>

บล็อก บูลีน สามารถใช้ตัวดำเนินการเปรียบเทียบเพื่อเปรียบเทียบค่าได้:

  • มากกว่า: >

  • น้อยกว่า: <

  • เท่ากับ: ==

  • ตัวดำเนินการเปรียบเทียบอื่นๆ ได้แก่ <=, !=, และ >=

บล็อกบูลีนที่มีตัวดำเนินการเปรียบเทียบในภาษา Python#
<[drone.inertial.get_heading()> 100] :: custom-switch>
เมื่อเริ่มต้น จะใช้บล็อกบูลีนเพื่อทำซ้ำจนกว่าจะกดปุ่ม 7#
เมื่อเริ่มต้น
[Move with the controller until button 7 is pressed.]
ขึ้นบินไปความสูง [500] [มม. v] ▶
ทำซ้ำจนกว่า <[controller.button7.pressing()] :: custom-switch>
เคลื่อนที่ด้วยคอนโทรลเลอร์
fine
ลงจอด ▶

นักข่าว#

บล็อก Reporter เป็นพื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งค่ากลับ สามารถวางไว้ภายในบล็อกที่มีอินพุตแบบวงกลมได้

นักข่าวถูกบล็อก#
([] :: custom-switch)

บล็อก Reporter สามารถมีโค้ด Python ที่ส่งค่ากลับมาได้

บล็อกรายงานที่มีโค้ด Python ที่ส่งค่ากลับ#
([drone.get_altitude()] :: custom-switch)

สามารถใช้ตัวดำเนินการทางคณิตศาสตร์ในบล็อก Reporter ได้:

  • การบวก: +

  • การลบ: -

  • การแบ่งส่วน: /

  • การคูณ: *

บล็อกรายงานพร้อมส่วนเพิ่มเติมของ Python#
([drone.get_altitude() + 45] :: custom-switch)
เมื่อเริ่มทำงาน โปรแกรมจะพิมพ์ระดับความสูงของโดรนหลังจากบินขึ้นเป็นเวลา 3 วินาที#
เมื่อเริ่มต้น
[Display the altitude after climbing for 3 seconds.]
ขึ้นบินไปความสูง [500] [มม. v] ▶
ปีน [ขึ้น v]
รอ [3] วินาที
พิมพ์ ([drone.get_altitude()] :: custom-switch) บนหน้าจอ ▶
ลงจอด ▶

หมวก#

บล็อก Hat เป็นพื้นที่สำหรับกำหนดฟังก์ชัน Python บล็อกที่เชื่อมต่ออยู่ใต้ Hat จะกลายเป็นส่วนเนื้อหาของฟังก์ชันนั้น

บล็อกหมวก#
[] :: hat custom-switch

พิมพ์นิยามฟังก์ชัน Python ในบล็อก Hat พารามิเตอร์จะอยู่ภายในวงเล็บ หากฟังก์ชันไม่มีพารามิเตอร์ ให้ใช้วงเล็บว่าง

บล็อกหมวกที่มีการกำหนดฟังก์ชัน Python#
[def function_name(parameter):] :: hat custom-switch
เมื่อเริ่มต้นระบบ จะใช้บล็อก Hat เพื่อกำหนดและเรียกใช้ฟังก์ชัน#
[def take_off_500():] :: hat custom-switch
[Define a custom function using a Hat block.]
ขึ้นบินไปความสูง [500] [มม. v] ▶

เมื่อเริ่มต้น
[take_off_500()] :: custom-switch