บทที่ 4: การใช้ Infinite While Loops
การแก้ปัญหาเขาวงกตดิสก์
กำลังสร้างโครงการ
- โหลดโปรเจ็กต์ Unit7Lesson3 จากบทเรียนก่อนหน้า หรือสร้างโปรเจ็กต์ที่แสดงไว้ที่นี่ใหม่เพื่อเริ่มต้น
- เปลี่ยนชื่อโครงการ Unit7Lesson4
- ลากหรือพิมพ์อนันต์ ในขณะที่ ลูป ไปที่ด้านบนของโปรเจ็กต์ และตั้งค่าเงื่อนไขเป็น True
- ย้ายคำสั่ง รอ เพื่อสร้างพื้นที่สำหรับคำสั่งที่จะเข้าไปภายในวงอนันต์ ในขณะที่
- ภายในลูป ในขณะที่ ที่สิ้นสุด ให้คัดลอกและวางคำสั่ง if ก่อนหน้าภายในลูป อย่าลบคำสั่ง wait ที่ด้านล่างของลูป while โครงการของคุณอาจมีลักษณะเช่นนี้ โปรดสังเกตว่าการคัดลอกและวางคำสั่งในลักษณะนี้ไม่ส่งผลให้มีการเยื้องที่ถูกต้อง
- โปรดจำไว้ว่าการเยื้องมีความสำคัญมากใน VEXcode VR Python เพื่อให้โฟลว์โปรเจ็กต์ดำเนินการตามที่ตั้งใจไว้ คำสั่ง if จะต้องเยื้องภายในลูป ในขณะที่ ที่ไม่มีที่สิ้นสุด เลือกคำสั่ง if แล้วกด 'Tab' เพื่อเยื้องเข้าไปภายในลูป ในขณะที่ ไม่มีที่สิ้นสุด เมื่อเยื้องอย่างถูกต้อง โครงการของคุณควรมีลักษณะดังนี้:
- ด้วยการเพิ่มอนันต์ ในขณะที่ ลูป เข้ากับโปรเจ็กต์ คำสั่ง if ทั้งหมด จะถูกตรวจสอบเงื่อนไขซ้ำๆ เปิด Disk Maze Playground และรันโปรเจ็กต์
- เมื่อโปรเจ็กต์นี้ดำเนินไป หุ่นยนต์ VR จะนำทาง Disk Maze Playground ตั้งแต่ต้นจนจบ เมื่อ VR Robot ตรวจพบสีแดง มันจะหยุดขับ
สรุป
- ในโปรเจ็กต์จากบทเรียนที่แล้ว มีการตรวจสอบเงื่อนไขภายในคำสั่ง ถ้า เพียงครั้งเดียว เนื่องจากเงื่อนไขภายในคำสั่ง ถ้า ได้รับการตรวจสอบเพียงครั้งเดียว หุ่นยนต์ VR จึงขับเคลื่อนไปข้างหน้าตลอดไป เนื่องจากเงื่อนไขที่ตรวจพบว่า 'ไม่มีสี' ได้รับการรายงานว่าเป็น True เมื่อเริ่มต้นโปรเจ็กต์
- ตอนนี้ได้เพิ่มลูป ในขณะที่ แบบไม่สิ้นสุดแล้ว แต่ละเงื่อนไขของคำสั่ง ถ้า จะถูกตรวจสอบซ้ำๆ เงื่อนไขของลูป ในขณะที่ จะเป็น True เสมอ ดังนั้นโค้ด ภายในลูป ในขณะที่ จะดำเนินการเสมอ ซึ่งจะตรวจสอบเงื่อนไขของคำสั่ง ถ้า ซ้ำๆ ในขณะที่โปรเจ็กต์กำลังทำงานอยู่
- ในระหว่างโฟลว์ของโปรเจ็กต์ หากเงื่อนไขของคำสั่ง if เป็น True คำสั่งภายในคำสั่ง if จะถูกดำเนินการ หากเงื่อนไขของคำสั่ง if เป็นเท็จ คำสั่งภายในคำสั่ง if จะไม่ถูกดำเนินการ และโฟลว์ของโปรเจ็กต์จะดำเนินต่อไปยังคำสั่งถัดไป ซึ่งช่วยให้หุ่นยนต์ VR ดำเนินการพฤติกรรมแยกกัน เช่น การหมุนหรือหยุดเมื่อตรวจพบสีที่ต้องการได้
- หากใช้คำสั่ง กับอนันต์ ในขณะที่ ลูป เพื่อให้แน่ใจว่ามีการตรวจสอบเงื่อนไขอย่างต่อเนื่อง