Khối tự tạo: vẽ đa giác tuỳ ý
Mục tiêu: Tạo khối vedagiac (canh, dai) rồi gọi nó để vẽ tam giác, hình vuông, lục giác và bông hoa 12 ngũ giác.
Em sẽ học gì
- Nội dung trong bài: tự tạo một khối lệnh mới, còn gọi là chương trình con.
- Khối tự tạo có tham số: mỗi lần dùng, ta đưa vào những giá trị khác nhau.
- Và gọi khối đó nhiều lần, để vẽ nhiều hình mà không phải viết lại code.

Bài làm như sau. Thu nhỏ mèo để không che nét vẽ: ô Kích thước gõ 30.

Thêm bộ bút: bấm nút Thêm phần mở rộng ở góc dưới bên trái, rồi chọn Bút vẽ.

Việc cần làm: tạo khối vedagiac (canh, dai). Hạ bút, lặp canh lần: đi dai bước, xoay 360 / canh độ. Nhấc bút.
Theo sơ đồ khối, khối vedagiac nhận hai giá trị: canh là số cạnh, dai là độ dài mỗi cạnh. Đầu tiên hạ bút xuống. Chưa lặp đủ canh lần thì đi dai bước, rồi xoay phải 360 chia canh độ. Lặp đủ thì nhấc bút, rồi quay về chỗ đã gọi khối. Chọn nhóm Khối của tôi, bấm nút Tạo một khối. Gõ tên khối, viết liền không dấu: vedagiac. Bấm Thêm dữ liệu đầu vào số hay chữ, rồi gõ canh: số cạnh của hình. Thêm một dữ liệu đầu vào nữa, gõ dai: độ dài mỗi cạnh. Bấm OK. Vùng lập trình có khối định nghĩa vedagiac. Kéo nó xuống dưới tờ Việc cần làm.
Giải thích: Đây là khối định nghĩa. Các khối gắn bên dưới là việc khối vedagiac sẽ làm, mỗi khi được gọi.

Chọn nhóm Bút vẽ, gắn khối đặt bút dưới khối định nghĩa: hạ bút xuống để vẽ.

Chọn nhóm Điều khiển, gắn khối lặp lại. Ô số lần lặp: kéo tham số canh trên khối định nghĩa, thả vào. Kéo ra là Scratch tạo một bản sao.
Giải thích: Hình có bao nhiêu cạnh thì lặp bấy nhiêu lần: tam giác lặp 3 lần, hình vuông lặp 4 lần.

Bên trong vòng lặp, gắn khối di chuyển, trong nhóm Chuyển động. Ô số bước: thả tham số dai vào.

Gắn khối xoay phải.

Ô số độ: thả khối phép chia, trong nhóm Các phép toán. Ô bên phải phép chia: thả tham số canh, ô bên trái gõ 360.
Giải thích: Vẽ hết một hình, mèo quay tổng cộng 360 độ, chia đều cho các cạnh: tam giác quay 120 độ, hình vuông quay 90 độ.

Cuối cùng, dưới vòng lặp, gắn khối nhấc bút, trong nhóm Bút vẽ. Ta vừa làm khối vedagiac: hạ bút, lặp canh lần: đi dai bước, xoay 360 chia canh độ, rồi nhấc bút. Khối định nghĩa không tự chạy. Phải có chương trình gọi nó, như ta làm ngay sau đây.
Giải thích: Vẽ xong thì nhấc bút, để lúc mèo đi tới chỗ vẽ hình sau thì không để lại nét thừa.

Việc cần làm: bấm cờ xanh: xoá hình cũ, bút cỡ 3, hướng 90. Ba lần: đi tới chỗ vẽ, gọi vedagiac.
Theo sơ đồ khối, chương trình chính xoá hình cũ, rồi đi tới chỗ vẽ hình đầu tiên. Khối có hai vạch dọc là lời gọi khối tự tạo. Mỗi lời gọi đưa vào số cạnh và độ dài khác nhau.

Chọn nhóm Sự kiện, kéo khối Khi bấm vào cờ xanh.

Nhóm Bút vẽ: gắn khối xoá tất cả, xoá hình của lần chạy trước,

rồi khối đặt kích thước bút vẽ, gõ 3 cho nét vẽ đậm hơn.

Nhóm Chuyển động: gắn khối đặt hướng bằng 90: hình nào cũng bắt đầu bằng cạnh nằm ngang.

Gắn khối đi tới điểm x, y, x gõ âm 180, y gõ 40: chỗ vẽ tam giác, bên trái sân khấu.

Chọn nhóm Khối của tôi: khối vedagiac có sẵn ở đây. Gắn nó dưới khối đi tới. Ô thứ nhất là canh: gõ 3, ô thứ hai là dai: gõ 80.
Giải thích: Đây là lời gọi khối. Lúc chạy, canh nhận giá trị 3, dai nhận giá trị 80: mèo vẽ tam giác cạnh 80 bước.

Chạy thử: bấm cờ xanh, mèo vẽ một tam giác: ba cạnh, mỗi lần xoay 360 chia 3, bằng 120 độ.

Hình thứ hai: gắn thêm khối đi tới điểm x, y, x gõ âm 40, y gõ 40.

Gắn khối vedagiac, trong nhóm Khối của tôi, canh gõ 4, dai gõ 80: hình vuông.

Hình thứ ba: khối đi tới điểm x, y, x gõ 100, y gõ 40.

Gắn khối vedagiac, canh gõ 6, dai gõ 50: hình lục giác. Ta vừa làm: xoá hình cũ, rồi ba lần: đi tới chỗ vẽ, gọi vedagiac với số cạnh 3, 4 và 6.
Giải thích: Cùng một khối vedagiac, chỉ đổi hai tham số là ra hình khác: không phải viết lại vòng lặp.

Chạy thử: bấm cờ xanh, mèo vẽ tam giác, hình vuông, rồi hình lục giác: ba hình từ một khối.

Việc cần làm: bấm phím trắng: xoá hình, về giữa. Lặp 12 lần: vẽ ngũ giác, xoay phải 30 độ.
Theo sơ đồ khối, bấm phím trắng thì xoá hình cũ, mèo về giữa sân khấu. Chưa lặp đủ 12 lần thì gọi vedagiac vẽ một ngũ giác, xoay phải 30 độ, rồi quay lại kiểm tra.

Chọn nhóm Sự kiện, kéo khối khi bấm phím, để nguyên phím trắng.

Nhóm Bút vẽ: gắn khối xoá tất cả.

Nhóm Chuyển động: gắn khối đi tới điểm x, y, x gõ 0, y gõ 0: giữa sân khấu.

Nhóm Điều khiển: gắn khối lặp lại, đổi thành 12 lần.

Bên trong vòng lặp, gắn khối vedagiac, canh gõ 5, dai gõ 60: một hình ngũ giác.

Dưới khối vedagiac, gắn khối xoay phải, trong nhóm Chuyển động, đổi thành 30 độ. Ta vừa làm: khi bấm phím trắng, xoá hình, về giữa, lặp 12 lần: gọi vedagiac vẽ ngũ giác, rồi xoay phải 30 độ.
Giải thích: Lặp 12 lần, mỗi lần xoay 30 độ: 12 nhân 30 bằng 360, nên 12 ngũ giác xếp đều quanh một vòng.

Chạy thử: bấm phím trắng, mèo vẽ 12 hình ngũ giác xoay quanh giữa sân khấu, thành một bông hoa.

Không có khối tự tạo, mỗi hình phải chép lại cả vòng lặp và tự tính góc quay. Có khối vedagiac, mỗi hình chỉ cần một khối.

Các khối mới trong bài
- Khối định nghĩa: đặt tên cho một đoạn code; các khối bên dưới là việc khối tự tạo sẽ làm.
- Khối tham số: giá trị đưa vào khi gọi khối; kéo từ khối định nghĩa ra để dùng.
- Khối gọi khối tự tạo: chạy đoạn code của khối, với các giá trị gõ trong ô.
Kỹ thuật lập trình đã học
- Về kỹ thuật lập trình, bài này ta học: chương trình con: đóng gói một đoạn code thành một khối riêng, có tên.
- Tham số: cùng một khối, đưa vào giá trị khác thì ra kết quả khác.
- Và trừu tượng hoá: dùng khối vedagiac mà không cần nghĩ bên trong nó làm gì.
Bài tập
Bài tập: gọi vedagiac với canh bằng 8 hoặc 10, xem hình gần tròn hơn thế nào. Rồi đổi bông hoa thành 18 lục giác, mỗi lần xoay 20 độ.