สวิตช์#
การแนะนำ#
บล็อก Switch ช่วยให้นักเรียนเปลี่ยนจากการเขียนโค้ดแบบบล็อกไปเป็นการเขียนโค้ดแบบข้อความได้ง่ายขึ้น ด้วยบล็อก Switch นักเรียนสามารถพิมพ์โค้ด Python ลงในโปรเจ็กต์บล็อกได้โดยตรง ไม่ว่าจะเป็นการเขียนคำสั่ง เงื่อนไข ค่า หรือนิยามฟังก์ชัน ในขณะที่ยังคงสร้างส่วนที่เหลือของโปรเจ็กต์ด้วยบล็อกอยู่ นอกจากนี้ บล็อกแต่ละบล็อกยังสามารถแปลงเป็นคำสั่ง Python ที่เทียบเท่ากันได้อีกด้วย
หากต้องการเรียนรู้วิธีการพิมพ์คำสั่ง Python เมธอด และตัวดำเนินการ โปรดดูที่ VEX AIM Python API
เนื่องจากบล็อก Switch ประกอบด้วยโค้ด Python ดังนั้นการสะกดคำ เครื่องหมายวรรคตอน และการเว้นวรรคต้องถูกต้องเพื่อให้โปรเจ็กต์ทำงานได้ตามที่คาดหวัง
ด้านล่างนี้คือรายการบล็อก Switch ทั้งหมด:
สลับบล็อก — เพิ่มโค้ด Python ลงในโปรเจ็กต์ Blocks
Stack — ให้พื้นที่สำหรับพิมพ์คำสั่ง Python ที่ทำงานตามลำดับร่วมกับบล็อก stack อื่นๆ
C Block — ให้พื้นที่สำหรับพิมพ์โค้ดควบคุมของ Python เช่น
if,whileหรือforstatementsC Expandable — ให้พื้นที่สำหรับพิมพ์โค้ดควบคุม Python ที่มีเงื่อนไขหลายแบบ เช่น
if,elifหรือelseBoolean — ให้พื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งคืนค่า
TrueหรือFalseผู้รายงาน — ให้พื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งค่ากลับ
Hat — ให้พื้นที่สำหรับกำหนดฟังก์ชัน Python
ซ้อนกัน#
บล็อก Stack เป็นพื้นที่สำหรับพิมพ์คำสั่ง Python ซึ่งจะทำงานตามลำดับร่วมกับบล็อก Stack อื่นๆ
[] :: custom-switch
บล็อก Stack สามารถบรรจุโค้ด Python ได้หนึ่งบรรทัดหรือหลายบรรทัด
เมื่อเริ่มต้น
[Move forward 400 mm.]
[robot.move_for(400, 0)] :: custom-switch
บล็อกซี#
บล็อก C เป็นพื้นที่สำหรับพิมพ์โค้ดควบคุมของ Python เช่น if, whileหรือ for คำสั่งต่างๆ บล็อกที่วางอยู่ภายใน บล็อก C จะทำงานเป็นส่วนหนึ่งของโครงสร้างควบคุมของ Python นั้น
if [] :: custom-switch
fine
โค้ดควบคุม Python ที่สามารถใช้ใน C Block ได้แก่:
เมื่อเริ่มต้น
[Continuously turn right until the screen is pressed.]
เลี้ยว [ขวา v]
ทำตลอดไป
if [if robot.screen.pressing():] :: custom-switch
พิมพ์ [Screen was pressed!] บนหน้าจอ ▶
หยุดการเคลื่อนที่ทั้งหมด
fine
fine
ซี ขยายได้#
บล็อก C Expandable เป็นพื้นที่สำหรับพิมพ์โค้ดควบคุม Python ที่มีเงื่อนไขหลายแบบ เช่น if, elifหรือ elseสามารถเพิ่มเงื่อนไขเพิ่มเติมได้โดยการเลือกเครื่องหมายลูกศรบวก
if [] :: custom-switch-expand
fine
โค้ดควบคุม Python ที่สามารถใช้ในบล็อก C Expandable ได้แก่:
เมื่อเริ่มต้น
[Continuously move forward until the robot has a sports ball.]
ทำตลอดไป
if [if robot.has_sports_ball():] :: custom-switch-expand
พิมพ์ [Sports ball found!] บนหน้าจอ ▶
หยุดการเคลื่อนที่ทั้งหมด
else [else:]
เคลื่อนที่ [ไปข้างหน้า v]
fine
fine
บูลีน#
บล็อก Boolean เป็นพื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งค่ากลับเป็น True หรือ Falseสามารถวางไว้ภายในบล็อกที่มีช่องป้อนข้อมูลรูปหกเหลี่ยมได้
<[] :: custom-switch>
บล็อก บูลีน สามารถบรรจุเงื่อนไขในภาษา Python ได้
<[robot.screen.pressing()] :: custom-switch>
บล็อก บูลีน สามารถใช้ตัวดำเนินการตรรกะได้เช่นกัน:
<[robot.screen.pressing() and robot.has_sports_ball()] :: custom-switch>
บล็อก บูลีน สามารถใช้ตัวดำเนินการเปรียบเทียบเพื่อเปรียบเทียบค่าได้:
มากกว่า:
>น้อยกว่า:
<เท่ากับ:
==ตัวดำเนินการเปรียบเทียบอื่นๆ ได้แก่
<=,!=, และ>=
<[robot.inertial.get_heading()> 100] :: custom-switch>
เมื่อเริ่มต้น
[Continuously turn right until the screen is pressed.]
เลี้ยว [ขวา v]
ทำตลอดไป
ถ้า <[robot.screen.pressing()] :: custom-switch> แล้ว
พิมพ์ [Screen was pressed!] บนหน้าจอ ▶
หยุดการเคลื่อนที่ทั้งหมด
fine
fine
นักข่าว#
บล็อก Reporter เป็นพื้นที่สำหรับพิมพ์โค้ด Python ที่ส่งค่ากลับ สามารถวางไว้ภายในบล็อกที่มีอินพุตแบบวงกลมได้
([] :: custom-switch)
บล็อก Reporter สามารถมีโค้ด Python ที่ส่งค่ากลับมาได้
([robot.inertial.get_heading()] :: custom-switch)
สามารถใช้ตัวดำเนินการทางคณิตศาสตร์ในบล็อก Reporter ได้:
([robot.inertial.get_heading() + 45] :: custom-switch)
เมื่อเริ่มต้น
[Print the robot's heading plus 45 degrees.]
พิมพ์ ([robot.inertial.get_heading() + 45] :: custom-switch) บนหน้าจอ ▶
หมวก#
บล็อก Hat เป็นพื้นที่สำหรับกำหนดฟังก์ชัน Python บล็อกที่เชื่อมต่ออยู่ใต้ Hat จะกลายเป็นส่วนเนื้อหาของฟังก์ชันนั้น
[] :: hat custom-switch
พิมพ์นิยามฟังก์ชัน Python ในบล็อก Hat พารามิเตอร์จะอยู่ภายในวงเล็บ หากฟังก์ชันไม่มีพารามิเตอร์ ให้ใช้วงเล็บว่าง
[def function_name(parameter):] :: hat custom-switch
[def move_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
เคลื่อนที่ [ไปข้างหน้า v] เป็น (400) [มม. v] ▶
เมื่อเริ่มต้น
[move_400()] :: custom-switch