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

Trò chơi "Bóng bàn" (bài 28)

02/12/2013 09:17

Trò chơi bóng bàn mà bạn và bé đã tạo ra là trò chơi dành cho hai người. Ta hãy bày ra một cách chơi bóng bàn khác: người chơi với... rô-bốt.

Nghĩa là bé điều khiển một vợt, vợt kia do rô-bốt (tức máy tính của bạn) điều khiển. Có thể gọi đó là chế độ "một người chơi" hay chế độ "luyện tập". Nhờ vậy, bé có điều kiện luyện tập một mình trước khi thi đấu "thực sự" với bạn.

Thử hình dung Vot1 do người điều khiển, còn Vot2 dành cho rô-bốt. Điều này nghĩa là ta không phải đụng đến kịch bản của Vot1, chỉ cần sửa đổi kịch bản của Vot2 thôi. Bạn và bé nghĩ xem nên sửa đổi kịch bản của Vot2 ra sao?

Muốn cho Vot2 tự hoạt động để đỡ bóng, ta phải lập trình cho nó tự điều chỉnh tọa độ x của mình. Khi tọa độ x của bóng lớn hơn (hoặc nhỏ hơn) tọa độ x của Vot2, tọa độ x của Vot2 cần tăng lên (hoặc giảm đi) để đuổi theo bóng.

Cụ thể, bạn hãy chuyển qua khung kịch bản của Vot2, kéo cụm thẻ bên trong thẻ Lặp mãi mãi ra ngoài như hình sau để thay thế bằng cụm thẻ khác. Bạn đừng xóa cụm thẻ được kéo ra ngoài vì ta vẫn còn cần đến nó cho chế độ "hai người chơi".

Bạn hãy hướng dẫn bé tạo cụm thẻ mới bên trong thẻ Lặp mãi mãi như hình dưới đây. Trước hết, bé cần lấy thẻ Nếu từ khung chứa thẻ Điều khiển đặt vào trong thẻ Lặp mãi mãi. Tiếp theo, bé lấy thẻ Nhỏ hơn từ khung chứa thẻ Các phép toán, đặt vào ô điều kiện của thẻ Nếu. Ô bên trái của thẻ Nhỏ hơn dành cho thẻ Vị trí x lấy từ khung chứa thẻ Chuyển động. Ô bên phải của thẻ Nhỏ hơn dành cho thẻ Vị trí x của Bong lấy từ khung chứa thẻ Giác quan. Nhờ vậy, bé diễn đạt được điều kiện: "nếu tọa độ x của vợt thứ hai nhỏ hơn tọa độ x của bóng". Việc cần làm khi thỏa điều kiện như vậy được diễn đạt bằng cách đặt thẻ Thay đổi x một lượng 10 vào trong thẻ Nếu.

Để diễn đạt điều kiện "nếu tọa độ x của vợt thứ hai lớn hơn tọa độ x của bóng", bé không phải lắp ráp các thẻ như vừa nêu, chỉ cần sao chép thẻ Nếu hiện có: bấm-phải vào thẻ Nếu, chọn mục Tạo bản sao trong trình đơn vừa hiện ra, di chuyển chuột để bản sao xê dịch xuống bên dưới thẻ Nếu hiện có, rồi bấm chuột một phát để gắn bản sao vào chỗ. Xong, bé bấm-phải vào dấu "nhỏ hơn" (<), chọn dấu "lớn hơn" (>) trong trình đơn. Vì đây là trường hợp vợt cần xê dịch qua trái, bé phải sửa trị số 10 thành -10 trong thẻ Thay đổi x một lượng bên trong thẻ Nếu vừa tạo ra.

Chỉ vậy thôi là đủ để Vot2 trở nên "thông minh". Khi quan sát hình trên, có lẽ bạn thắc mắc về việc dùng thêm thẻ Đợi. Thẻ Đợi giúp bạn quy định sự "nhanh nhạy" của Vot2. Khi tăng thời gian đợi, bạn làm cho rô-bốt trở nên chậm chạp hơn (dự trù trường hợp bạn muốn đánh thắng nó!).

Bạn khuyến khích bé mạnh dạn gõ phím Enter để bắt đầu chơi với rô-bốt. Vẫn như trước đây, bé dùng hai phím mũi tên trái và phải để điều khiển vợt thứ nhất.

Để có thể chuyển đổi qua lại giữa hai chế độ của trò chơi (chế độ "một người chơi" và chế độ "hai người chơi"), bạn cần tạo ra một biến mang tên robot. Ta quy ước biến đó có hai trị số khả dĩ: 0 và 1. Trị số 0 nghĩa là "không dùng rô-bốt", trị số 1 ứng với trường hợp "có dùng rô-bốt". Biến có vai trò như vậy thường được gọi là cờ hiệu.

Sau khi tạo ra biến robot, bạn cần tạo một nút bấm trong sân khấu giúp người chơi quy định trị số cho biến robot. Nghĩa là cần tạo thêm một nhân vật mới có dạng chữ nhật mang dòng chữ ROBOT (hình sau). Bạn hãy để bé làm việc này (chắc là bé rất thạo rồi). Bạn nhắc bé đừng dùng màu vàng hoặc đỏ cho nút bấm vì khi đụng vào hai màu đó, bóng bị bật trở lại. Bé có thể đặt tên cho nhân vật mới là Nut bam ("nút bấm").

Chuyển qua khung kịch bản của nút bấm, bạn lập trình như hình sau, giúp cho nút bấm có tác dụng "bật" và "tắt" đối với biến robot. Thẻ Thay đổi hiệu ứng màu làm cho hai trạng thái "bật" và "tắt" của nút bấm có màu khác nhau.

Nút bấm chỉ thay đổi trị số của biến robot thôi. Bạn cần trở lại kịch bản của Vot2 để diễn đạt hai chế độ hoạt động khác nhau của vợt thứ hai tùy theo trị số của biến robot. Việc này xem như một bài tập dành cho bé. Bạn hãy cho bé thời gian để tự suy nghĩ và sửa đổi kịch bản của Vot2, không cần nhìn vào hình sau.

NGỌC GIAO

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

Lên đầu trang