Skip to main content

Bài 4: Sử dụng vòng lặp While vô hạn

Giải quyết vấn đề mê cung đĩa

Xây dựng dự án

  • Tải dự án Unit7Lesson3 từ Bài học trước hoặc tạo lại dự án được hiển thị ở đây để bắt đầu.
def main():
	# Nếu mắt trước phát hiện màu xanh lá cây thì rẽ phải
    if front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Nếu mắt trước phát hiện màu xanh lam thì rẽ trái
    if front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # Nếu mắt trước phát hiện màu đỏ thì dừng lại
    if front_eye.detect(RED): 
        drivetrain.stop()

    # Nếu mắt trước không phát hiện màu nào thì lái về phía trước
    if front_eye.detect(NONE): 
        drivetrain.drive(FORWARD)
  • Đổi tên dự án Unit7Lesson4.Thanh công cụ VEXcode VR với hộp tên dự án được gọi ra. Dự án có tên là Bài 4 Đơn vị 7.

     

  • Kéo hoặc nhập vòng lặp vô hạnwhile vào đầu dự án và đặt điều kiện thành Đúng.
def main():
    while True:
    	wait(5, MSEC)
  • Di chuyển lệnhwaitđể tạo khoảng trống cho các lệnh sẽ nằm bên trong vòng lặp vô hạnwhile.
def main():
    while True:
    
    
    	wait(5, MSEC)
  • Bên trong vòng lặp vô hạnwhile , sao chép và dán các câu lệnh if trước đó vào bên trong vòng lặp. Không xóa lệnh wait ở cuối vòng lặp while. Dự án của bạn có thể trông như thế này. Lưu ý rằng việc sao chép và dán lệnh theo cách này không tạo ra thụt lề chính xác.
def main():
    while True:
        
    # Nếu mắt trước phát hiện màu xanh lá cây thì rẽ phải
    if front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Nếu mắt trước phát hiện màu xanh lam thì rẽ trái
    if front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # Nếu mắt trước phát hiện màu đỏ thì dừng lại
    if front_eye.detect(RED): 
        drivetrain.stop()

    # Nếu mắt trước không phát hiện màu nào thì lái về phía trước
    if front_eye.detect(NONE): 
        drivetrain.drive(FORWARD)

    wait(5, MSEC)
  • Hãy nhớ rằng, thụt lề RẤT quan trọng trong VEXcode VR Python. Để luồng dự án thực hiện theo đúng ý định, các câu lệnh ifcần được thụt lề trong vòng lặp vô hạn while. Chọn các câu lệnhnếuvà nhấn 'Tab' để thụt lề chúng trong vòng lặp vô hạnwhile. Khi thụt lề đúng cách, dự án của bạn sẽ trông như thế này: 
def main():
    while True:
        
        # Nếu mắt trước phát hiện màu xanh lá cây thì rẽ phải
        if front_eye.detect(GREEN):
            drivetrain.turn_for(RIGHT, 90, DEGREES)

        # Nếu mắt trước phát hiện màu xanh lam thì rẽ trái
        if front_eye.detect(BLUE):
            drivetrain.turn_for(LEFT, 90, DEGREES)

        # Nếu mắt trước phát hiện màu đỏ thì dừng lại
        if front_eye.detect(RED): 
            drivetrain.stop()

        # Nếu mắt trước không phát hiện màu nào thì lái về phía trước
        if front_eye.detect(NONE): 
            drivetrain.drive(FORWARD)

        wait(5, MSEC)
  • Với vòng lặp vô hạn while được thêm vào dự án, tất cả các câu lệnh if sẽ được kiểm tra điều kiện nhiều lần. Mở Disk Maze Playground và chạy dự án.
  • Khi dự án này được chạy, VR Robot sẽ điều hướng Sân chơi mê cung đĩa từ đầu đến cuối. Khi VR Robot phát hiện đèn đỏ, nó sẽ dừng lái.

    Robot VR trên Sân chơi mê cung đĩa với Robot VR dừng lại trước đĩa đỏ gần góc dưới bên phải của sân chơi.

Tóm tắt

  • Trong dự án ở Bài học trước, các điều kiện trong câu lệnh if chỉ được kiểm tra một lần. Vì các điều kiện trong câu lệnh if chỉ được kiểm tra một lần nên VR Robot sẽ tiến về phía trước mãi mãi vì điều kiện "không phát hiện màu" được báo cáo là Đúng khi bắt đầu dự án.
  • Bây giờ vòng lặp vô hạn while đã được thêm vào, mỗi điều kiện của các câu lệnh if sẽ được kiểm tra nhiều lần. Điều kiện của vòng lặp while luôn là Đúng, do đó mã bên trong vòng lặp while sẽ luôn được thực thi. Điều này sẽ kiểm tra liên tục các điều kiện của câu lệnh if trong khi dự án đang chạy. 
  • Trong quá trình thực hiện dự án, nếu điều kiện của các câu lệnh nếu là Đúng, các lệnh bên trong câu lệnh nếu sẽ được thực thi. Nếu điều kiện của câu lệnh if là False, các lệnh bên trong câu lệnh if sẽ không được thực thi và luồng của dự án sẽ tiếp tục đến lệnh tiếp theo. Điều này cho phép VR Robot thực hiện các hành vi riêng biệt như rẽ hoặc dừng lại khi phát hiện ra một màu sắc nhất định.
  • Nếu câu lệnh được sử dụng với vòng lặp vô hạn whileđể đảm bảo các điều kiện được kiểm tra liên tục.

Câu hỏi

Vui lòng chọn liên kết bên dưới để truy cập bài kiểm tra bài học.

Google Doc / .docx / .pdf