Skip to main content

บทเรียนที่ 2: การไหลของโปรเจกต์ที่มี For Loop

เมื่อโปรเจกต์ใช้ for loop โปรเจกต์จะยังคงเป็นไปตามตรรกะเดิมในขณะที่เรียกใช้คำสั่ง ตัวอย่างเช่นโค้ดทั้งสองนี้ จะทำให้หุ่นยนต์ VR เคลื่อนไหวในลักษณะเดียวกัน อย่างไรก็ตามโครงการที่มี for loop จะทำซ้ำคำสั่ง Drivetrain ทั้งสองสี่ครั้งเพื่อทำเช่นนั้น

ข้อมูลโค้ดสองตัวเพื่อขับเคลื่อนในสี่เหลี่ยมจัตุรัสที่แสดงเคียงข้างกันเพื่อแสดงให้เห็นถึงความแตกต่างระหว่างการใช้ for loop กับ not ตัวทางด้านซ้ายไม่มี for loop และมีไดรฟ์ for และ turn สำหรับคำสั่งที่ทำซ้ำสี่ครั้งในแต่ละครั้ง ตัวอักษรด้านขวามี for loop และลูกศรสีแดงในรูปแบบวงกลมที่มีคำ 4 ครั้งอยู่ข้างในแสดงว่า for loop ทำให้ไดรฟ์สำหรับและหมุนสำหรับคำสั่งที่จะทำซ้ำสี่ครั้ง

สำหรับ ลูปถูกใช้เพื่อทำซ้ำชุดคำสั่งตาม จำนวนครั้งที่ระบุ สำหรับการ วนซ้ำ (หรือที่เรียกว่าซ้ำ) เหนือลำดับคำสั่งที่อยู่ภายใน ในการวนซ้ำ Python for ตัวแปร 'value' จะถูกใช้เพื่อติดตามการวนซ้ำในปัจจุบัน และคีย์เวิร์ด 'in' จะใช้ฟังก์ชันช่วง  เพื่อระบุจำนวนการวนซ้ำ การแบ่งไวยากรณ์ของ for loop ที่แสดงด้วยข้อความเหนือคำแต่ละคำในคำสั่งเพื่อระบุหน้าที่ของมัน คำแรกสำหรับมีข้อความ "ระบุ" ลูปด้านบน คำที่สองค่ามีข้อความ: "ระบุตัวแปร (ซ้ำผ่านลูปกี่ครั้ง?) คำที่สามในมีข้อความ "เชื่อมต่อตัวแปรกับรายการ (ช่วง) คำสุดท้ายอยู่ในช่วงที่มีพารามิเตอร์ 10 ในวงเล็บ ข้อความด้านบนจะอ่าน "ระบุรายการ (จะวนซ้ำผ่านลูปกี่ครั้ง?)

ฟังก์ชันช่วง ถึง ระบุจำนวนครั้งที่ลูปจะต้องวนซ้ำ (หรือทำซ้ำ) หากต้องการทำซ้ำพฤติกรรมตามจำนวนครั้งที่ต้องการ ให้ตั้งค่าพารามิเตอร์ของฟังก์ชันช่วง เป็น

ฟังก์ชันช่วง ถึง จะสร้างรายการชั่วคราวที่ระบุว่าลูปจะต้องวนซ้ำผ่านอะไรเพื่อให้เสร็จสมบูรณ์ ในกรณีที่มีพฤติกรรมที่เกิดซ้ำ เช่น การวาดสี่ด้านของรูปสี่เหลี่ยม ฟังก์ชันช่วง ถึง จะใช้รายการชั่วคราว (0, 1, 2, 3) เพื่อให้หุ่นยนต์ VR สามารถดำเนินการคำสั่งเหล่านั้นสี่ครั้ง การเคลื่อนไหวของหุ่นยนต์ VR จะเปลี่ยนแปลงไปตามพารามิเตอร์ของฟังก์ชันช่วงดังที่แสดงไว้ที่นี่ 

โครงการ VEXcode ที่แสดงให้เห็นฟังก์ชันช่วง มันอ่าน def วงเล็บเปิดหลักวงเล็บปิดลำไส้ใหญ่บรรทัดถัดไปซึ่งเยื้องอ่านจุดปากกาเลื่อนวงเล็บเปิดลงวงเล็บปิดบรรทัดถัดไปสำหรับค่าในช่วงวงเล็บเปิด 0 วงเล็บปิดลำไส้ใหญ่บรรทัดถัดไปซึ่งเยื้องอ่านไดร์ฟเทรนดอทไดร์ฟแบบขีดล่างสำหรับวงเล็บเปิดไปข้างหน้า, 600, MM วงเล็บปิดวงเล็บบรรทัดถัดไปไดร์ฟเทรนดอทเทิร์นขีดล่างสำหรับวงเล็บเปิดด้านขวา, 90, วงเล็บปิดองศาวงเล็บบรรทัดถัดไปรอวงเล็บเปิดห้าลูกน้ำ M S E C) สนามเด็กเล่นผ้าใบศิลปะที่มีหุ่นยนต์อยู่ตรงกลาง คำสั่ง Drivetrain ที่ดำเนินการ 0 ครั้ง
โครงการเดียวกันกับข้างต้นแต่มี 1 ในพารามิเตอร์ของฟังก์ชัน RANGE สนามเด็กเล่นผ้าใบศิลปะที่มีโปรเจกต์วาดด้านหนึ่งของสี่เหลี่ยมจัตุรัสที่สมบูรณ์ คำสั่ง Drivetrain ดำเนินการ 1 ครั้ง
โครงการเดียวกันกับข้างต้นแต่มี 2 ในพารามิเตอร์ของฟังก์ชัน RANGE Art Canvas Playground แสดงให้เห็นว่าหุ่นยนต์ได้วาดสองด้านแรกของสี่เหลี่ยมจัตุรัส คำสั่ง Drivetrain ดำเนินการ 2 ครั้ง
โครงการเดียวกันกับข้างต้นแต่มี 3 ในพารามิเตอร์ของฟังก์ชัน RANGE Art Canvas Playground แสดงให้เห็นว่าหุ่นยนต์ได้วาดรูปสี่เหลี่ยมจัตุรัสสามด้าน คำสั่ง Drivetrain ดำเนินการ 3 ครั้ง
โครงการเดียวกันกับข้างต้นแต่มี 4 ในพารามิเตอร์ของฟังก์ชัน RANGE Art Canvas Playground แสดงให้เห็นว่าหุ่นยนต์ได้วาดทั้งสี่ด้านของสี่เหลี่ยมจัตุรัส คำสั่ง Drivetrain ดำเนินการ 4 ครั้งทำให้ทั้ง 4 ด้านของสี่เหลี่ยมจัตุรัสเสร็จสมบูรณ์

 

โครงการเดียวกันกับข้างต้นแต่มี 5 ในพารามิเตอร์ของฟังก์ชัน RANGE

Art Canvas Playground แสดงให้เห็นว่าหุ่นยนต์ได้วาดรูปสี่เหลี่ยมจัตุรัสทั้งสี่ด้านแล้วจากนั้นก็ติดตามด้านแรกอีกครั้ง คำสั่ง Drivetrain ดำเนินการ 5 ครั้งทำให้สี่เหลี่ยมเสร็จสมบูรณ์จากนั้นติดตามด้านแรกอีกครั้ง

สังเกตว่ารูปร่างของสี่เหลี่ยมที่วาดไว้ไม่มีการเปลี่ยนแปลงเมื่อฟังก์ชันช่วง  เปลี่ยนจาก 4 เป็น 5 แต่ตำแหน่งสุดท้ายของหุ่นยนต์ VR เปลี่ยนแปลงไป ดังนั้น การใช้ลูป สำหรับ พร้อมช่วง เริ่มต้น ฟังก์ชันของสิบ จะส่งผลให้มีการวาดรูปทรงสี่เหลี่ยมจัตุรัสเดิม แต่หุ่นยนต์ VR จะยังคงทำซ้ำพฤติกรรมดังกล่าวอีกหกครั้ง 

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

สำหรับข้อมูลของคุณ

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

สำหรับลูปที่มีคำสั่งรอ

จำนวนครั้งที่ระบุว่ามีการตั้งค่า for loop ให้ดำเนินการช่วยให้โครงการไหลผ่านออกจาก for loop เมื่อดำเนินการซ้ำที่จำเป็นเสร็จสิ้นแล้ว ต้องถึงพารามิเตอร์ของฟังก์ชันช่วง  ในลูป สำหรับ ก่อนที่โปรเจ็กต์จะย้ายไปยังคำสั่งถัดไปนอกลูป ในตัวอย่างโค้ดด้านล่าง เมื่อคำสั่ง Drivetrain ในลู สำหรับ ถูกดำเนินการสี่ครั้งแล้ว โปรเจ็กต์จะย้ายออกจากลูป สำหรับ ตั้งค่าสีปากกาเป็นสีแดง และขับเคลื่อนย้อนกลับ โครงการ VEXcode จากด้านบนโดยมี 4 ในพารามิเตอร์ช่วงที่แสดงด้วยลูกศรสีแดงรอบๆลูปสำหรับลูปและสัญลักษณ์ 4x ที่แสดงว่าโครงการจะทำซ้ำผ่านลูปสี่ครั้ง มีการเพิ่มโค้ดอีก 2 บรรทัดที่ด้านล่าง ลูกศรแสดงให้เห็นว่า 2 บรรทัดเหล่านั้นจะดำเนินการเมื่อการทำซ้ำทั้งสี่เสร็จสมบูรณ์ เส้นเหล่านั้นอ่านจุดปากกาตั้งค่าสีวงเล็บเปิดวงเล็บสีแดงปิดและไดรฟ์ไดรฟ์จุดขีดเส้นใต้สำหรับวงเล็บเปิดย้อนกลับเครื่องหมายจุลภาค 600 เครื่องหมายจุลภาคมิลลิเมตรวงเล็บปิด ด้านขวาเป็นภาพของโครงการหลังจากที่มีการดำเนินการบนสนามเด็กเล่นที่แสดงสี่เหลี่ยมสีดำที่มีเส้นสีแดงออกมาจากภาพที่วาดโดยหุ่นยนต์ VR

มินิชาเลนจ์

ในโครงการนี้หุ่นยนต์ VR ควรวาดสี่เหลี่ยมสีน้ำเงินบน Art Canvas Playground แต่มีข้อผิดพลาดในโครงการ แก้ไขโปรเจกต์เพื่อแก้ปัญหามินิชาเลนจ์!

สนามเด็กเล่น Art Canvas ที่มีสี่เหลี่ยมสีฟ้าวาดโดยหุ่นยนต์ VR

วิดีโอด้านล่างแสดงให้เห็นสิ่งที่ต้องทำเพื่อทำมินิชาเลนจ์ หุ่นยนต์เริ่มต้นที่กลางสนามเด็กเล่นและวาดสี่เหลี่ยมสีฟ้าขนาดใหญ่ทั้งสี่ด้าน 

ไฟล์วิดีโอ
  • ดูวิดีโอการแก้ปัญหาและทบทวนว่าหุ่นยนต์ VR ควรเคลื่อนไหวอย่างไรเพื่อทำการท้าทายขนาดเล็กให้สำเร็จ
  • ปรับเปลี่ยน โป รเจกต์ Unit3Lesson2 ให้ตรงกับภาพนี้หรือคัดลอกโค้ดด้านล่าง
     
def main (): 	pen.move (
	down) 	pen.set_pen_color
	(RED) 	drivetrain.drive_for
	(FORWARD, 600, MM)
	
	for value in range (3): 		drivetrain.drive_for
		(FORWARD, 600, MM) 		drivetrain.turn_for
		(RIGHT, 90, DEGREES)
		wait (5, MSEC)
  • เริ่มโครงการและระบุตำแหน่งที่หุ่นยนต์ VR ไม่ได้ทำพฤติกรรมที่คาดหวังให้เสร็จสมบูรณ์
  • ปรับเปลี่ยนโครงการและดำเนินโครงการอีกครั้ง ดูว่า VR Robot ทำพฤติกรรมที่คาดหวังได้สำเร็จหรือไม่
  • หากหุ่นยนต์ VR ไม่ได้วาดสี่เหลี่ยมสีน้ำเงินให้ทำซ้ำขั้นตอนก่อนหน้าและลองอีกครั้ง แก้ไขและเรียกใช้โปรเจกต์ของคุณต่อไปจนกว่า VR Robot จะวาดสี่เหลี่ยมสีน้ำเงิน
  • เมื่อหุ่นยนต์ VR วาดสี่เหลี่ยมสีน้ำเงินบน Art Canvas Playground สำเร็จแล้วให้บันทึกโปรเจกต์

ขอแสดงความยินดี! คุณเอาชนะมินิชาเลนจ์!

คำถาม

โปรดเลือกลิงก์ด้านล่างเพื่อเข้าถึงแบบทดสอบบทเรียน

Google Doc /.docx /.pdf