บทเรียนที่ 4: ย้ายดิสก์สีแดงและสีเขียว
-
ถัดไปหุ่นยนต์ VR จะต้องขับเคลื่อนไปข้างหน้าเพื่อไปยังเป้าหมายสีถัดไป โปรดทราบว่าหุ่นยนต์ VR จะต้องขับไปข้างหน้าสี่สี่เหลี่ยมตารางหรือ 800 มิลลิเมตร (มม.) เพื่อขับไปยังศูนย์กลางของเป้าหมายสีถัดไป
-
เพิ่มบล็อก [Drive for] ลงในรหัสและตั้งค่าพารามิเตอร์เป็น 800 มิลลิเมตร (มม.)
-
ตอนนี้หุ่นยนต์ VR จะต้องหันไปเผชิญหน้ากับดิสก์สี
-
เพิ่มบล็อก [Turn to heading] หนึ่งวินาทีในรหัสและตั้งค่าพารามิเตอร์เป็นศูนย์องศา การดำเนินการนี้จะเปลี่ยนหุ่นยนต์ VR ให้หันหน้าไปทางดิสก์สี
- เปิด Disk Mover Playground และเรียกใช้โครงการ
-
หุ่นยนต์ VR จะหยิบและย้ายดิสก์สีน้ำเงินอันแรกไปยังเป้าหมายสีน้ำเงินจากนั้นขับข้ามเป้าหมายสีแดง หุ่นยนต์ VR จะหันหน้าไปทางดิสก์สีแดงด้วย
-
ตอนนี้หุ่นยนต์ VR หันหน้าไปทางดิสก์สีแดงแล้วหุ่นยนต์ VR จะต้องทำซ้ำพฤติกรรมเดิมที่ใช้ในการรวบรวมดิสก์สีน้ำเงินเพื่อรับและย้ายดิสก์สีแดง พฤติกรรมของการขับรถไปข้างหน้าเพื่อรับดิสก์หันหลังกลับและขับรถกลับไปยังเป้าหมายสีเดียวกันเพื่อส่งดิสก์ออก
-
เมื่อดิสก์สีแดงตัวแรกถูกย้ายหุ่นยนต์ VR จะต้องขับไปยังเป้าหมายสีเขียวและดำเนินการเช่นเดียวกับที่ใช้ในการย้ายดิสก์สีน้ำเงินและสีแดงเพื่อย้ายดิสก์สีเขียวตัวแรก
-
เพื่อที่จะทำพฤติกรรมซ้ำหลายๆครั้งสามารถใช้บล็อก [ทำซ้ำ] ได้
-
เพิ่มบล็อค [Repeat] ลงในโค้ดและตั้งค่าพารามิเตอร์เป็น ‘3’
- เปิด Disk Mover Playground และเรียกใช้โครงการ
-
เมื่อโครงการนี้ทำงานหุ่นยนต์ VR จะหยิบและวางดิสก์หนึ่งแผ่นของแต่ละสีลงในเป้าหมายสีที่สอดคล้องกัน
-
โปรดทราบว่าหุ่นยนต์ VR ยังคงขับเข้าไปในกำแพง พฤติกรรมนี้คาดว่าจะเกิดขึ้นเนื่องจากโครงการได้สั่งให้หุ่นยนต์ VR เลี้ยวขวาและขับไปสู่เป้าหมายต่อไปสามครั้ง ครั้งแรกคือการขับรถจากสีน้ำเงินเป็นสีแดง ประการที่สองคือจากสีแดงเป็นสีเขียวและประการที่สามคือจากสีเขียวเข้าไปในผนังเนื่องจากไม่มีเป้าหมายสีอื่น หยุดโครงการเมื่อหุ่นยนต์ VR ชนกำแพง โครงการอาจได้รับการปรับปรุงเพื่อให้หุ่นยนต์ VR หยุดทำงานหลังจากรับและย้ายดิสก์สีเขียวแต่สิ่งนี้จะเพิ่มความซับซ้อนโดยรวมของโครงการ
สำหรับข้อมูลของคุณ
การวางห่วงหนึ่งไว้ภายในอีกห่วงหนึ่งเรียกว่าการซ้อนกัน เมื่อคุณ "ซ้อน" ลูปลูปด้านนอกจะควบคุมจำนวนครั้งที่ลูปด้านในดำเนินการ มีลูปหลายประเภทที่สามารถซ้อนกันได้ ตัวอย่างเช่นในรหัสก่อนหน้าข้างต้นบล็อก [ทำซ้ำจนกว่า] จะซ้อนอยู่ภายในบล็อก [ทำซ้ำ]
บล็อก [ทำซ้ำ] ยังสามารถซ้อนอยู่ในบล็อก [ทำซ้ำ] อื่นได้อีกด้วย ในตัวอย่างต่อไปนี้เนื่องจากบล็อก [Repeat] ด้านนอกถูกตั้งค่าเป็น ‘3’ หุ่นยนต์ VR จะวาดสี่เหลี่ยมสามอันบนสนามเด็กเล่น
ลูปที่ซ้อนกันมีประโยชน์ในโครงการที่หุ่นยนต์ VR ทำพฤติกรรมเดียวกันซ้ำมากกว่าหนึ่งครั้ง Nesting loops จัดระเบียบและควบแน่นโครงการ ซึ่งจะเป็นประโยชน์ในการทำความเข้าใจบริบทและวัตถุประสงค์ของรหัสรวมถึงทำให้ง่ายต่อการค้นหาข้อผิดพลาด
เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป