Skip to main content

บทที่ 2: การกระทำซ้ำ

ตอนนี้ VR Robot ได้วาดสี่เหลี่ยมบน Art Canvas Playground โดยใช้ปากกาแล้ว คุณจะได้เรียนรู้การใช้ สำหรับลูป และทำให้โครงการของคุณง่ายขึ้น บทเรียนนี้จะแนะนำคุณเกี่ยวกับขั้นตอนในการวาดสี่เหลี่ยมบน Art Canvas Playground โดยใช้ห่วง for

สนามเด็กเล่นผ้าใบศิลปะที่มีสี่เหลี่ยมสีดำวาดอยู่ หุ่นยนต์ VR อยู่ตรงกลางสนามเด็กเล่นที่มุมล่างซ้ายของจัตุรัส

ผลการเรียนรู้

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

เปลี่ยนชื่อโปรเจกต์

  • หากยังไม่ได้โหลดโครงการของบทเรียนก่อนหน้าให้โหล โครงการ Unit3Lesson1
  • เปลี่ยนชื่อโปรเจกต์โดยเลือกกล่องชื่อโปรเจกต์
    แถบเครื่องมือ VR ที่มีกล่องชื่อโปรเจกต์ไฮไลต์อยู่ ชื่อในช่องคือหน่วยที่ 3 บทเรียนที่ 1
  • ป้อนชื่อโปรเจ กต์ใหม่Unit3Lesson2 และเลือก "บันทึก"
    แถบเครื่องมือ VR ที่มีกล่องชื่อโปรเจกต์เปิดอยู่ โปรเจกต์ถูกเปลี่ยนชื่อเป็นหน่วยที่ 3 บทเรียนที่ 2 และปุ่มบันทึกจะถูกเน้นด้วยกล่องสีแดง

การกระทำซ้ำๆ

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

โปรเจกต์นี้จะใช้ for loop เพื่อขับเคลื่อน VR Robot เพื่อวาดสี่เหลี่ยมทั้งสี่ด้านโดยทำซ้ำคำสั่งเพื่อวาดด้านหนึ่งสี่ครั้ง

  • เริ่มต้นด้วยการปรับเปลี่ยนโปรเจกต์ก่อนหน้าคัดลอกโปรเจกต์ด้านล่างหรือสร้างโปรเจกต์ใหม่เพื่อให้ตรงกับโปรเจกต์ฐานนี้ 
def main (): 	pen.move (
	down) 	drivetrain.drive_for (
	forward, 600, MM) 	drivetrain.turn_for (
	right, 90, DEGREES) 	drivetrain.drive_for
	(FORWARD, 600, MM) 	drivetrain.turn_for
	(RIGHT, 90, DEGREES) 	drivetrain.drive_for
	(FORWARD, 600, MM) 	drivetrain.turn_for
	(RIGHT, 90, DEGREES)
	drivetrain.drive_for (FORWARD, 600, MM)
	drivetrain.turn_for (RIGHT, 90, DEGREES)

 

  • คำสั่งที่ทำซ้ำในโปรเจ็กต์นี้คือคำสั่ง drive_for และคำสั่ง turn_for  ลบคำสั่งหกคำสั่งล่างสุดในโปรเจ็กต์ออก ดังนั้นจะเหลือคำสั่ง drive_for และ turn_for เพียงคำสั่งเดียวไว้ใต้คำสั่ง move และโปรเจ็กต์จะมีลักษณะดังนี้: 

    def main (): pen.move (
        down) drivetrain.drive_for
        (FORWARD, 600, MM) drivetrain.turn_for
        (RIGHT, 90, DEGREES)
  • ลาก เพื่อ วนลูปไปยังจุดสิ้นสุดของฟังก์ชัน หลักเพื่อให้โปรเจกต์ของคุณเป็นแบบนี้ สังเกตว่าลูป สำหรับ จะเพิ่มคำสั่ง รอ ภายในโดยอัตโนมัติ ห้ามถอดคำสั่ง รอ ออก เพราะจะทำให้ VR Robot ทำงานได้อย่างถูกต้อง

    def main (): pen.move (
        down) drivetrain.drive_for
        (FORWARD, 600, MM) drivetrain.turn_for
        (RIGHT, 90, DEGREES)
    
        for repeat_count in range (10):
            wait (5, MSEC)
  • เพื่อให้ for loop ทำซ้ำคำสั่ง Drivetrain เพื่อวาดด้านข้างของสี่เหลี่ยมจัตุรัสคำสั่งเหล่านั้นจะต้องอยู่ภายใน for loop ซึ่งถูกระบุโดยการเยื้อง เพิ่มบรรทัด 2 บรรทัดระหว่างคำสั่ง for และคำสั่ง wait เพื่อสร้างพื้นที่สำหรับคำสั่ง Drivetrain โครงการเดียวกันกับข้างต้นโดยมีการเพิ่มช่องว่างสองบรรทัดระหว่างคำสั่ง for และคำสั่ง wait
  • ขั้นตอนต่อไป หากต้องการย้ายคำสั่ง Drivetrain ไปไว้ในลู for ให้คัดลอกและวางคำสั่งไว้ใต้ส่วนหัวของลูป for ไฮไลต์คำสั่งแล้วลากคำสั่ง drive_for และ turn_for ระหว่างส่วนหัวของลูปและคำสั่ง wait หรือคัดลอกและวางคำสั่งเหล่านี้จากโครงการด้านล่าง
def main (): 	pen.move (
	down)
	
	for value in range (10): 		drivetrain.drive_for (
		forward, 600, MM) 		drivetrain.turn_for
		(RIGHT, 90, DEGREES)
		wait (5, MSEC)
  • ตรวจสอบให้แน่ใจว่าคำสั่งภายใน for loop มีการเยื้องอย่างถูกต้องโดยใช้เส้นสีเทาด้านซ้ายเป็นแนวทางที่ระบุว่าคำสั่งใดอยู่ภายใน for loop

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

การเยื้อง มีความ สำคัญมากใน Python การเยื้องของคำสั่งจะกำหนดวิธีการดำเนินโครงการ ในกรณีของ for loop คำสั่งที่เยื้องอยู่ภายในจะถูกเรียกใช้เป็นส่วนหนึ่งของ loop คุณสามารถใช้บรรทัดทางด้านซ้ายของคำสั่งเพื่อเป็นแนวทางในการจัดกลุ่มคำสั่งภายในลูป 

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

ข้อผิดพลาดในการเยื้องอาจส่งผลกระทบต่อลำดับงานโครงการของคุณและทำให้โปรเจกต์ของคุณไม่ทำงานตามที่ตั้งใจไว้ ควรหลีกเลี่ยงการขาดการเยื้องหรือการเยื้องที่ไม่สม่ำเสมอตามที่แสดงไว้ที่นี่เพื่อให้รหัสของคุณทำงานได้ตามที่ตั้งใจไว้

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

VEXcode VR อาจแจ้งให้คุณแก้ไขข้อผิดพลาดในการเยื้องก่อนที่จะสามารถดำเนินโครงการของคุณได้ ข้อผิดพลาดเหล่านี้สามารถระบุได้ใน Print Console เพื่อให้คุณสามารถแก้ไขปัญหาและเรียกใช้โปรเจกต์ของคุณได้อย่างง่ายดายโปรเจกต์จากบทเรียนนี้จะแสดงทางด้านซ้าย คอนโซลการพิมพ์ใน VEXcode VR จะแสดงทางด้านขวาโดยมีข้อความแสดงข้อผิดพลาดสีแดงหมายถึงระยะเยื้องที่ไม่คาดคิดที่แสดงทางด้านขวา ลูกศรสีแดงขนาดใหญ่ขยายจากข้อความแสดงข้อผิดพลาดไปยังบรรทัดในโครงการที่มีข้อผิดพลาด

 

 

  • ขณะนี้คำสั่ง Drivetrain ในการวาดด้านหนึ่งของสี่เหลี่ยมอยู่ภายในลูปแล้ว ก็สามารถตั้งค่าพารามิเตอร์ของฟังก์ชันช่วง  ได้ ในการวาดสี่เหลี่ยมจะต้องวาดสี่ด้าน หาก ทำซ้ำคำสั่ง จำนวน 4 ครั้ง ให้ตั้งค่าพารามิเตอร์ของฟังก์ชันช่วง ในลูปเฮดเดอร์ สำหรับ เป็น “4” เพื่อให้หุ่นยนต์ VR วาดด้านทั้งสี่ด้านของสี่เหลี่ยมจัตุรัส
    โครงการจากบทเรียนนี้โดยมีพารามิเตอร์ของฟังก์ชัน RANGE ในลูปสำหรับเปลี่ยนจาก 10 เป็น 4

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

ฟังก์ชันช่วง ในส่วนหัวของลูป สำหรับ สามารถรับจำนวนเต็มได้ ทศนิยม (หรือทศนิยม) จะไม่ทำงานเป็นพารา มิเตอร์สำหรับลูป พารามิเตอร์เริ่มต้นสำหรับฟังก์ชันช่วง  คือ '10' 

สำหรับคำสั่งลูปที่มีจำนวนเต็ม 10 ในพารามิเตอร์
  • เลือกปุ่ม “เปิดสนามเด็กเล่น” เพื่อเปิด Art Canvas Playground หากยังไม่ได้เปิดและเริ่มโครงการ
    แถบเครื่องมือ VEXcode VR ที่มีปุ่มเปิดสนามเด็กเล่นที่ด้านขวาบนเน้นด้วยกล่องสีแดง
  • ชมหุ่นยนต์ VR ขับไปข้างหน้าและเลี้ยวขวาสี่ครั้งบน Art Canvas Playground เพื่อวาดรูปสี่เหลี่ยมด้วยปากกา

    สนามเด็กเล่นผ้าใบศิลปะที่มีสี่เหลี่ยมสีดำวาดอยู่ หุ่นยนต์ VR อยู่ตรงกลางสนามเด็กเล่นที่มุมล่างซ้ายของจัตุรัส

เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป