← Tất cả bài hướng dẫn
Luyện tập

Luyện tập: Game Hứng Táo

Thực hành biến số, vòng lặp, điều kiện và phát hiện va chạm qua trò chơi hứng táo.

Nội dung đề bài

Điều khiển giỏ bằng phím trái/phải để hứng táo rơi. Mỗi quả táo được hứng cộng 1 điểm; táo chạm đất làm mất 1 mạng. Bắt đầu với 3 mạng và kết thúc khi số mạng bằng 0.

Hình minh họa khối lệnh Scratch

Các khối Scratch minh họa vòng lặp táo rơi và cập nhật điểm
SÂN KHẤU
Khi bấm cờ xanh
  đặt [Điểm] thành 0
  đặt [Mạng] thành 3
  gửi tin [Bắt đầu]

GIỎ
Khi nhận [Bắt đầu]
  liên tục
    nếu phím phải được nhấn → thay đổi x một lượng 8
    nếu phím trái được nhấn → thay đổi x một lượng -8

TÁO
Khi nhận [Bắt đầu]
  liên tục
    đi tới x ngẫu nhiên, y 170
    lặp đến khi chạm Giỏ hoặc y < -160
      thay đổi y một lượng -5
      đợi 0.03 giây
    nếu chạm Giỏ → thay đổi [Điểm] một lượng 1
    nếu không → thay đổi [Mạng] một lượng -1
    nếu [Mạng] = 0 → gửi tin [Kết thúc]

Thuật toán từng bước

  1. 1Khởi tạo Điểm = 0 và Mạng = 3 đúng một lần khi bấm cờ xanh.
  2. 2Giỏ đọc phím liên tục, thay đổi tọa độ x theo hướng tương ứng và giới hạn chuyển động trong sân khấu.
  3. 3Táo bắt đầu ở vị trí x ngẫu nhiên phía trên. Vòng lặp làm táo rơi từng bước cho tới khi chạm giỏ hoặc chạm đáy.
  4. 4Sau khi vòng lặp kết thúc, chỉ xử lý một kết quả: chạm giỏ thì cộng điểm; chạm đáy thì trừ mạng.
  5. 5Khi mạng bằng 0, gửi thông điệp kết thúc để sân khấu hiển thị thông báo và dừng trò chơi.

Giải thích chi tiết

Tách chương trình thành ba vai trò giúp tìm lỗi dễ hơn: Sân khấu khởi tạo và điều phối, Giỏ nhận bàn phím, Táo xử lý lượt rơi. Điểm quan trọng là kiểm tra va chạm sau vòng lặp rơi. Nếu đặt lệnh cộng điểm bên trong vòng lặp, một lần chạm có thể được tính nhiều lần. Mỗi lượt táo phải kết thúc bằng đúng một trong hai nhánh: được hứng hoặc bị bỏ lỡ. Hãy thử các tình huống: bắt đầu lại phải đặt Điểm về 0 và Mạng về 3; hứng một quả chỉ cộng đúng 1; bỏ lỡ một quả chỉ trừ đúng 1; giỏ không được đi ra ngoài sân khấu.