บทที่ 3: การใช้ข้อความหาก
การนำทางเขาวงกตดิสก์โดยใช้คำสั่ง If
ใน Disk Maze Challenge หุ่นยนต์ VR กำลังตรวจสอบสภาพของเซ็นเซอร์ดวงตาด้านหน้าเพื่อดูว่ามีการรายงานสีใด สีแต่ละสีจะสอดคล้องกับพฤติกรรมที่แตกต่างกันที่หุ่นยนต์ VR ควรทำ
สำหรับข้อมูลของคุณ
คำสั่ง if ยอมรับเฉพาะเงื่อนไขบูลีนเท่านั้น การใช้รูปแบบที่สังเกตได้ในขณะที่แก้ Disk Maze ในบทเรียนที่ 2 สามารถสร้างโปรเจกต์ที่หุ่นยนต์ VR ทำการตัดสินใจหากเงื่อนไขรายงานว่าเป็นจริง หรือเท็จ
ถ้าเงื่อนไข:
ผ่านคำสั่ง if จะทำงานหนึ่งครั้งในโปรเจ็กต์ ในตัวอย่างนี้เซนเซอร์ตรวจจับดวงตาด้านหน้าจะรายงาน True หากตรวจพบวัตถุสีเขียวและดำเนินการตามคำสั่งภายในข้อความ if - เลี้ยวขวาเป็นเวลา 90 องศา หากตรวจไม่พบวัตถุสีเขียวโปรเจกต์จะย้ายไปยังคำสั่งถัดไป
def main ():
if front_eye.detect (GREEN): drivetrain.turn_for
(RIGHT, 90, DEGREES
) drivetrain.stop ()- เริ่มโปรเจกต์ใหม่และเลือก Disk Maze Playground เมื่อได้รับแจ้ง

-
ตั้งชื่อมัน ว่าUnit7Lesson3

- เพิ่มความคิดเห็นเพื่ออธิบายความ ตั้งใจสำหรับพฤติกรรมของหุ่นยนต์ VR ในแต่ละส่วนต่อไปนี้ของโครงการ
def main ():
# ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
# ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย- ลากเข้าหรือพิมพ์คำสั่ง ถ้า ใต้ความคิดเห็นแรก
def main ():
# ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
ถ้าเงื่อนไข:
ผ่าน
# ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย- ตั้งค่าเงื่อนไขของคำสั่ง if ให้เป็นคำสั่ง front_eye.detect และตั้งค่าพารามิเตอร์เป็น 'สีเขียว'
def main ():
# ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
ถ้า front_eye.detect (สีเขียว):
ผ่าน
# ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย- ลากเข้าไปหรือพิมพ์คำสั่ง turn_for ภายในคำสั่ง if เพื่อแทนที่ 'pass' ตั้งค่าพารามิเตอร์เพื่อเลี้ยวขวา 90 องศา ตอนนี้หากเซ็นเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบ 'สีเขียว' หุ่นยนต์ VR จะเลี้ยวขวา 90 องศา
def main ():
# ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
ถ้า front_eye.detect (สีเขียว): drivetrain.turn_for
(ขวา, 90, องศา)
# ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย- เราจะทำตามขั้นตอนเดียวกันนี้เพื่อเพิ่มข้อมูลเพิ่มเติม หาก ข้อความสำหรับทั้งสามสีใน Disk Maze (สีเขียวสีน้ำเงินและสีแดง) แต่ละสีมีความสัมพันธ์กับพฤติกรรมที่แตกต่างกัน คำสั่งภายในคำสั่ง if จะต้องตรงกับลักษณะการทำงานที่ตั้งใจไว้ เพิ่มคำสั่งต่อไปนี้ไปยังโครงการใต้ความคิดเห็นที่สองเพื่อ ที่ว่าหากเซ็นเซอร์ดวงตาด้านหน้าตรวจพบสี 'น้ำเงิน' หุ่นยนต์ VR จะเลี้ยวซ้าย 90 องศา
# If front eye detect blue then turn left
if front_eye.detect (BLUE):
drivetrain.turn_for (LEFT, 90, DEGREES)-
เมื่อหุ่นยนต์ VR ไปถึงจุดสิ้นสุดของเขาวงกตเซ็นเซอร์ตรวจจับดวงตาด้านหน้าจะตรวจจับสี ‘สีแดง’

- ในการหยุดหุ่นยนต์ VR อีกวิธีหนึ่ง หาก ต้องเพิ่ม ข้อความพร้อมคำแนะนำว่าจะทำอย่างไรหากเซ็นเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบ ‘สีแดง’ เพิ่มความคิดเห็นและคำสั่งต่อไปนี้ลงในโครงการเพื่อให้หุ่นยนต์ VR หยุดการขับขี่หากตรวจพบ 'สีแดง'
# If front eye detect red then stop
if front_eye.detect (สีแดง
): drivetrain.stop ()หากไม่พบสีใดเลย
หุ่นยนต์ VR ยังสามารถตัดสินใจได้หากไม่เห็นสีโดยใช้ค่า ‘ไม่มี’ ตัวอย่างเช่นที่จุดเริ่มต้นของเขาวงกตดิสก์เซนเซอร์ตรวจจับดวงตาด้านหน้า ไม่พบสีใดๆ
เนื่องจากเซ็นเซอร์ตรวจจับดวงตาด้านหน้าไม่พบสีที่จุดเริ่มต้นของเขาวงกตดิสก์หุ่นยนต์ VR จะต้องขับไปข้างหน้าจนกว่าจะตรวจพบดิสก์สีเขียว สามารถเพิ่มคำสั่ง ถ้า อีกคำสั่ง เพื่อสั่งหุ่นยนต์ VR ว่าจะต้องทำอย่างไรเมื่อไม่ตรวจพบสี
- เพิ่มความคิดเห็นและคำสั่งต่อไปนี้ลงในโครงการเพื่อที่ว่าหาก เซ็นเซอร์ตรวจจับดวงตาด้านหน้าไม่พบสีใดๆหุ่นยนต์ VR จะขับเคลื่อนไปข้างหน้า
# If front eye detect none then drive forward
if front_eye.detect (ไม่มี): drivetrain.drive (
ไปข้างหน้า)- ตอนนี้หุ่นยนต์ VR มีคำแนะนำสำหรับแต่ละสีที่ตรวจพบโดยเซ็นเซอร์ตรวจจับดวงตาด้านหน้า
- หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ 'สีเขียว' – เลี้ยวขวา 90 องศา
- หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ ‘สีน้ำเงิน' – เลี้ยวซ้าย 90 องศา
- หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ ‘สีแดง’ – หยุดขับรถ
- หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ ‘ไม่มี’ – ขับไปข้างหน้า
- เปิดหน้าต่างสนามเด็กเล่นหากยังไม่ได้เปิด ตรวจสอบให้แน่ใจว่า Disk Maze Playground เปิดขึ้นและดำเนินโครงการ โครงการทั้งหมดควรมีลักษณะดังนี้:
def main ():
# If front eye detects green then turn right
if front_eye.detect (GREEN): drivetrain.turn_for
(RIGHT, 90, DEGREES)
# If front eye detects blue then turn left
if front_eye.detect (BLUE): drivetrain.turn_for
(LEFT, 90, DEGREES)
# If front eye detect red then stop
if front_eye.detect (RED):
drivetrain.stop ()
# If front eye detect none then drive forward
if front_eye.detect (NONE):
drivetrain.drive (FORWARD)- หุ่นยนต์ VR ทำงานตามที่คุณตั้งใจหรือไม่? เหตุใดจึงรู้สึกเช่นนั้น? ในหน้าถัดไปของบทเรียนเราจะเรียนรู้เพิ่มเติมเกี่ยวกับโครงการนี้
เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป