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

Trò chơi "Nuôi cá cảnh" (bài 24)

28/10/2013 17:52

Bạn và bé có vui thích với việc cho "cá ảo" ăn không? Để việc cho cá ăn có ý nghĩa nhất định, ta có thể... bày trò như sau: cứ sau 10 giây, nếu cá không được ăn, nó sẽ bơi chậm lại.

Cứ thế, một lúc nào đó, cá sẽ lừ đừ đứng yên, chỉ còn phe phẩy đuôi thôi. Trong tình trạng như vậy, nếu bạn cho cá ăn, nó sẽ "vui vẻ" trở lại. Khi chăm sóc một đàn cá, bạn sẽ phải cho cá ăn đều khắp, nếu không, số cá lừ đừ sẽ ngày càng tăng!

Trước hết, bạn hãy mở tập tin mà trong đó chỉ có một con cá. Trong kịch bản của cá, bạn chú ý rằng biến buoc có thể lấy trị số ngẫu nhiên trong khoảng từ 0 đến 5 do thẻ lệnh Đặt buoc là lấy ngẫu nhiên trong khoảng 0 tới 5. Nếu bạn tăng trị số 5 đó thành 8 hoặc 9 chẳng hạn, nhìn chung cá sẽ bơi nhanh hơn. Ngược lại, nếu bạn giảm trị số 5 xuống, chỉ còn 3 hoặc 2, cá sẽ bơi chậm lại. Sửa luôn trị số 5 thành 0, bạn thấy cá đứng yên, chỉ quay qua, quay lại tại chỗ thôi.

Như vậy, thay vì dùng trị số 5 cụ thể trong thẻ Lấy ngẫu nhiên, bạn hãy dùng một biến tại vị trí đó, đặt tên là suc (sức) chẳng hạn. Chỉ cần tăng giảm biến suc, bạn làm cho hành vi của cá thay đổi rõ rệt, bơi nháo nhào hoặc bơi thong thả.

Để tạo ra biến suc, bạn chuyển qua khung chứa thẻ Các biến, bấm nút Tạo một biến. Trong cửa sổ nhỏ vừa hiện ra, bạn gõ suc vào ô Tên biến, chọn mục Chỉ đối với nhân vật này, rồi bấm OK. Bằng cách như vậy, bạn tạo ra biến suc chỉ dành riêng cho một con cá. Bạn hãy đặt câu hỏi, xem bé có biết tại sao cần làm như vậy không.

Trong khung chứa thẻ Các biến có thêm biến suc. Như thường lệ, ô duyệt ứng với biến mới mặc nhiên được "bật". Điều này nghĩa là trị số của biến suc được hiển thị ở góc sân khấu. Tạm thời, bạn cứ để vậy, nhằm dễ dàng theo dõi "tình trạng sức khỏe" của cá. Muốn trị số của biến suc thôi hiển thị ở góc sân khấu, bạn "tắt" ô duyệt ứng với biến suc.

Bạn kéo biến suc trong khung chứa thẻ Các biến, đặt vào ô có số 5 trong thẻ lệnh Đặt buoc là lấy ngẫu nhiên trong khoảng 0 tới 5. Thẻ lệnh ấy trở thành Đặt buoc là lấy ngẫu nhiên trong khoảng 0 tới suc. Nhờ vậy, trị ngẫu nhiên lớn nhất của biến buoc không còn là 5, mà được quy định bởi biến suc.

Việc tiếp theo là cho biến suc trị số thích hợp tùy theo trường hợp. Bạn hãy lắp ráp cụm thẻ mới như hình sau để diễn đạt những gì xảy ra với biến suc từ khi phím "cờ xanh" được ấn.

Quan sát cụm thẻ ở hình trên, bạn thấy khi chương trình bắt đầu, biến suc được nhận trị số 5, làm cho cá bơi bình thường. Ngay sau đó, ta bắt đầu dùng "đồng hồ bấm giờ" trong Scratch. Muốn "bấm đồng hồ" để bắt đầu tính số giây trôi qua, bạn dùng thẻ lệnh Đặt lại đồng hồ bấm giờ trong khung chứa thẻ Giác quan. Sau việc bấm đồng hồ, ta cho lặp đi lặp lại thao tác như sau: nếu số giây ở đồng hồ lớn hơn 10 (hơn 10 giây trôi qua) thì bấm đồng hồ để tính lại thời gian và cho trị số của biến suc giảm đi 1. Để cho chu đáo, trước khi giảm trị số của biến suc, bạn cần đặt điều kiện: trị số của biến suc phải lớn hơn 0 (nếu trị số của biến suc là 0 thì thôi, khỏi cần giảm gì nữa).

Cụm thẻ ở hình trên tạo ra sự suy giảm sức khỏe "tự nhiên" của cá: cứ sau 10 giây, biến suc lại giảm đi 1. Có lẽ bạn thắc mắc: "Vậy biến suc tăng lên vào lúc nào?". Bạn thử hỏi bé câu này, có thể bé biết ngay câu trả lời: biến suc cần tăng lên sau khi cá được ăn. Nhìn lại kịch bản của cá, bé sẽ nhận ra trường hợp cá được ăn. Đó chính là lúc cá phát ra thông báo xong. Rõ ràng, bạn cần thêm thẻ lệnh như hình sau. Gắn thẻ lệnh Đặt suc là 5 vào thẻ lệnh Thông báo xong, bạn có thể yên tâm rằng sau khi đớp được thức ăn, cá sẽ "nhí nhảnh" trở lại.

Bạn hãy đề nghị bé gõ phím Enter để kiểm tra. Nếu tinh ý, bé sẽ nhận ra rằng khi cá đứng yên, nó vẫn cứ bồn chồn thế nào ấy! Đó là do cá vẫn chịu tác động của "phép quay ngẫu nhiên". Muốn cho cá bớt "quẫy" khi đứng yên, cần giảm dần trị số ngẫu nhiên của góc quay sau 10 giây. Bạn thử hỏi bé cách giải quyết vấn đề này xem sao. Cách đơn giản nhất là chỉnh sửa thẻ lệnh Đặt goc là lấy ngẫu nhiên trong khoảng -5 tới 5 trở thành Đặt goc là lấy ngẫu nhiên trong khoảng 0 - suc tới suc. Khi trị số của biến suc giảm xuống 3 chẳng hạn, góc quay sẽ có trị số ngẫu nhiên từ -3 đến 3.

Chỉ khi nào đã hài lòng với kịch bản của một con cá, bạn mới nên "nhân giống" để có được đàn cá.

NGỌC GIAO

Ý kiến bạn đọc (0)
Tên   Email

Lên đầu trang