Cùng bé lập trình Scratch

Trò chơi "Ráp hình" (bài 40)

24/03/2014 17:49

Sau khi có đủ 16 mẩu hình cắt ra từ hình gấu Pooh, bạn mở cửa sổ Scratch, bắt đầu thực hiện trò chơi ráp hình.

Ta cần lập trình để Scratch tự động xáo trộn vị trí các hình mỗi khi khởi động trò chơi (khi gõ phím Enter hoặc bấm nút "cờ xanh"). Việc "nắm kéo" các mẩu hình để xếp vào đúng vị trí rất dễ dàng vì mỗi mẩu hình sẽ là một nhân vật trong Scratch (bạn có thể dùng chuột để "nắm kéo" bất cứ nhân vật nào).

Bạn hãy đề nghị bé đưa mẩu hình số 1 vào Scratch, trở thành nhân vật đầu tiên (Nhân vật1). Tiếp theo, bạn cần xác định tâm của Nhân vật1 ở góc trên, bên trái mẩu hình. Cụ thể, bạn chọn mục Hình dạng, bấm nút Chỉnh sửa. Trong cửa sổ Môi trường vẽ, bạn bấm nút Đặt tâm hình dạng, kéo giao điểm của hai đường "dây tóc" đến góc trên, bên trái của mẩu hình. Bạn nên dùng "kính lúp" để lấy tầm nhìn gần, nhằm đặt tâm chính xác. Xong, bạn bấm OK.

Ta sẽ lập trình hoàn chỉnh cho Nhân vật1 trước khi lần lượt tạo thêm các nhân vật ứng với các mẩu hình tiếp theo vì kịch bản của các mẩu hình hoàn toàn tương tự.

Giống như trong trò chơi "Đua ngựa", mỗi mẩu hình cần có biến dành riêng để ghi nhớ số thứ tự của nó. Bạn đề nghị bé tạo biến so (tức "số") dùng riêng cho Nhân vật1: chọn Nhân vật1, chọn khung chứa thẻ Các biến, bấm nút Tạo một biến, gõ tên biến là so trong cửa sổ Tên biến, chọn mục Chỉ đối với nhân vật này, rồi bấm OK.

Để vị trí của các nhân vật (các mẩu hình) thay đổi ngẫu nhiên khi trò chơi bắt đầu, trước hết ta ghi ngẫu nhiên số thứ tự của các nhân vật vào một danh sách. Nói khác đi, ta cần tạo ra một danh sách "lộn xộn" gồm các số thứ tự từ 1 đến 16.

Bạn hãy hướng dẫn bé tạo ra danh sách như sau: trong khung chứa thẻ Các biến, bé bấm nút Tạo một danh sách, gõ tên ds (tức "danh sách") trong cửa sổ Tên danh sách và bấm OK (danh sách mang tên ds được dùng chung cho mọi nhân vật). Danh sách lập tức xuất hiện trên sân khấu. Khi nào muốn danh sách trên sân khấu biến đi, bạn tắt ô duyệt ds trong khung chứa thẻ Các biến.

Ta nên giao cho Sân khấu công việc "quản lý" danh sách các nhân vật. Bạn chuyển qua khung kịch bản của Sân khấu (chọn Sân khấu trong khung nhân vật, rồi chọn mục Kịch bản) và để bé ráp cụm thẻ lệnh như hình sau.

Kịch bản của Sân khấu trình bày ở hình trên có lẽ làm bạn thắc mắc: "Vì sao lại bắt đầu trò chơi bằng lệnh xóa toàn bộ danh sách?". Điều này bảo đảm danh sách hoàn toàn trống trơn khi trò chơi bắt đầu vì trong lần chơi sau nội dung danh sách của lần chơi trước vẫn được lưu giữ. Nếu danh sách không có phần tử nào, thẻ lệnh Xóa tất cả của ds không có tác dụng.

"Tại sao lại ghi số thứ tự là 0 vào vị trí đầu tiên của danh sách?". Ta phải thực hiện điều này vì danh sách trong Scratch có tính chất như sau: chỉ cho phép ghi ngẫu nhiên vào danh sách nếu danh sách đó đã có ít nhất một phần tử. Sau khi ghi số thứ tự 0 vào danh sách, ta tiếp tục ghi các số thứ tự từ 1 đến 16 vào danh sách bằng thẻ lệnh Chèn. Bạn chú ý: vị trí ghi số thứ tự trong danh sách là bất kỳ. Đó chính là yếu tố tạo ra sự ngẫu nhiên.

Sau khi lập danh sách các số thứ tự, ta cho Sân khấu phát ra thông báo sap (tức "sắp xếp") để các nhân vật "vào vị trí". Sân khấu chỉ "ra lệnh" thôi, hành động cụ thể của mỗi nhân vật khi nhận thông báo sẽ được diễn đạt trong kịch bản của nó.

Bạn hãy gõ phím Enter để chạy thử chương trình, xem danh sách được hình thành ra sao. Để bé có thể quan sát toàn bộ danh sách, bạn trỏ vào góc dưới, bên phải khung danh sách, kéo khung danh sách dãn ra như hình sau.

Các số thứ tự từ 1 đến 16 được đưa vào danh sách bằng thẻ lệnh Chèn, đẩy phần tử đầu tiên (số thứ tự 0) đến vị trí cuối danh sách. Mỗi lần gõ phím Enter để chạy chương trình, bạn lại thấy nội dung danh sách thay đổi ngẫu nhiên, các số thứ tự từ 1 đến 16 được ghi lộn xộn ở các vị trí từ 1 đến 16 trong danh sách. Riêng số thứ tự 0 luôn ở vị trí 17. Ta sẽ không cần đến số 0 đó.

NGỌC GIAO

Bài liên quan:
Ý kiến bạn đọc (0)
Tên   Email

Lên đầu trang