Bài 2: Câu lệnh điều kiện If/Else
Trong Bài học này, bạn sẽ tạo một dự án trong đó Robot VR đánh đổ ít nhất hai tòa nhà trên Sân chơi Dynamic Castle Crasher. Sẽ cần một thuật toán để giải quyết thử thách bằng cách sử dụng vòng lặp và phản hồi cảm biến vì bố cục Sân chơi thay đổi sau mỗi lần đặt lại.
Ví dụ về bố cục sân chơi Dynamic Castle Crasher:

Kết quả học tập
- Xác định rằng khối [If then else] là khối C chạy các khối bên trong nhánh If hoặc Else dựa trên giá trị Boolean được báo cáo.
- Xác định rằng khối [Nếu thì else] thường được sử dụng với khối [Lặp lại] hoặc khối [Mãi mãi] để kiểm tra điều kiện nhiều lần.
- Xác định và mô tả lý do tại sao khối [If then else] được sử dụng với vòng lặp.
- Mô tả nguyên nhân khiến nhánh [If then else] được chạy trong một dự án.
Cách sử dụng khối [If then else]
Thử thách này khác với thử thách Castle Crasher ở Đơn vị 2. Thử thách Đơn vị 2 sử dụng trình tự đơn giản và các lệnh Truyền động để đánh đổ các tòa nhà trên sân chơi tĩnh.

Chỉ sử dụng lệnh truyền động sẽ không đủ để khiến Robot VR phá hủy hai hoặc nhiều tòa nhà do bố cục của Dynamic Castle Crasher Playgroundđang thay đổi. Một tập hợp các lệnh Drivetrain có thể hoạt động ở một Playground nhưng không hoạt động ở Playground khác. Sẽ cần một thuật toán sử dụng cảm biến và lựa chọn. Khối [If then else] sẽ được sử dụng để tạo thuật toán bằng cách thêm lựa chọn có câu lệnh có điều kiện vào dự án này.

Có hai bước chính để Robot VR có thể phá hủy các tòa nhà trên Sân chơi Dynamic Castle Crasher.
- Nếu Robot VR phát hiện ra tòa lâu đài, hãy lái về phía trước để đánh đổ nó.
-
Không giống như mọi Sân chơi khác, Sân chơi Dynamic Castle Crasher không có tường. Vì các tòa nhà là vật thể duy nhất trên Sân chơi Dynamic Castle Crashernên Cảm biến khoảng cách có thể được sử dụng để phát hiện các tòa nhà.

-
- Nếu VR Robot không phát hiện ra tòa lâu đài, hãy quay lại và kiểm tra lại xem có tòa lâu đài nào không.
-
Vì các tòa nhà là vật thể duy nhất trên Sân chơi Dynamic Castle Crasher, nên Cảm biến khoảng cách có thể được sử dụng để phát hiện các tòa nhà lâu đài.

-
Sau khi hoàn tất bước 1 và 2, Robot VR có thể quay lại bước 1 và sử dụng Cảm biến khoảng cách để tìm tòa nhà tiếp theo để phá hủy.
-
Bắt đầu một dự án mới trong VEXcode VR và đặt tên cho dự án Unit9Lesson2.

-
Thêm hai khối [Bình luận] vào không gian làm việc và điền vào các bước được nêu ở trên.

-
Khối [Nếu thì khác] có thể được sử dụng để kích hoạt từng hành động được nêu ở trên. Mỗi hành động phụ thuộc vào việc điều kiện Boolean trong khối [If then else] báo cáo là ĐÚNG hay SAI. Thêm khối [Nếu thì nếu không] bên dưới khối [Bình luận].

Để bạn biết
Khối [Nếu thì khác] là khối C chấp nhận các khối báo cáo Boolean làm đầu vào. Khối [If then else] là một câu lệnh có điều kiện kiểm soát luồng của một dự án. Khối [If then else] sẽ thực thi một chuỗi lệnh cụ thể nếu điều kiện được đáp ứng và một tập lệnh khác nếu điều kiện KHÔNG được đáp ứng, do đó 'phân nhánh' luồng dự án. Chỉ có một nhánh trong [Nếu thì khác] sẽ được thực thi.

- Nếu điều kiện được báo cáo là ĐÚNG, các khối bên trong nhánh If Then sẽ được chạy.
- Nếu điều kiện được báo cáo là SAI, các khối bên trong nhánh Else sẽ được chạy.

Khi tất cả các khối bên trong một nhánh được chạy, dự án sẽ chuyển sang khối tiếp theo bên ngoài khối [If then else].
-
Trong dự án này, Cảm biến khoảng cách có thể được sử dụng để phát hiện các tòa nhà trên Sân chơi. Thêm khối <Distance found object> vào khối [Nếu thì nếu không].

Để bạn biết
Khối <Distance found object> là khối báo cáo Boolean báo cáo xem Cảm biến khoảng cách có tìm thấy vật thể nào ở phía trước Robot VR hay không. Khối này báo cáo ĐÚNG khi có vật thể hoặc bề mặt trong phạm vi 3000 milimét (mm) tính từ Robot VR.

-
Bây giờ mỗi nhánh của khối [If then else] cần được xác định bằng cách sử dụng các chú thích được tạo khi bắt đầu dự án. Khi khối <Distance found object> báo cáo là ĐÚNG, Robot VR sẽ di chuyển về phía tòa nhà đó để đánh đổ nó. Di chuyển khối [Bình luận] đó tới nhánh 'Nếu thì' của dự án.

-
Di chuyển khối [Bình luận] khác sang nhánh 'Khác' của dự án để biết điều gì sẽ xảy ra nếu Robot VR KHÔNG phát hiện ra tòa nhà.

-
Thêm khối [Drive] vào nhánh 'If Then' của khối [If then else].

-
Khi khối <Distance found object> báo cáo SAI, Robot VR sẽ phải quay lại và tìm một tòa nhà trên Sân chơi. Thêm khối [Quay] bên dưới khối [Bình luận] trong nhánh 'Khác' của khối [Nếu thì khác].

-
Trước khi thử nghiệm dự án, cần thêm một khối nữa. Các khối [Nếu thì nếu không] sẽ chỉ kiểm tra điều kiện một lần trước khi chuyển sang khối tiếp theo trong ngăn xếp. Trong Đơn vị 7, khối [Mãi mãi] đã được thêm vào dự án để hướng dẫn Robot VR kiểm tra liên tục tình trạng của Cảm biến mắt dưới. Để đảm bảo điều kiện Cảm biến khoảng cách được kiểm tra nhiều lần, hãy kéo khối [Mãi mãi] vào không gian làm việc xung quanh khối [Nếu thì khác].

-
Mở Dynamic Castle Crasher Playground và chạy dự án.

-
Sau khi VR Robot đã phá hủy ít nhất hai tòa nhà, hãy tải lại Sân chơi và chạy dự án trên một bố cục khác của Sân chơi Castle Crasher.

-
Trong mỗi lần chạy của dự án, VR Robot sẽ quay cho đến khi Cảm biến khoảng cách phát hiện ra tòa nhà, sau đó sẽ di chuyển về phía tòa nhà đó để đánh đổ nó.

- Trong quá trình thực hiện dự án, Robot VR có thể đẩy một khối xây dựng ra tận mép và rơi khỏi Sân chơi. Nguyên nhân là do khối <Distance found object> vẫn đang báo cáo rằng có một vật thể ở phía trước Robot VR. Khi khối này báo cáo là ĐÚNG, Robot VR sẽ di chuyển về phía trước. Dẫn dắt Robot VR rơi khỏi bàn.
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.