บทที่ 1: อัลกอริทึมคืออะไร?
ในบทเรียนนี้คุณจะได้เรียนรู้ว่าอัลกอริทึมคืออะไรและการใช้อัลกอริทึมใน VEXcode VR Python ช่วยให้คุณสามารถสร้าง โครงการที่มีพฤติกรรมที่หลากหลายมากขึ้นได้อย่างไร โครงการอัลกอริทึมสั่งให้หุ่นยนต์ VR ตอบสนองต่อสภาพแวดล้อมซึ่งจำเป็นต่อการแก้ปัญหา Dynamic Castle Crasher Challenge
ผลการเรียนรู้
- ระบุว่าอัลกอริทึมประกอบด้วยลำดับการเลือกและการทำซ้ำ (ลูป)
- ระบุว่าอัลกอริทึมเป็นลำดับคำสั่งที่แม่นยำซึ่งนำไปใช้โดยใช้ภาษาโปรแกรมสำหรับกระบวนการที่จะดำเนินการโดยหุ่นยนต์ VR
อัลกอริทึม
อัลกอริทึมเป็นลำดับคำสั่งที่แม่นยำโดยใช้ภาษาโปรแกรมเช่น VEXcode VR Python สำหรับกระบวนการที่จะดำเนินการโดย VR Robot
องค์ประกอบพื้นฐานของอัลกอริทึมคือลำดับการเลือกและการทำซ้ำ
- ลำดับ - ลำดับที่พฤติกรรมและคำสั่งถูกรวมเข้าด้วยกันในโครงการเพื่อสร้างผลลัพธ์ที่ต้องการ
- การคัดเลือก - การใช้ข้อความที่มีเงื่อนไขในโครงการ ข้อความแบบมีเงื่อนไขเช่น ถ้า หรือ ถ้ามี ผลกระทบต่อการไหลของโครงการของโครงการ
- การทำซ้ำ - อัลกอริทึมมักใช้การทำซ้ำเพื่อดำเนินการตามขั้นตอนตามจำนวนครั้งที่กำหนดหรือจนกว่าจะตรงตามเงื่อนไขบางอย่าง หรือที่เรียกว่า "การวนซ้ำ" การทำซ้ำสามารถเปลี่ยนการไหลของโครงการโดยการทำซ้ำลักษณะการทำงานตามจำนวนครั้งที่ระบุหรือจนกว่าจะตรงตามเงื่อนไข
โครงการตัวอย่างนี้จากความท้าทายหน่วยที่ 8 เป็นตัวอย่างของอัลกอริทึม ซึ่งรวมถึงการรวมกันของลูปข้อมูลเซ็นเซอร์และคำสั่งที่รวมเข้าด้วยกันในลำดับเพื่อแก้ปัญหา Disk Mover Challenge
def main ():
สำหรับค่าในช่วง (3):
สำหรับค่าในช่วง (3):
#1 ขับไปยังดิสก์โดยใช้ Down Eye Sensor
ในขณะที่ไม่
ใช่ down_eye.near_object (): drivetrain.drive (FORWARD)
wait (5
, msec)
drivetrain.stop () #2 เลือกดิสก์
magnet.energize (BOOST)
#3 ขับไปยังเป้าหมายโดยใช้
เซ็นเซอร์ระยะทาง drivetrain.turn_to_heading (180, DEGREES)
ในขณะที่ front_distance.get_distance (
MM) > 200: drivetrain.drive (FORWARD )
wait (5
, msec) drivetrain.stop ()
#4 Drop disk in
goal magnet.energize (DROP
) drivetrain.drive_for (REVERSE, 100, MM)
#5. หันหน้าไปทางดิสก์ถัด
ไป drivetrain.turn_to_heading (0, องศา)
รอ (5, มิลลิวินาที)
#6 เลี้ยวและขับไปยังเป้าหมายถัดไป
drivetrain.turn_to_heading (90,
DEGREES) drivetrain.drive_for (FORWARD, 800, MM)
#7 หันไปที่
ดิสก์ drivetrain.turn_to_heading (0, องศา)
รอ (5, มิลลิวินาที)ลำดับ
วิธีที่คำสั่งถูกจัดลำดับและรวมกันจะกำหนดพฤติกรรมของหุ่นยนต์ VR ในตัวอย่างนี้แต่ละชุดของพฤติกรรมที่จำเป็นในการย้ายดิสก์จะถูกดำเนินการสามครั้งจากนั้นหุ่นยนต์ VR จะย้ายไปยังดิสก์ชุดถัดไปและทำซ้ำพฤติกรรมจนกว่าดิสก์ทั้งหมดจะถูกส่งกลับไปยังเป้าหมาย 
การเลือก
โครงการนี้ยังรวมถึงการเลือกซึ่งกำหนดส่วนต่างๆของโครงการที่ดำเนินการตามเงื่อนไขของเซ็นเซอร์ ประการแรก Down Eye Sensor ใช้เพื่อกำหนดว่า VR Robot อยู่ใกล้ดิสก์เมื่อใดดังนั้นจึงสามารถหยิบดิสก์ขึ้นมาได้ จากนั้นเซ็นเซอร์ระยะทางจะใช้เพื่อกำหนดว่าหุ่นยนต์ VR อยู่เหนือเป้าหมายเมื่อใดเพื่อให้สามารถวางดิสก์ลงได้ 
ในลูปแรก การเลือกคำสั่งที่จะทำงานจะขึ้นอยู่กับค่าเซ็นเซอร์ที่รายงานโดย Down Eye Sensor
- ในขณะที่ไม่มีการตรวจพบวัตถุหุ่นยนต์ VR จะขับเคลื่อนไปข้างหน้า
- ในขณะที่ตรวจพบวัตถุหุ่นยนต์ VR จะหยุดทำงาน
ในการวนซ้ำ while ครั้งที่สอง การเลือกคำสั่งที่จะทำงานจะขึ้นอยู่กับค่าเซ็นเซอร์ที่รายงานโดยเซ็นเซอร์ระยะทาง
- ในขณะที่ระยะทางที่รายงานมากกว่า 200 มิลลิเมตร (มม.) หุ่นยนต์ VR จะขับเคลื่อนไปข้างหน้า
- ในขณะที่ระยะทางที่รายงานน้อยกว่า 50 มิลลิเมตร (มม.) หุ่นยนต์ VR จะหยุดการขับขี่และย้ายไปยังส่วนถัดไปของโครงการเพื่อเพิ่มพลังแม่เหล็กไฟฟ้า
การทำซ้ำ
โครงการใช้การวนซ้ำหรือ "ลูป" เพื่อดำเนินการซ้ำและตรวจสอบค่าเซ็นเซอร์ที่รายงานซ้ำ โปรเจกต์นี้มีลูปที่ซ้อนกัน – หนึ่งลูปเพื่อให้หุ่นยนต์ VR สามารถรวบรวมดิสก์สามแผ่นที่มีสีเดียวและลูปที่สองเพื่อทำซ้ำขั้นตอนนั้นเพื่อรวบรวมดิสก์ทั้งหมดบนสนามเด็กเล่น 
อัลกอริทึมนี้ออกแบบมาเพื่อรวบรวมและส่งคืนดิสก์สามแผ่นสามครั้งเพื่อทำการท้าทาย Disk Mover ให้เสร็จสมบูรณ์ ตรรกะเดียวกันกับที่ใช้ในการรวบรวมและย้ายดิสก์ซ้ำๆโดยใช้ลำดับการเลือกและการทำซ้ำยังสามารถนำไปใช้กับความท้าทายอื่นๆเช่นการท้าทาย Crasher Castle Crasher แบบไดนามิก