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

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

15/10/2013 16:19

Đối với người nuôi cá cảnh, ngoài việc ngắm cá bơi, cho cá ăn cũng là điều thú vị. Đối với "cá đồ chơi" mà bạn đang có, bạn vẫn có thể cho cá ăn như thường!

Ta hãy hình dung cách cho cá ăn như sau: bạn dùng chuột bấm vào đâu đó trong "bể cá", tại chỗ được bấm xuất hiện một mẩu "thức ăn" khiến cá vội vàng lao tới đớp.

Muốn có "thức ăn" trong "bể cá", bạn thử hỏi bé xem nên làm thế nào. Nếu bắt đầu quen với tư duy lập trình, bé sẽ đề nghị tạo thêm một nhân vật mới mang tên "Thức ăn". Như vậy, việc cần làm ngay là vẽ mẩu thức ăn.

Bạn nhắc bé bấm nút Vẽ nhân vật mới và để bé tự làm mọi việc trong cửa sổ Môi trường vẽ. Để vẽ mẩu thức ăn, chỉ cần tạo một đốm nhỏ là được (có thể thêm vài chấm nhỏ xung quanh, cho giống vụn bánh mà bé thường thả vào bể cá thực). Ngoài ra, cần chú ý dùng màu tương phản với bể cá để dễ nhận ra mẩu thức ăn nằm chỗ nào.

Sau khi bé bấm nút OK để đóng cửa sổ Môi trường vẽ, bạn nhắc bé đừng quên đặt tên cho nhân vật mới là Thức ăn (trong ô phía trên khung Hình dạng) và chuyển qua khung kịch bản của Thức ăn để bắt đầu lập trình. Bạn và bé hãy cùng suy nghĩ xem mẩu thức ăn cần "hành động" ra sao trong "bể cá".

Mẩu thức ăn thuộc loại nhân vật không xuất hiện ngay khi chương trình bắt đầu. Nghĩa là khi "người nuôi cá" bấm nút "cờ xanh", mẩu thức ăn phải được giấu đi bằng thẻ lệnh Ẩn. Sau đó, mẩu thức ăn phải "trông chừng", xem "người nuôi cá" có bấm chuột hay không. Nếu có, mẩu thức ăn nhảy đến chỗ được bấm và hiện ra. Muốn cho cá biết đến sự tồn tại của mình, mẩu thức ăn phải phát ra thông báo "ăn" chẳng hạn.

Nghĩ tới chút nữa, bạn thấy rằng mẩu thức ăn cần biến đi khi cá chạm vào. "Nhiệm vụ" của cá là phải phát ra thông báo "xong" khi chạm vào mẩu thức ăn. Khi nhận được thông báo "xong", mẩu thức ăn biến đi bằng thẻ Ẩn. Hình sau thể hiện những "toan tính" vừa nêu trong kịch bản của nhân vật Thức ăn.

Quan sát hình trên, bạn chú ý màu của các thẻ được dùng để biết cần lấy thẻ ở các khung chứa thẻ nào. Các thẻ Ấn phím chuột?, Chuột x, Chuột y được lấy ở khung chứa thẻ Giác quan, cho biết phím chuột có được ấn hay không và tọa độ của con trỏ chuột.

Khi lập trình cho cá, ta đã không tính đến chuyện cá bơi nhanh đến chỗ có thức ăn. Với "tình hình" mới, bạn có thể hình dung rằng cá có hai chế độ bơi khác nhau: khi không có thức ăn và khi có thức ăn. Cần có một biến để thể hiện hai chế độ bơi của cá, đặt tên là an (ăn) chẳng hạn. Bạn hãy tạo ra biến như vậy, có hiệu lực đối với mọi nhân vật. Bạn thêm các thẻ lệnh quy định trị số cho biến an vào kịch bản của Thức ăn như hình sau (hai thẻ lệnh được đóng khung).

Nhìn vào hình trên, bạn hiểu ngay: biến an có trị là 0 trong trường hợp chưa có thức ăn, cá "được phép" bơi bình thường. Ngược lại, trong trường hợp có thức ăn, biến an có trị khác 0, cá sẽ không bơi nhởn nhơ nữa.

Chuyển qua kịch bản của cá, bạn bổ sung các thẻ như hình dưới đây để tạo ra hai chế độ bơi của cá. Cụm thẻ điều khiển chế độ bơi bình thường của cá phải được đặt trong thẻ điều kiện Nếu an = 0. Cụm thẻ Khi tôi nhận thông báo an nhằm quy định hành động của cá khi thức ăn xuất hiện: cá hướng về phía thức ăn và lao nhanh theo hướng đó cho đến khi chạm vào thức ăn. Khi cá chạm vào thức ăn, nó phát đi thông báo "xong" (để thức ăn biến mất).

Ngoài ra, nhìn vào kịch bản của cá ở hình trên, bạn thấy có thêm thẻ Đặt ra trước. Thẻ đó làm cho cá luôn ở phía trước, nghĩa là khi cá chạm vào thức ăn, nó sẽ che khuất thức ăn, làm cho "người nuôi cá" thực sự thấy cá đớp thức ăn.

Bạn hãy mời bé gõ phím Enter và cho cá ăn xem sao. Vui lắm nha!

NGỌC GIAO


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

Lên đầu trang