Appearance
Soạn hoạt động Lưới Blockly
Hoạt động Lưới Blockly (module Hoạt động lập trình) đặt một level trò chơi lưới vào bài học: học viên dẫn nhân vật qua bản đồ bằng khối hoặc mã, máy chấm ở máy chủ và tự đánh dấu hoàn thành khi đạt. Trình vẽ level và luật chấm dùng chung với Trò chơi nhỏ — bài này chỉ nói phần khác biệt khi nó là một hoạt động trong khoá học.
Yêu cầu module: Hoạt động lập trình (CodingActivities) + BlocklyRuntime bật cho tổ chức. BlocklyRuntime là điều kiện bắt buộc của cả module Hoạt động lập trình: thiếu nó thì module này không bật được, nên mọi loại lập trình (không riêng Lưới Blockly) đều không xuất hiện trong menu thêm hoạt động.
Tạo hoạt động
Trong Course Builder, dùng nút Thêm Activity trong bài học và chọn loại Lưới Blockly. Form có ba phần:
| Phần | Nội dung |
|---|---|
| Bản đồ, khối và lời giải mẫu | Trình vẽ level ngay trong form — tab Thiết kế (bản đồ, khối được dùng, giới hạn, gợi ý, cách nhập, lời giải mẫu, Chạy thử) và tab JSON để dán/sửa tay. Cách dùng y hệt Trình vẽ level của Trò chơi nhỏ. |
| Khối khởi đầu | Nút 🧱 Khối khởi đầu cạnh Kéo khối / Gõ mã ở hàng lời giải mẫu: mở một bảng khối riêng để dựng sẵn khung học viên thấy khi mở bài (kiểu "điền chỗ trống"). Để trống nếu học viên bắt đầu từ bảng trắng. Khung phải nối vào Bắt đầu, chỉ dùng khối đã tick và không vượt Tối đa số khối — sai thì form báo ở ô cấu hình với tiền tố starter. |
| Số khối chuẩn | Ô ngoài trình vẽ. Có giá trị thì sau khi đạt, học viên dùng nhiều khối hơn sẽ được nhắc "thử tối ưu?". Để trống nếu không muốn nhắc. Không ảnh hưởng hoàn thành. Chạy thử đạt mà ô còn trống thì trình vẽ gợi ý điền luôn số khối của lời giải mẫu. |
Bộ hình của hoạt động là bộ mặc định (emoji); chưa chọn được bộ hình riêng như trò chơi nhỏ.
Đăng đòi lời giải mẫu đạt
- Nháp lưu được không cần lời giải mẫu — vẽ dở dang rồi quay lại sau.
- Chuyển trạng thái sang Đã đăng thì lời giải mẫu phải đạt với đúng bản đồ và bộ khối hiện tại; không thì form báo "Hoạt động chỉ đăng được khi có lời giải mẫu đạt…" ở ô cấu hình. Lý do: một level không giải nổi là học viên kẹt ở đó mà không ai biết.
- Mỗi lần Lưu là một lần kiểm lại: lời giải mẫu thua (đâm tường, chưa tới đích…) hay sai cú pháp thì lưu thất bại và báo đúng chỗ, kể cả khi đang Nháp. Sửa bản đồ rồi lưu mà lời giải cũ không còn đạt → phải sửa lời giải trước.
Chạy thử trong form không lưu gì và không đóng dấu — chỉ Lưu mới có hiệu lực. Chạy thử với lời giải thua vẫn phát lại trên lưới để bạn thấy nó thua ở đâu.
Học viên thấy gì, hệ thống ghi gì
- Học viên chỉ nhận bản đồ, bộ khối, giới hạn, gợi ý đầu tiên và khung khởi đầu — lời giải mẫu không bao giờ gửi xuống trình duyệt.
- Mỗi lần bấm Chạy là một lượt làm bài, ghi kết quả, lý do dừng, số bước, số khối và cách nhập (khối hay ngôn ngữ nào). Trần 60 lượt/phút/người.
- Lượt đạt đầu tiên đánh dấu hoạt động hoàn thành (tôn trọng thử thách hoàn thành nếu bài có — khi đó học viên phải làm thử thách trước). Hoàn thành không lùi khi chạy lại lượt thua.
- Tiến độ giữ chương trình lần cuối (để mở lại đúng chỗ đang làm) và chương trình đạt ít khối nhất.
- Trang Xem trước hoạt động (công khai) chỉ hiện bản đồ tĩnh và bảng khối, không chạy được.
Nhờ AI vẽ level
Nút AI soạn nội dung trên trang sửa hoạt động (và lượt AI hoàn thiện nội dung cả khoá) vẽ trọn level: bản đồ, khối, giới hạn, gợi ý, cách nhập và lời giải mẫu — rồi chạy lời giải mẫu trên máy chấm trước khi bạn thấy bản nháp; không đạt thì AI được chỉ lỗi và sửa lại một lần. Áp dụng bản xanh là level đã có dấu kiểm và đăng được ngay. Ngôn ngữ của lời giải (và của học viên) lấy theo ngôn ngữ khoá đang dạy. Chi tiết, kể cả cách ép ngôn ngữ và độ khó: Dùng AI soạn khoá học → Lưới Blockly.
Cho học viên gõ mã
Mục Cách nhập trong trình vẽ: tick Gõ mã, chọn ngôn ngữ (JavaScript, Python, Java, C++, C# — bỏ trống là cả năm) và cách nhập mặc định. Cú pháp của ngôn ngữ thu nhỏ và bảng đối chiếu khối ↔ lệnh: Trò chơi nhỏ → Cho người chơi gõ mã. Lời giải mẫu của bạn soạn bằng khối hay mã đều được, bất kể cách nhập cho học viên.
Nhập / xuất khoá học
Bản sao lưu khoá học mang theo config, starter và par_blocks của hoạt động. Dấu "đã kiểm" không đi theo: bản nhập tự kiểm lại lời giải mẫu lúc nhập và đóng dấu nếu đạt.
Loại "Blockly Game" cũ
Trước đây loại này chấm trong trình duyệt bằng cấu hình blocks/check_config. Từ bản này nó được thay hoàn toàn bằng Lưới Blockly chấm ở máy chủ; các hoạt động cũ (nếu có) phải soạn lại bằng trình vẽ.