Tin học online lớp 3–4–5DucIT.vn · thầy Đức
🏆 Học thử miễn phí – một bài trong phần tặng kèm Ôn thi Tin học trẻ bảng D1 của lớp Tin học online lớp 3–4–5. Phần này có 16 bài: 9 kỹ năng hay gặp trong đề, 4 đề luyện theo dạng đề thật có đáp án và barem, 2 bài đi thi thật; đề luyện con nộp được Thầy Đức AI chấm ngay và chỉ cách sửa. Nằm sẵn trong học phí khoá Tin học online, cùng lộ trình 24 buổi đúng lớp của con. Con đã biết Scratch, chỉ cần ôn thi thì có gói riêng 850.000đ / 3 tháng. Đăng ký khoá Tin học online · 1.290.000đChỉ ôn thi D1 · 850.000đ

🏆 Ô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ỏ

🏆 Ôn thi Tin học trẻ bảng D1Mức: Vừa⏱ 45–60 phút

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:

  1. Quả dính theo chuột khi con giữ chuột.
  2. Quả không bị giật về giữa con trỏ khi vừa bấm vào.
  3. Buông chuột ra rồi mới xem quả rơi vào giỏ nào.
  4. 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

⬇ Tải file mồi (.sb3)
  1. Mở scratch.mit.edu → bấm Sáng tạo (hoặc mở Scratch trên máy).
  2. 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.
  3. 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 đó:

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

💡 Đâ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:

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)
end

Khối trang phục [số v] ở cuối nhóm Hiển thị.

Hai ý quan trọng ở nhánh nếu không thì:

  1. 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ì.
  2. 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]
end

Cuố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

⬇ Tải đáp án (.sb3)

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

  1. Vì sao phải nhớ "dx, dy" khi kéo quả?
  2. 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?
  3. 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đ