🏆 Ôn thi Tin học trẻ bảng D1
Kỹ năng 6 – Kéo thả bằng chuột: bỏ quả vào đúng giỏ
Cần học trước: Bài 10 (lặp), Bài 19 (biến), Kỹ năng 1
Bài này dùng: kéo thả bằng vòng lặp "đi tới con trỏ chuột", giữ khoảng cách giữa chuột và nhân vật để hình không bị giật, kiểm tra sau khi buông chuột, thả sai thì lướt về chỗ cũ, trang phục số mấy để biết loại quả, biến đang chơi
1. Vì sao phải học kỹ năng này
Đề sơ khảo Hà Nội 2026 viết:
Người chơi dùng chuột ấn và giữ để kéo thả rác vào đúng thùng.
Kéo thả là cách chơi rất hay gặp trong đề D1, vì trò chơi cho học sinh tiểu học thường là: xếp, ghép, phân loại. Đề chỉ ghi một dòng, nhưng muốn làm cho đúng và đẹp thì có 4 việc:
- Quả dính theo chuột khi con giữ chuột.
- Quả không bị giật về giữa con trỏ khi vừa bấm vào.
- Buông chuột ra rồi mới xem quả rơi vào giỏ nào.
- Thả sai hoặc thả ra ngoài thì quả tự về chỗ cũ.
2. Chơi thử trước
Chạy ngay trên trang này, không cần mở Scratch. Bấm lá cờ xanh để bắt đầu.
Kéo quả màu vàng vào giỏ vàng, quả màu đỏ vào giỏ đỏ. Thử cố tình thả sai giỏ, rồi thử thả ra giữa sân khấu. Quả làm gì?
3. Bắt tay vào làm
- Mở scratch.mit.edu → bấm Sáng tạo (hoặc mở Scratch trên máy).
- Bấm Tập tin → Tải lên từ máy tính của bạn → chọn file vừa tải.
- Làm theo từng bước bên dưới. Xong bấm Tập tin → Lưu về máy tính.
File mồi có phông nền, 2 giỏ, và nhân vật Quả với 6 trang phục. Thứ tự trang phục rất quan trọng:
| Số | Trang phục | Nhóm |
|---|---|---|
| 1 | chuối | vàng |
| 2 | xoài | vàng |
| 3 | dứa | vàng |
| 4 | táo | đỏ |
| 5 | dâu tây | đỏ |
| 6 | chôm chôm | đỏ |
3 quả vàng đứng trước, 3 quả đỏ đứng sau. Nhờ vậy chỉ cần nhìn số trang phục: nhỏ hơn 4 là quả vàng, lớn hơn 3 là quả đỏ.
4. Làm từng bước
Bước 1 – Biến
Tạo 2 biến Cho tất cả các nhân vật: điểm và đang chơi.
Chọn nhân vật Quả, tạo thêm 2 biến Chỉ cho nhân vật này: dx và dy. Hai biến này dùng ở Bước 4.
Bước 2 – Bắt đầu và ra quả mới
Khi bấm vào @greenFlag đặt [điểm v] thành [0] đặt [đang chơi v] thành [1] phát tin [quả mới v]
khi nhận [quả mới v] chuyển sang trang phục (lấy ngẫu nhiên từ (1) đến (6)) đi tới điểm x: (0) y: (90) hiện
Mỗi lần nhận tin quả mới, nhân vật đổi sang một quả ngẫu nhiên và đứng ở chỗ xuất phát (0, 90).
💡 Vì sao dùng phát tin quả mới thay vì viết luôn vào kịch bản cờ xanh? Vì lát nữa, cứ xếp đúng một quả là phải ra quả mới. Có tin quả mới rồi thì chỉ cần phát tin lại, không phải chép các khối đó thêm lần nữa.
Bước 3 – Kéo thả kiểu đơn giản nhất
Thử trước cách đơn giản này để hiểu ý tưởng:
Khi bấm vào nhân vật này
lặp lại cho đến khi <không phải <chuột được nhấn?>>
đi tới [con trỏ chuột v]
endĐọc là: bấm vào quả, rồi chừng nào còn giữ chuột, quả cứ chạy tới chỗ con trỏ chuột. Buông chuột thì vòng lặp dừng, quả đứng lại.
Khối chuột được nhấn? ở nhóm Cảm biến, khối không phải ở nhóm Các phép toán.
Bấm cờ xanh và kéo thử. Con sẽ thấy một điều khó chịu: con bấm vào mép quả, nhưng quả nhảy giật cho tâm quả trùng với con trỏ.
Bước 4 – Kéo mượt: giữ khoảng cách giữa chuột và quả
Lấy ví dụ: tâm quả ở x = 0. Con bấm vào mép phải, chuột ở x = 10. Vậy chuột đang lệch 10 bước so với tâm quả.
Muốn quả không giật, mình ghi nhớ khoảng lệch lúc vừa bấm. Khi kéo, đặt quả cách chuột đúng khoảng đó:
- dx = tọa độ x của quả − tọa độ x của chuột
- dy = tọa độ y của quả − tọa độ y của chuột
Kéo thử quả táo ở cả hai kiểu, nhớ bấm vào mép quả chứ không bấm giữa:
Thay khối đi tới con trỏ chuột bằng đi tới điểm x: (chuột x + dx) y: (chuột y + dy):
Khi bấm vào nhân vật này
đặt [dx v] thành ((tọa độ x) - (tọa độ x con trỏ chuột))
đặt [dy v] thành ((tọa độ y) - (tọa độ y con trỏ chuột))
đi tới lớp [phía trên cùng v]
lặp lại cho đến khi <không phải <chuột được nhấn?>>
đi tới điểm x: ((tọa độ x con trỏ chuột) + (dx)) y: ((tọa độ y con trỏ chuột) + (dy))
end- tọa độ x con trỏ chuột ở nhóm Cảm biến.
- đi tới lớp phía trên cùng: quả đang kéo nổi lên trên giỏ, không bị giỏ che.
💡 Đây chính là cách kéo thả trong mọi trò chơi trên máy tính, điện thoại. Con kéo một biểu tượng trên màn hình điện thoại, nó cũng không nhảy giật về giữa ngón tay.
Bước 5 – Buông chuột rồi mới chấm
Ngay sau vòng lặp (khi con đã buông chuột), xem quả đang chạm giỏ nào:
- Chạm giỏ vàng mà quả là quả vàng (số trang phục < 4): đúng.
- Chạm giỏ đỏ mà quả là quả đỏ (số trang phục > 3): đúng.
- Còn lại: sai, hoặc thả ra ngoài.
Ghép 2 trường hợp đúng bằng hoặc:
nếu <<<đang chạm [Giỏ vàng v]?> và <(trang phục [số v]) \< [4]>> hoặc <<đang chạm [Giỏ đỏ v]?> và <(trang phục [số v]) \> [3]>>> thì
thay đổi [điểm v] một lượng (1)
bắt đầu âm thanh [ting v]
phát tin [quả mới v]
nếu không thì
nếu <<đang chạm [Giỏ vàng v]?> hoặc <đang chạm [Giỏ đỏ v]?>> thì
bắt đầu âm thanh [bụp v]
nói [Sai giỏ rồi!] trong (1) giây
end
lướt trong (0.3) giây tới điểm x: (0) y: (90)
endKhối trang phục [số v] ở cuối nhóm Hiển thị.
Hai ý quan trọng ở nhánh nếu không thì:
- Chạm một giỏ (mà không đúng) tức là thả sai giỏ: kêu "bụp" và nói "Sai giỏ rồi!". Không chạm giỏ nào tức là thả ra ngoài: không cần nói gì.
- Cả hai trường hợp quả đều lướt về chỗ cũ (0, 90). Dùng lướt thay cho đi tới để người chơi nhìn thấy quả đi về, trông mượt hơn hẳn.
⚠️ Lỗi hay gặp: đặt khối kiểm tra giỏ bên trong vòng lặp kéo. Khi đó quả vừa lướt qua giỏ đỏ trên đường tới giỏ vàng là đã bị chấm sai. Luôn chấm sau khi buông chuột.
Bước 6 – Đủ 10 quả thì thắng
Sửa nhánh đúng: thêm 1 điểm xong, nếu điểm = 10 thì kết thúc, nếu chưa thì ra quả mới.
thay đổi [điểm v] một lượng (1)
bắt đầu âm thanh [ting v]
nếu <(điểm) = [10]> thì
đặt [đang chơi v] thành [0]
đi tới điểm x: (0) y: (90)
nói [Con xếp đúng 10 quả rồi! Giỏi quá!]::looks
nếu không thì
phát tin [quả mới v]
endCuối cùng, bọc cả kịch bản bấm vào nhân vật trong nếu đang chơi = 1 thì. Thắng rồi thì không kéo được nữa.
💡 Sao không dùng dừng lại tất cả? Vì khối đó xoá luôn câu "Giỏi quá!" đang nói. Dùng biến đang chơi thì câu khen vẫn còn trên màn hình.
5. Đáp án
Con đã thử tự làm chưa? Bấm để xem đáp án đầy đủ
Quả
Khi bấm vào @greenFlag đặt [điểm v] thành [0] đặt [đang chơi v] thành [1] phát tin [quả mới v]
khi nhận [quả mới v] chuyển sang trang phục (lấy ngẫu nhiên từ (1) đến (6)) đi tới điểm x: (0) y: (90) hiện
Khi bấm vào nhân vật này
nếu <(đang chơi) = [1]> thì
đặt [dx v] thành ((tọa độ x) - (tọa độ x con trỏ chuột))
đặt [dy v] thành ((tọa độ y) - (tọa độ y con trỏ chuột))
đi tới lớp [phía trên cùng v]
lặp lại cho đến khi <không phải <chuột được nhấn?>>
đi tới điểm x: ((tọa độ x con trỏ chuột) + (dx)) y: ((tọa độ y con trỏ chuột) + (dy))
end
nếu <<<đang chạm [Giỏ vàng v]?> và <(trang phục [số v]) \< [4]>> hoặc <<đang chạm [Giỏ đỏ v]?> và <(trang phục [số v]) \> [3]>>> thì
thay đổi [điểm v] một lượng (1)
bắt đầu âm thanh [ting v]
nếu <(điểm) = [10]> thì
đặt [đang chơi v] thành [0]
đi tới điểm x: (0) y: (90)
nói [Con xếp đúng 10 quả rồi! Giỏi quá!]::looks
nếu không thì
phát tin [quả mới v]
end
nếu không thì
nếu <<đang chạm [Giỏ vàng v]?> hoặc <đang chạm [Giỏ đỏ v]?>> thì
bắt đầu âm thanh [bụp v]
nói [Sai giỏ rồi!] trong (1) giây
end
lướt trong (0.3) giây tới điểm x: (0) y: (90)
end
end
6. Tự kiểm tra trước khi bấm "Xong bài này"
7. Thử thách nâng cao
⭐ Thả sai bị trừ điểm
Thả sai giỏ thì trừ 1 điểm, nhưng điểm không bao giờ âm.
Gợi ý
Trong nhánh "sai giỏ", thêm nếu điểm > 0 thì thay đổi điểm một lượng −1.
⭐⭐ Giỏ lắc đầu
Thả sai thì giỏ đó lắc qua lắc lại.
Gợi ý
Quả phát tin [giỏ lắc v]. Mỗi giỏ: khi nhận giỏ lắc → nếu đang chạm Quả thì lặp lại 3 lần: xoay phải 10 độ, đợi 0.05 giây, xoay trái 20 độ, đợi 0.05 giây, xoay phải 10 độ.
⭐⭐⭐ Kéo thả kiểu có sẵn của Scratch
Scratch có khối đặt kiểu kéo thả [có thể kéo v] ở nhóm Cảm biến. Thử dùng khối này thay cho vòng lặp. Con sẽ thấy nó kéo được, nhưng không biết lúc nào con buông chuột để chấm điểm. Con nghĩ cách khắc phục, rồi so sánh: cách nào hợp với đề thi hơn? Vì sao?
8. Ba mẹ hỏi con
- Vì sao phải nhớ "dx, dy" khi kéo quả?
- Phải buông chuột ra rồi mới chấm đúng sai. Nếu chấm khi đang kéo thì chuyện gì xảy ra?
- Làm sao máy biết quả đang kéo là quả vàng hay quả đỏ?
Nguồn đề: Bài kỹ năng của DucIT.vn, theo dạng đề Tin học trẻ bảng D1 năm 2026 (đề "Làm xanh môi trường": người chơi ấn giữ chuột để kéo thả rác vào đúng thùng)
Con làm được bài này rồi?
Phần Ôn thi bảng D1 trong lớp còn 8 kỹ năng khác (ba màn hình, tự vẽ đồ hoạ, nhiều nhân vật chạy cùng lúc, đèn và đồng hồ đếm ngược, danh sách từ tệp, bản sao, cấp độ…), 4 đề luyện trọn vẹn theo dạng đề thật có đáp án và barem tự chấm, cách chia 150 phút cho đội 2 bạn và trình bày sản phẩm trước giám khảo. Con nên học phần này sau khi xong phần Scratch cơ bản. Ba mẹ nhận báo cáo mỗi Chủ nhật. Học phí 1.290.000đ trả một lần, con học thử cả tuần đầu, không hợp thì hoàn 100% trong 7 ngày.
Đăng ký cho conXem lộ trình và phần tặng kèmChỉ ôn thi D1 · 850.000đ