Bài 2: Luồng của một dự án với vòng lặp For
Khi một dự án sử dụng vòng lặp cho , nó vẫn tuân theo cùng một logic khi thực hiện các lệnh. Ví dụ, hai mẫu mã này sẽ khiến Robot VR di chuyển theo cùng một cách. Tuy nhiên, dự án với vòng lặpchosẽ lặp lại hai lệnh Drivetrain bốn lần để thực hiện như vậy.

Vòng lặp cho được sử dụng để lặp lại một loạt lệnh với số lần được chỉ định. Vòng lặp cho lặp lại (còn gọi là iterates) theo trình tự các lệnh bên trong nó. Trong vòng lặp Python for , biến 'value' được sử dụng để theo dõi lần lặp hiện tại và từ khóa 'in' sử dụng hàm rangeđể chỉ định số lần lặp. 
Hàm range xác định vòng lặp sẽ lặp lại bao nhiêu lần. Để lặp lại các hành vi theo số lần mong muốn, hãy đặt tham số của hàm phạm vi.
Hàm range về cơ bản tạo ra một danh sách tạm thời chỉ định vòng lặp sẽ lặp qua những gì để hoàn thành. Trong trường hợp lặp lại các hành vi, chẳng hạn như vẽ bốn cạnh của hình vuông, hàm phạm vi sử dụng danh sách tạm thời (0, 1, 2, 3) để cho phép VR Robot thực hiện các lệnh đó bốn lần. Chuyển động của Robot VR sẽ thay đổi tùy thuộc vào tham số của hàm phạm vi, như được hiển thị ở đây.
![]() |
![]() |
Lệnh truyền động được thực hiện 0 lần. |
![]() |
![]() |
Lệnh truyền động được thực hiện 1 lần. |
![]() |
![]() |
Lệnh truyền động được thực hiện 2 lần. |
![]() |
![]() |
Lệnh truyền động được thực hiện 3 lần. |
![]() |
![]() |
Các lệnh truyền động được thực hiện 4 lần, hoàn thành cả 4 cạnh của hình vuông. |
|
|
![]() |
Các lệnh truyền động được thực hiện 5 lần, hoàn thành hình vuông, sau đó vẽ lại cạnh đầu tiên. |
Lưu ý rằng hình dạng được vẽ của hình vuông không thay đổi khi hàmphạm vithay đổi từ bốn thành năm; nhưng vị trí cuối cùng của Robot VR thì thay đổi. Do đó, sử dụng vòng lặpchovới hàm mặc địnhphạm vilà mười, sẽ tạo ra cùng một hình vuông được vẽ, nhưng VR Robot sẽ tiếp tục lặp lại hành vi thêm sáu lần nữa.
Robot VR sẽ di chuyển qua các lệnh từ đầu vòng lặp cho đến lệnh thụt lề cuối cùng. Tiêu đề vòng lặpchochỉ ra rằng Robot VR phải lặp lại các hành động bên trong vòng lặp với số lần được chỉ định trước khi chuyển sang lệnh tiếp theo bên ngoài vòng lặp for. Các dòng thụt lề cho biết lệnh nào nằm trong vòng lặp for và cần được lặp lại.
Để bạn biết
Trong VEXcode VR, lệnhwaitluôn được thêm vào vòng lặpfor. Mục đích của lệnhwaitlà đảm bảo VEXcode VR có thể chạy dự án đúng như mong muốn, do nền tảng VEXcode VR là nền tảng dựa trên web. Không bao giờ nên xóa lệnhwaitkhi sử dụng vòng lặpfor, nếu không dự án của bạn có thể không chạy như mong đợi.

Số lần cụ thể mà vòng lặp cho được thiết lập để thực thi cho phép dự án thoát khỏi vòng lặpchokhi đã hoàn thành các lần lặp cần thiết. Tham số của hàm rangetrong vòng lặp for phải đạt được trước khi dự án chuyển sang lệnh tiếp theo bên ngoài vòng lặp. Trong mẫu mã bên dưới, sau khi lệnh Drivetrain trong vòng lặpchođược thực hiện bốn lần, dự án sẽ di chuyển ra khỏi vòng lặpcho, đặt màu bút thành đỏ và lái ngược lại. 
Thử thách nhỏ
Trong dự án này, Robot VR sẽ vẽ một hình vuông màu xanh trên Art Canvas Playground, nhưng có một số lỗi trong dự án. Chỉnh sửa dự án để giải quyết thử thách nhỏ!

Video bên dưới sẽ hướng dẫn bạn cách hoàn thành thử thách nhỏ này. Robot bắt đầu ở giữa sân chơi và vẽ bốn cạnh của một hình vuông lớn màu xanh.
- Xem video giải pháp và xem lại cách Robot VR phải di chuyển để hoàn thành thử thách nhỏ này.
- Sửa đổi dự án Unit3Lesson2 để phù hợp với hình ảnh này hoặc sao chép mã bên dưới.
def main():
pen.move(DOWN)
pen.set_pen_color(RED)
drivetrain.drive_for(FORWARD, 600, MM)
for value in range(3):
drivetrain.drive_for(FORWARD, 600, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait (5, MSEC)- Bắt đầu dự án và xác định vị trí mà Robot VR không hoàn thành các hành vi mong đợi.
- Sửa đổi dự án và chạy lại dự án. Xem liệu Robot VR có thực hiện được các hành vi mong đợi hay không.
- Nếu VR Robot không vẽ được hình vuông màu xanh, hãy lặp lại bước trước và thử lại. Tiếp tục chỉnh sửa và chạy dự án của bạn cho đến khi VR Robot vẽ một hình vuông màu xanh.
- Sau khi VR Robot vẽ thành công hình vuông màu xanh trên Art Canvas Playground, hãy lưu dự án.
Chúc mừng! Bạn đã giải được thử thách nhỏ này!











