Skip to main content

Bài 4: Di chuyển đĩa đỏ và đĩa xanh

  • Tiếp theo, Robot VR sẽ phải di chuyển về phía trước để đến mục tiêu có màu tiếp theo. Lưu ý rằng Robot VR sẽ phải di chuyển về phía trước bốn ô lưới hoặc 800 milimét (mm) để di chuyển đến tâm của mục tiêu màu tiếp theo.

    Góc nhìn từ trên xuống của Sân chơi Di chuyển đĩa, với Robot VR được đặt ở rìa mục tiêu màu xanh sau khi thả đĩa màu xanh đầu tiên, hướng về mục tiêu màu đỏ bên phải. Một mũi tên chấm chấm hướng từ phía trước của Robot VR đến mục tiêu màu đỏ, cho biết chuyển động tiếp theo dự kiến.
  • Thêm khối [Drive for] vào mã và đặt tham số thành 800 milimét (mm).

    Cùng một dự án VEXcode VR từ trang trước, với bình luận và khối Drive được thêm vào cuối ngăn xếp. Hai khối bổ sung có nội dung Lái xe đến mục tiêu tiếp theo, sau đó lái xe về phía trước 800 mm.
  • Bây giờ, VR Robot sẽ phải quay mặt về phía các đĩa màu.

    Góc nhìn từ trên xuống của Sân chơi di chuyển đĩa, với Robot VR được đặt ở khu vực mục tiêu màu đỏ. Một mũi tên cong hướng từ phía trước của Robot VR về phía các đĩa màu đỏ, chỉ ra hướng rẽ cần thiết để hướng về các đĩa màu đỏ.
  • Thêm khối [Chuyển hướng] thứ hai vào mã và đặt tham số thành 0 độ. Thao tác này sẽ xoay Robot VR hướng về các đĩa màu.

    Cùng một dự án VEXcode VR, với khối Bình luận và khối Chuyển sang tiêu đề được thêm vào cuối ngăn xếp. Hai khối này có nội dung là Quay về đĩa, sau đó Quay về hướng 0 độ.
  • Mở Disk Mover Playground và chạy dự án.
  • Robot VR sẽ nhặt và di chuyển đĩa màu xanh đầu tiên vào mục tiêu màu xanh, sau đó lái qua mục tiêu màu đỏ. Robot VR cũng sẽ quay mặt về phía các đĩa màu đỏ.

    Góc nhìn từ trên xuống của Sân chơi Di chuyển đĩa với VR được đặt ở rìa trước của mục tiêu màu đỏ, hướng về phía các đĩa màu đỏ.
  • Bây giờ, khi VR Robot đang đối mặt với các đĩa đỏ, VR Robot sẽ cần phải lặp lại các hành vi tương tự đã sử dụng để thu thập đĩa xanh, để nhặt và di chuyển đĩa đỏ. Hành vi lái xe về phía trước để nhặt đĩa, quay lại và lái xe trở lại mục tiêu cùng màu để thả đĩa xuống.

    Góc nhìn từ trên xuống của Sân chơi Di chuyển đĩa với VR được đặt ở rìa trước của mục tiêu màu đỏ, hướng về phía các đĩa màu đỏ. Các mũi tên chấm bi chỉ ra các chuyển động cần thiết để lái xe đến mục tiêu màu đỏ đầu tiên, đưa nó đến mục tiêu màu đỏ, sau đó quay đầu và lái xe về phía mục tiêu màu xanh lá cây.
  • Sau khi đĩa đỏ đầu tiên được di chuyển, VR Robot sẽ phải di chuyển đến mục tiêu màu xanh lá cây và thực hiện các hành động tương tự như đã dùng để di chuyển đĩa xanh và đĩa đỏ để di chuyển đĩa xanh lá cây đầu tiên.

    Góc nhìn từ trên xuống của Sân chơi Di chuyển đĩa ở cấu hình ban đầu, với robot ở vị trí bắt đầu mục tiêu màu xanh. Các mũi tên chấm bi cho thấy các hành vi lặp lại dự định để robot lái xe nhặt và giao đĩa đầu tiên của mỗi đĩa đến các mục tiêu tương ứng.
  • Để lặp lại các hành vi nhiều lần, có thể sử dụng khối [Lặp lại].

    Khối VEXcode VR Repeat từ Hộp công cụ, với tham số được đặt thành mặc định là 10.
  • Thêm khối [Lặp lại] vào mã và đặt tham số thành '3.'

    Tổng quan về việc thêm khối Lặp lại vào dự án VEXcode VR hiện có, để tất cả các khối cần thiết để nhặt và di chuyển đĩa xanh đầu tiên đến mục tiêu xanh, rẽ để lái đến mục tiêu tiếp theo rồi rẽ để quay mặt về phía đĩa được gói trong khối C của khối lặp lại. Tham số khối lặp lại được đặt thành 3.
  • Mở Disk Mover Playground và chạy dự án.
  • Khi dự án này được chạy, VR Robot sẽ nhặt và thả một đĩa của mỗi màu vào mục tiêu có màu tương ứng.

    Góc nhìn từ trên xuống của Sân chơi Di chuyển đĩa cho thấy trạng thái cuối cùng của Đĩa và robot sau khi dự án chạy xong. Đĩa màu đầu tiên nằm trong mục tiêu có màu tương ứng và Robot VR nằm trên tường Sân chơi ở rìa mục tiêu màu xanh lá cây.
  • Lưu ý rằng Robot VR tiếp tục đâm vào tường. Hành vi này là điều được mong đợi vì dự án đã hướng dẫn Robot VR rẽ phải và lái về phía mục tiêu tiếp theo ba lần. Lần đầu tiên lái xe từ đèn xanh sang đèn đỏ. Thứ hai là từ màu đỏ đến màu xanh lá cây, và thứ ba là từ màu xanh lá cây vào tường, vì không có mục tiêu màu nào khác. Dừng dự án khi Robot VR chạm vào tường. Dự án có thể được cải thiện để VR Robot dừng lại sau khi nhặt và di chuyển đĩa màu xanh lá cây, nhưng điều này sẽ làm tăng độ phức tạp chung của dự án.

    Cửa sổ Sân chơi hiển thị Robot VR trong khu vực mục tiêu màu xanh lá cây ở cuối dự án, với nút Dừng được tô sáng bằng hộp màu đỏ cho biết dừng dự án trước khi robot đâm vào tường.

Để bạn biết

Việc đặt một vòng lặp bên trong một vòng lặp khác được gọi là lồng nhau. Khi bạn "lồng" các vòng lặp, vòng lặp bên ngoài sẽ kiểm soát số lần vòng lặp bên trong thực thi. Có nhiều loại vòng lặp khác nhau có thể lồng vào nhau. Ví dụ, trong đoạn mã trước ở trên, các khối [Lặp lại cho đến khi] được lồng vào bên trong một khối [Lặp lại].

Cùng một dự án VEXcode VR trước đó, cho thấy cách các khối Lặp lại cho đến khi C được lồng vào khối Lặp lại, cho phép robot di chuyển ba đĩa thành công.

Khối [Lặp lại] cũng có thể được lồng vào bên trong khối [Lặp lại] khác. Trong ví dụ sau, vì khối [Lặp lại] bên ngoài được đặt thành '3' nên Robot VR sẽ vẽ ba hình vuông trên Sân chơi.

Bên trái, một dự án hiển thị khối Lặp lại được đặt thành 3, trong đó khối Lặp lại cần thiết để mã hóa Robot VR nhằm vẽ một hình vuông lồng vào bên trong nó, minh họa cho khái niệm về các vòng lặp lồng nhau. Bên phải, cửa sổ Sân chơi hiển thị ba hình vuông được robot vẽ từ dự án.

Các vòng lặp lồng nhau hữu ích trong các dự án mà Robot VR lặp lại cùng một hành vi nhiều lần. Các vòng lặp lồng nhau giúp tổ chức và cô đọng một dự án. Điều này có thể hữu ích để hiểu rõ hơn bối cảnh và mục đích của mã, cũng như giúp tìm lỗi dễ dàng hơ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.