S U N C O D E . E D U . V N

Loading...

Bạn đã bao giờ mệt mỏi với những dòng code Scratch dài dằng dặc và lặp đi lặp lại? Bài viết này sẽ hướng dẫn bạn một kỹ thuật nâng cao giúp “đóng gói” các khối lệnh, biến chương trình của bạn trở nên gọn gàng, rõ ràng và dễ quản lý hơn bao giờ hết: đó là tạo và sử dụng khối lệnh tùy chỉnh (My Blocks).

Giao diện chính của Scratch với mục My Blocks được đánh dấu.

Tại sao cần tạo khối lệnh (Block) riêng?

Sau khi đã thành thạo phần lớn các khối lệnh có sẵn trong Scratch, bạn sẽ nhận thấy chúng có hai đặc điểm chính:
– Mỗi lệnh có một chức năng riêng biệt để điều khiển nhân vật, hình nền và có thể tái sử dụng nhiều lần.
– Lệnh có thể có tham số đầu vào (như di chuyển ... bước, thay đổi kích cỡ ...) hoặc không cần tham số (như khi nhấp vào cờ, hình ảnh tiếp theo).

Tuy nhiên, khi dự án trở nên phức tạp, việc sử dụng hàng loạt lệnh lặp lại sẽ khiến code trở nên rối rắm và khó kiểm soát. Đây là lúc tính năng Make a Block trong mục My Blocks phát huy sức mạnh. Nó cho phép bạn tự định nghĩa những lệnh mới với chức năng riêng, giúp chương trình ngắn gọn và rõ ràng hơn.

Nút "Tạo Khối Lệnh" (Make a Block) trong danh mục My Blocks.

Về bản chất, khái niệm Block này tương tự như hàm hay chương trình con trong các ngôn ngữ lập trình chuyên nghiệp. Việc nắm vững nó sẽ rèn luyện cho bạn tư duy phân chia công việc lớn thành các phần nhỏ – một kỹ năng thiết yếu để xử lý các dự án Scratch phức tạp.

Hướng dẫn chi tiết cách tạo và sử dụng My Blocks

1. Tạo một Block cơ bản (không tham số)

Giả sử chúng ta có một chuỗi hành động đơn giản: chú mèo di chuyển ngang, sau đó xoay và tiếp tục di chuyển. Trong chuỗi này, có hai khối lặp lại giống hệt nhau.

Ví dụ code ban đầu với các khối lặp lại giống nhau.

Để tối ưu, chúng ta sẽ tạo 2 Block mới: Move (Di chuyển) và Rotate (Xoay) không có tham số.
1. Vào mục My Blocks, nhấn Tạo Khối Lệnh.
2. Đặt tên cho Block, ví dụ: “Move”.
3. Nhấn OK. Một khối định nghĩa Move sẽ xuất hiện.
4. Kéo và thả khối lặp lại thứ nhất từ chương trình chính vào khối định nghĩa Move này.
5. Lặp lại các bước để tạo Block “Rotate” với khối lặp lại thứ hai.

Khối "định nghĩa" (Define) nơi bạn xây dựng chức năng cho Block mới.

Sau khi định nghĩa xong, trong chương trình chính, bạn chỉ cần sử dụng hai lệnh MoveRotate vừa tạo. Lập tức, chương trình sẽ trông gọn gàng và có cấu trúc rõ ràng hơn. Mọi điều chỉnh về số bước di chuyển hay góc xoay giờ đây chỉ cần thực hiện trong khối định nghĩa của từng Block.

2. Tạo Block với một hoặc nhiều tham số

Sức mạnh thực sự của My Blocks nằm ở khả năng truyền tham số. Hãy xem xét tình huống chú mèo cần di chuyển với số lần lặp khác nhau trong mỗi lần gọi lệnh.

Giao diện thêm tham số số hoặc văn bản (Add an Input Number or Text) khi tạo Block.

  1. Khi tạo Block, nhấn nút “Thêm đầu vào số hoặc văn bản”.
  2. Đặt tên cho tham số, ví dụ: “n”.
  3. Trong khối định nghĩa, bạn sử dụng tham số n này như một biến số, chẳng hạn đưa nó vào khối lặp lại ... lần.
  4. Lưu ý quan trọng: Tham số này chỉ có tác dụng trong phạm vi khối định nghĩa của Block và không thể sử dụng bên ngoài.

Sử dụng tham số "n" bên trong khối định nghĩa của Block Move.

Khi sử dụng trong chương trình chính, Block Move của bạn giờ đây sẽ có một ô trống để bạn nhập giá trị, ví dụ: Move (5) hoặc Move (10).

Đối với các Block phức tạp hơn, bạn có thể thêm nhiều tham số. Ví dụ, Block Move có thể cần cả tham số về số bước (step)số lần lặp (n). Block Rotate có thể cần số lần lặp (n)góc xoay (degree). Khi sử dụng, bạn cần truyền giá trị vào đúng thứ tự tham số đã định nghĩa.

3. Tùy chọn “Chạy không làm mới màn hình”

Một tùy chọn nâng cao khác khi tạo Block là Run without screen refresh (Chạy không làm mới màn hình).

Hộp kiểm "Chạy không làm mới màn hình" khi tạo khối lệnh.

  • Nếu KHÔNG chọn: Các hoạt động của nhân vật trong Block sẽ được hiển thị tuần tự, từng bước một trên màn hình.
  • Nếu CÓ chọn: Toàn bộ hoạt động trong Block sẽ chạy ngầm và chỉ hiển thị kết quả cuối cùng. Nó giống như lệnh đến x: ... y: ..., nhân vật sẽ “nhảy” tới vị trí mới mà không hiển thị quá trình di chuyển.

Bạn nên thử nghiệm tạo một Block di chuyển và chạy thử ở cả hai chế độ để thấy sự khác biệt rõ ràng. Tùy chọn này rất hữu ích để tối ưu hiệu ứng cho các hoạt động phức tạp, giúp chương trình chạy mượt mà hơn.

Ứng dụng thực tế: Tối ưu hóa chương trình vẽ hình

Hãy xem xét một ví dụ thực tế từ bài học vẽ hình bằng công cụ Pen. Chương trình vẽ nhiều hình như hình tròn, vuông, tam giác và bông hoa. Tất cả đều dựa trên nguyên lý lặp lại của việc vẽ một đa giác đều.

Chương trình vẽ nhiều hình sử dụng công cụ Pen.

Thay vì viết đi viết lại các khối lệnh vẽ đa giác, chúng ta tạo một Block tên là Draw với hai tham số: Số cạnh (Side)Độ dài cạnh (Len).

Định nghĩa Block "Draw" với các tham số Side và Len.

Trong khối định nghĩa Draw, chúng ta đặt bút, sau đó lặp lại Side lần việc di chuyển Len bước và xoay một góc thích hợp, cuối cùng nhấc bút.

Cấu trúc lệnh bên trong khối định nghĩa "Draw".

Khi đó, chương trình chính trở nên cực kỳ đơn giản và dễ đọc:
1. Thiết lập vị trí, màu bút.
2. Draw (20, 8) để vẽ hình tròn (đa giác 20 cạnh).
3. Draw (4, 50) để vẽ hình vuông.
4. Draw (3, 60) để vẽ hình tam giác.
5. Dùng vòng lặp và Draw để vẽ từng cánh hoa.

Chương trình chính được tối giản nhờ sử dụng Block "Draw".

So sánh với phiên bản không dùng Block, bạn sẽ thấy code ngắn gọn, có cấu trúc rõ ràng và dễ dàng chỉnh sửa thông số từng hình hơn rất nhiều.

Kết luận và bài tập thực hành

Bài học này đã cung cấp cho bạn công cụ mạnh mẽ để nâng cấp tư duy lập trình Scratch: khối lệnh tùy chỉnh (My Blocks). Bạn đã biết cách tạo Block không tham số, có tham số và sử dụng tùy chọn chạy ngầm. Việc quyết định tạo Block nào, với bao nhiêu tham số phụ thuộc vào mục đích và độ phức tạp của dự án.

Tổng kết các loại Block và ứng dụng của chúng.

Để thành thạo kỹ thuật này, hãy thử sức với hai bài tập thực hành sau:
1. Tạo chương trình xe ô tô tự lái: Xe di chuyển trên đường và phải dừng lại khi gặp chướng ngại vật. Hãy thử tạo các Block như di_chuyển_xe(), kiểm_tra_vật_cản().
2. Làm game “Đập chuột” (Whack-a-Mole): Tạo Block cho hành động chuột xuất hiện ngẫu nhiên và biến mất khi bị click.

Hãy bắt đầu áp dụng My Blocks vào các dự án hiện tại của bạn. Bạn sẽ bất ngờ về khả năng tổ chức code và sự chuyên nghiệp mà nó mang lại. Chúc bạn học tập và sáng tạo thật vui vẻ!

Leave A Comment