Skip to main content

Bài 2: Sử dụng nhiều vòng lặp While

Tiếp tục qua Mê cung tường

Bây giờ chúng tôi đã sử dụng vòng lặpwhilevới Cảm biến cản để khiến Robot VR dừng lái khi chạm tới tường. Tuy nhiên, để tiếp tục vượt qua Mê cung tường, Robot VR cần quayvềkhi đến bức tường để có thể đổi hướng và tiếp tục đi. 

  • Để bắt đầu, hãy xóa lệnh stop bên ngoài vòng lặpwhilevà thay thế bằng lệnh turn_for. Thiết lập các thông số để VR Robot rẽ trái 90 độ. Dự án của bạn bây giờ sẽ trông như thế này:

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	drivetrain.turn_for(LEFT, 90, DEGREES)
  • Khởi chạy Wall Maze Playground nếu nó chưa mở và chạy dự án.
  • Xem Robot VR di chuyển từ đầu Mê cung tường, dừng lại khi Cảm biến cản được chạm vào tường và rẽ trái 90 độ.

    Góc nhìn từ trên xuống của Sân chơi Mê cung Tường. Robot VR đã di chuyển về phía trước từ mũi tên bắt đầu màu xanh lá cây ở cuối sân chơi cho đến khi nó chạm vào bức tường phía trước. Bây giờ nó quay 90 độ về bên trái, tức là hướng vào bức tường bên trái nó.

Nhiều vòng lặp và bài toán mê cung tường

Bây giờ, VR Robot đã chạm tới một bức tường và quay lại để có thể tiếp tục lái xe qua mê cung. Tương tự như cách sử dụng dữ liệu cảm biến cản trong vòng lặp while cho bước đầu tiên này trong mê cung, cùng một cấu trúc có thể được sử dụng nhiều lần trong cùng một dự án để đưa Robot VR tiếp tục di chuyển qua mê cung. Có thể sử dụng nhiều vòng lặp whiletrong cùng một dự án.

  • Bắt đầu từ vị trí hiện tại của VR Robot, bước tiếp theo để giải quyết Mê cung tường là lái xe về phía trước đến bức tường tiếp theo và rẽ phải 90 độ. Các lệnh hiện có có thể được sao chép và dán bên dưới lệnh while loop và turn_for trước đó. Hãy nhớ chú ý đến phần thụt lề và thay đổi tham số lệnh turn_for mới để rẽ phải 90 độ. Dự án của bạn bây giờ sẽ trông như thế này:

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    		
    	drivetrain.turn_for(RIGHT, 90, DEGREES)
  • Đặt lại Mê cung tường Sân chơi và chạy lại dự án.
  • Xem Robot VR di chuyển từ đầu Mê cung tường, dừng lại khi Cảm biến cản được tường ấn vào, rẽ trái 90 độ, di chuyển về phía trước cho đến khi Cảm biến cản lại được tường ấn vào, sau đó rẽ phải 90 độ và dừng lại.

    Góc nhìn từ trên xuống của Sân chơi Mê cung Tường. Robot VR đã di chuyển về phía trước từ mũi tên bắt đầu màu xanh lá cây cho đến khi tiến về phía trước, rẽ trái và lại tiến về phía trước cho đến khi chạm vào bức tường tiếp theo. Sau khi di chuyển, nó hiện đang quay 90 độ về bên phải, hướng về phía bức tường phía trên.

Thử thách nhỏ

Đối với thử thách nhỏ này, hãy tạo một dự án trong đó Robot VR di chuyển từ đầu đến chữ 'A' trên Mê cung tường Sân chơi bằng cách sử dụng nhiều vòng lặp trong khivà Cảm biến cản!

Góc nhìn từ trên xuống của Sân chơi Mê cung tường với Robot VR ở vị trí bắt đầu ở giữa phía dưới Sân chơi. Chữ A nằm ngay bên trái của robot, được ngăn cách bởi một bức tường ngắn.

Thực hiện theo các bước sau để hoàn thành thử thách nhỏ:

  • Xem video giải pháp bên dưới để biết Robot VR phải lái như thế nào để hoàn thành thử thách nhỏ này. Trong đoạn video clip này, Robot VR bắt đầu ở vị trí bắt đầu ở trung tâm phía dưới của Sân chơi. Nó di chuyển về phía trước cho đến khi Cảm biến cản va chạm vào bức tường đối diện, sau đó rẽ trái và di chuyển đến bức tường tiếp theo ở phía trước nó. Khi nhấn Bumper vào bức tường đó, robot sẽ rẽ trái lần nữa và tiến về phía trước cho đến khi tới bức tường cuối cùng và chữ A.

  • Tạo một dự án bằng cách thêm hoặc xóa các lệnh cần thiết vào dự án Unit4Lesson2 .
  • Bắt đầu dự án để kiểm tra.
  • Nếu dự án không thành công, hãy chỉnh sửa và thử lại. Tiếp tục chỉnh sửa và chạy dự án cho đến khi Robot VR lái thành công từ đầu đến chữ 'A'.
  • Lưu dự án sau khi VR Robot di chuyển thành công từ đầu đến chữ 'A'.

Chúc mừng! Bạn đã giải được thử thách nhỏ này!

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