Skip to main content

Bài 3: Sử dụng câu lệnh If

Điều hướng mê cung đĩa bằng các câu lệnhIf

Trong Thử thách mê cung đĩa, Robot VR sẽ kiểm tra tình trạng của Cảm biến mắt trước để xem màu nào đang được báo cáo. Mỗi màu sắc tương ứng với một hành vi khác nhau mà Robot VR cần thực hiện.

Để bạn biết

Câu lệnh nếuchỉ chấp nhận các điều kiện Boolean. Sử dụng các mẫu quan sát được khi giải Mê cung đĩa ở Bài 2, có thể tạo ra một dự án trong đó Robot VR đưa ra quyết định xem điều kiện báo cáo là Đúng hay Sai.

nếu điều kiện: 
	vượt qua

Câu lệnh if sẽ chạy một lần trong một dự án. Trong ví dụ này, Cảm biến mắt trước sẽ báo cáo Đúng nếu phát hiện vật thể màu xanh lá cây và thực thi lệnh bên trong câu lệnh if - rẽ phải 90 độ. Nếu không phát hiện được vật thể màu xanh lá cây, dự án sẽ chuyển sang lệnh tiếp theo.

def main():
    if front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    drivetrain.stop()
  • Bắt đầu một dự án mới và chọnDisk Maze Playgroundkhi được nhắc. Ô lựa chọn Sân chơi mê cung đĩa trong VEXcode VR.
  • Đặt tên là Unit7Lesson3.Thanh công cụ trong VEXcode VR với hộp tên dự án được gọi ra. Tên dự án là Đơn vị 7 Bài 3.

     

  • Thêm bình luận để mô tả mục đích cho hành vi của Robot VR trong từng phần tiếp theo của dự án. 
def main():
    # Nếu mắt trước phát hiện màu xanh lá cây thì rẽ phải

    # Nếu mắt trước phát hiện màu xanh lam thì rẽ trái
  • Kéo hoặc nhập câu lệnh nếu bên dưới bình luận đầu tiên.
def main():
    # Nếu mắt trước phát hiện màu xanh lá cây thì rẽ phải
    nếu điều kiện: 
    	vượt qua

    # Nếu mắt trước phát hiện màu xanh lam thì rẽ trái
  • Đặt điều kiện của câu lệnh if thành lệnh front_eye.detectvà đặt tham số thành 'GREEN'.
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): 
    	pass
    	
    # Nếu mắt trước phát hiện màu xanh lam thì rẽ trái
  • Kéo vào hoặc nhập lệnh turn_for bên trong câu lệnh if để thay thế lệnh 'pass'. Thiết lập các thông số để rẽ phải 90 độ. Bây giờ, nếu Cảm biến mắt trước phát hiện 'XANH LÁ', Robot VR sẽ rẽ phải 90 độ.
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
  • Chúng ta sẽ làm theo các bước tương tự để thêm các câu lệnhnếu cho cả ba màu trong Disk Maze (xanh lục, xanh lam và đỏ). Mỗi màu sắc có liên quan đến một hành vi khác nhau. Các lệnh bên trong câu lệnh if sẽ cần phải khớp với hành vi mong muốn đó. Thêm các lệnh sau vào dự án bên dưới bình luận thứ hai để nếu Cảm biến mắt trước phát hiện màu 'XANH DƯƠNG', Robot VR sẽ rẽ trái 90 độ.
	# Nếu mắt trước phát hiện màu xanh thì rẽ trái
	nếu mắt trước. phát hiện (XANH DƯƠNG): 
    	drivetrain.turn_for(TRÁI, 90, ĐỘ)
  • Khi Robot VR đến cuối mê cung, Cảm biến mắt trước sẽ phát hiện màu 'ĐỎ'.

    Góc nhìn cận cảnh về Robot VR đang tiến đến đĩa đỏ ở cuối Mê cung đĩa và dừng lại trước đĩa.
  • Để dừng VR Robot, cần thêm câu lệnh nếu với hướng dẫn về những việc cần làm nếu Cảm biến mắt trước phát hiện 'ĐỎ'. Thêm bình luận và lệnh sau vào dự án để VR Robot dừng lái nếu phát hiện 'ĐỎ'. 
	# Nếu mắt trước phát hiện màu đỏ thì dừng
	nếu front_eye.detect(RED): 
    	drivetrain.stop()

Nếu không có màu nào được phát hiện

Robot VR cũng có thể đưa ra quyết định nếu không nhìn thấy màu nào đó bằng cách sử dụng giá trị 'không có'. Ví dụ, tại điểm bắt đầu của Mê cung đĩa, Cảm biến mắt trước không phát hiện bất kỳ màu nào.

Góc nhìn sân chơi VR với bảng điều khiển mở và hộp màu đỏ làm nổi bật các giá trị cảm biến Mắt trước của rô-bốt. Giá trị 'Đối tượng' hiện tại là sai và giá trị 'Màu sắc' hiện tại là không có.

Vì Cảm biến mắt trước không phát hiện được màu khi bắt đầu Mê cung đĩa nên Robot VR sẽ phải di chuyển về phía trước cho đến khi phát hiện ra đĩa màu xanh lá cây. Có thể thêm một câu lệnh nếu nữa để hướng dẫn Robot VR phải làm gì khi không phát hiện thấy màu nào. 

  • Thêm bình luận và lệnh sau vào dự án để nếu Cảm biến mắt trước không phát hiện bất kỳ màu nào, Robot VR sẽ di chuyển về phía trước.
	# Nếu mắt trước không phát hiện thì lái về phía trước
	nếu front_eye.detect(NONE): 
    	drivetrain.drive(FORWARD)
  • Robot VR hiện có hướng dẫn cho từng màu được cảm biến mắt trước phát hiện.
    • NếuCảm biến mắt trước phát hiện 'XANH LÁ' – Rẽ phải 90 độ
    • NếuCảm biến mắt trước phát hiện 'XANH' – Rẽ trái 90 độ
    • NếuCảm biến mắt trước phát hiện 'ĐỎ' – Dừng lái xe
    • NếuCảm biến mắt trước phát hiện 'KHÔNG CÓ' –Lái xe về phía trước
  • Mở Cửa sổ Sân chơi nếu nó chưa mở. Hãy đảm bảoDisk Maze Playgroundmở ra và chạy dự án. Toàn bộ dự án sẽ trông như thế này: 
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)
  • Liệu Robot VR có hoạt động như bạn mong muốn không? Tại sao nên hoặc không nên? Ở trang tiếp theo của Bài học, chúng ta sẽ tìm hiểu thêm về dự án này.

Chọn nút Tiếp theo để tiếp tục phần còn lại của Bài học này.