Hướng Dẫn Lập Trình Game “Let Lions Go Home” Bằng Scratch
Giới Thiệu!
Chào mừng bạn đến với chuyên mục lập trình sáng tạo bằng Scratch!
Dự án game “Let Lions Go Home” (Đưa Sư Tử Về Nhà) này chính là bài học hoàn hảo để nâng cao kỹ năng tư duy logic và sử dụng dữ liệu trong Scratch.
Trong game này, chúng ta sẽ học cách quản lý trạng thái của 4 chú sư tử và 4 chuồng trại một cách chuyên nghiệp bằng cách sử dụng các công cụ mạnh mẽ như Biến (Variables) và Danh sách (Lists). Đây là kỹ thuật cốt lõi giúp các trò chơi của bạn trở nên phức tạp và thú vị hơn!
Mục Tiêu Lập Trình Hôm Nay
- Thực hành khởi tạo trạng thái game bằng cách sử dụng Danh sách.
- Lập trình logic di chuyển ưu tiên (Sư tử chọn chuồng trống đầu tiên).
- Sử dụng Biến và Danh sách để kiểm tra điều kiện thắng/thua.
Bước 1: Chuẩn Bị Dữ Liệu và Khởi Tạo Game (Nhân vật Stage)
Phần quan trọng nhất là thiết lập bộ nhớ của trò chơi (các biến và danh sách).
1. Tạo Biến và Danh Sách
Bạn cần tạo 1 Biến và 4 Danh sách (List) cho nhân vật Stage:
| Tên | Loại | Mục đích |
số lượng đã vô chuồng | Biến | Đếm tổng số sư tử đã vào chuồng (tối đa là 4). |
Đã vô chuồng | Danh sách (4 phần tử) | Theo dõi trạng thái của từng sư tử. 1 = đã vào, 0 = chưa vào. |
Vị trí đã kín | Danh sách (4 phần tử) | Theo dõi trạng thái của từng chuồng. 1 = đã có sư tử, 0 = đang trống. |
Tọa độ x | Danh sách (4 phần tử) | Lưu trữ tọa độ X của 4 vị trí chuồng đích. |
Tọa độ y | Danh sách (4 phần tử) | Lưu trữ tọa độ Y của 4 vị trí chuồng đích. |
2. Khối Lệnh Khởi Tạo (Khi bấm vào lá cờ xanh)
Đây là nơi game được thiết lập lại:
| Khối lệnh chính | Ý nghĩa |
Bật video | Kích hoạt cảm biến video. |
Đặt [số lượng đã vô chuồng] thành 0 | Đặt lại biến đếm. |
Xóa tất cả khỏi [Đã vô chuồng] & Lặp lại 4 lần: thêm 0 vào [Đã vô chuồng] | Khởi tạo lại trạng thái 4 sư tử (chưa vào chuồng). |
Xóa tất cả khỏi [Vị trí đã kín] & Lặp lại 4 lần: thêm 0 vào [Vị trí đã kín] | Khởi tạo lại trạng thái 4 chuồng (đều đang trống). |
Thêm [-44], [58], [-44], [58] vào [Tọa độ x] | Đặt 4 tọa độ X đích. |
Thêm [34], [34], [-40], [-40] vào [Tọa độ y] | Đặt 4 tọa độ Y đích. |
Bước 2: Lập Trình Logic Di Chuyển Sư Tử (Nhân vật Lion1)
Logic cho Lion1 sẽ quyết định: Nếu Lion1 chưa vào chuồng, nó sẽ tìm chuồng trống ưu tiên để vào.
1. Điều kiện Kích hoạt và Rào cản
Bắt đầu bằng khối khi bấm vào nhân vật này. Điều kiện rào cản là Vị trí đã kín[1] = 0 (ngăn không cho sư tử di chuyển nếu nó đã ở trong chuồng).
2. Logic Ưu tiên (Ví dụ: Lion1)
Logic của bạn cho Lion1 là ưu tiên vào vị trí đích số 3 trước, sau đó mới đến vị trí đích số 1.Đoạn mã
khi bấm vào nhân vật này
nếu <phần tử 1 của [Vị trí đã kín] = 0> thì
nếu <phần tử 3 của [Vị trí đã kín] = 0> thì
// Ưu tiên 1: Chuồng 3 (Tọa độ Index 3)
lướt 1 giây tới x: (phần tử 3 của [Tọa độ x]) y: (phần tử 3 của [Tọa độ y])
thay thế phần tử 3 của [Vị trí đã kín] bằng 1 // Đánh dấu Chuồng 3 đã kín
thay thế phần tử 1 của [Đã vô chuồng] bằng 1 // Đánh dấu Sư tử 1 đã vào
thay đổi [số lượng đã vô chuồng] một lượng 1
phát tin [Đóng cửa 1]
nếu không
// Ưu tiên 2: Chuồng 1 (Tọa độ Index 1)
lướt 1 giây tới x: (phần tử 1 của [Tọa độ x]) y: (phần tử 1 của [Tọa độ y])
thay thế phần tử 1 của [Vị trí đã kín] bằng 1 // Đánh dấu Chuồng 1 đã kín
thay thế phần tử 1 của [Đã vô chuồng] bằng 1 // Đánh dấu Sư tử 1 đã vào
thay đổi [số lượng đã vô chuồng] một lượng 1
phát tin [Đóng cửa 1]
Mẹo Chuyên Gia: Các nhân vật Lion2, Lion3, Lion4 sẽ có logic tương tự, nhưng sẽ ưu tiên các vị trí đích khác nhau. Đảm bảo bạn thay đổi chỉ số (index) trong các khối phần tử [index] của... và thay thế phần tử [index] của... cho phù hợp với từng chú sư tử.
Bước 3: Lập Trình Cánh Cửa Đóng (Nhân vật Cửa 1 – Cửa 4)
Cánh cửa sẽ đóng lại bằng chuyển động xoay 90 độ khi sư tử vào chuồng.
Mã Lệnh Đóng Cửa (Cửa 1):
| Khối lệnh | Ý nghĩa |
Khi nhận tin [Đóng cửa 1] | Sư tử đã vào chuồng và gửi tín hiệu đóng. |
lặp lại 30 lần | Lặp lại hành động xoay để tạo chuyển động mượt. |
quay 3 độ | Xoay 3 độ mỗi lần lặp (Tổng cộng 30 * 3 độ = 90 độ). |
Bước 4: Kiểm Tra Điều Kiện Thắng/Thua (Nhân vật Stage và Kết quả)
1. Điều kiện Thắng (Stage)
Khi bấm vào lá cờ xanh:liên tục:nếu <số lượng đã vô chuồng = 4> thì:phát tin [Hoàn thành Game].
2. Điều kiện Thua (Stage)
Logic thua trong dự án này khá phức tạp (kiểm tra trạng thái của số lượng đã vô chuồng=3 kết hợp với các danh sách).
Phân tích logic thua của bạn (Khi số lượng đã vô chuồng = 3):
Logic đang kiểm tra xem có chuồng nào Đã vô chuồng = 0 (chuồng trống) nhưng lại thỏa mãn điều kiện Vị trí đã kín = 1 (vị trí đã được sư tử khác điền vào) hay không. Về cơ bản, nó kiểm tra các trường hợp còn lại để đảm bảo nếu chỉ còn 1 chuồng trống duy nhất nhưng nó lại bị đánh dấu là đã kín, thì game kết thúc.
Mặc dù logic này hơi khó hiểu, nó là cốt lõi để ngăn người chơi “click” vào một sư tử không còn vị trí đích hợp lệ để vào.
Khi bấm vào lá cờ xanh:liên tục:nếu <số lượng đã vô chuồng = 3> và <[Logic phức tạp] thì>:phát tin [Game over].
3. Hiển Thị Kết Quả (Kết quả Sprite)
Khi nhận tin [Hoàn thành Game]: Hiển thị trang phục “chúc mừng” ở lớp trên cùng.Khi nhận tin [Game over]: Hiển thị trang phục “game over” và có thể thêm hiệu ứngghost(bóng ma) để làm mờ.





