Nội dung chính
A. Đề bài:
Em hãy sử dụng ngôn ngữ lập trình Scratch để thiết kế trò chơi Thỏ tìm thức ăn với các yêu cầu sau:
– Em có thể dùng chuột hoặc các phím mũi tên để điều khiển Thỏ di chuyển.
– Có 3 nhân vật Quả Táo và 3 nhân vật Dâu Tây lần lượt xuất hiện tại vị trí ngẫu nhiên trên màn hình. Có 1 nhân vật Sư Tử di chuyển chậm liên tục từ trái sang phải.
– Nếu mỗi lần Thỏ ăn được quả Táo thì được cộng 5 điểm, ăn được quả Dâu thì cộng 7 điểm, nếu chạm vào Sư Tử sẽ bị trừ 10 điểm. Nếu Thỏ chạm vào bất kỳ nhân vật nào thì sẽ biến mất và xuất hiện lại ở vị trí mới.
– Khi điểm lớn hơn 100 thì đưa ra thông báo YOU WIN và trò chơi kết thúc.
Mở rộng:
– Em hãy thiết kế trò chơi trong 30 giây, nếu hết thời gian 30 giay mà nhân vật thỏ chưa ăn đủ 100 điểm thì đưa ra thông báo “GAME OVER” và kết thúc trò chơi.
– Mỗi lần Thỏ ăn dược Táo hoặc Dâu thì tăng kích thước cho nhân vật 1 lượng là 5. Nếu chạm vào nhân vật Sư Tử thì sẽ giảm kích thước cho nhân vật một lượng là 10.
Trích đề thi tin học trẻ huyện Đức Trọng – Lâm Đồng năm 2021
B. Hướng dẫn giải:
1. Thiết kế ban đầu cho các nhân vật
a. Nhân vật Thỏ
- Với yêu cầu: Em có thể dùng chuột hoặc các phím mũi tên để điều khiển Thỏ di chuyển ta thực hiện như sau:
- Tạo nhân vật Thỏ (Hare).
- Tạo đoạn lệnh để Thỏ luôn đi theo con trỏ chuột như hình bên dưới.
b. Nhân vật Táo và Dâu Tây
- Với yêu cầu: Có 3 nhân vật Quả Táo và 3 nhân vật Dâu Tây lần lượt xuất hiện tại vị trí ngẫu nhiên trên màn hình ta thực hiện trong 1 nhân vật có 2 hình dạng: Táo và Dâu Tây bằng cách tạo 6 bản sao của nhân vật đó trong đó 3 bản sao có hình quả táo và 3 bản sao có hình quả dâu tây, cách thực hiện như sau:
- Tạo nhân vật Quả Táo (Apple).
- Vào phần hình dạng (Customes) của Quả Táo và thêm hình dạng Dâu Tây (Strawberry-a). => Nhân vật Quả Táo có 2 hình dạng: Táo và Dâu Tây.
- Tạo đoạn lệnh để tạo 6 bản sao như hình bên dưới.
-
- Để mỗi bản sao xuất hiện ở vị trí ngẫu nhiên trên màn hình ta sử dụng lệnh go to x y trong đó x lấy ngẫu nhiên một số từ -220 đến 220, y lấy ngẫu nhiên một số từ -160 đến 160 như hình bên dưới.
c. Nhân vật Sư Tử
- Với yêu cầu: Có 1 nhân vật Sư Tử di chuyển chậm liên tục từ trái sang phải ta thực hiện như sau:
- Tạo nhân vật Sư Tử (Lion).
- (1) Sư tử sẽ xuất hiện ở vị trí ngẫu nhiên bên ngoài sân khấu và phía bên trái. Ta cho vị trí đó có tọa độ x = -300 và y sẽ lấy ngẫu nhiên trong khoảng từ -150 đến 150.
- (2) Sau đó Sư tử sẽ di chuyển từ vị trí có x = -300 đến vị trí có x = 300 => tổng quãng đưỡng di chuyển là 600 bước => di chuyển 60 lần, mỗi lần di chuyển 10 bước.
Các công việc (1) và (2) cứ lặp đi lặp lại đến khi kết thúc chương trình.
2. Thiết kế cảm biến chạm
- Với yêu cầu: Nếu mỗi lần Thỏ ăn được quả Táo thì được cộng 5 điểm, ăn được quả Dâu thì cộng 7 điểm, nếu chạm vào Sư Tử sẽ bị trừ 10 điểm ta thực hiện như sau:
+ Tạo biến score để lưu trữ điểm, thêm lệnh: đặt giá trị cho biến score là 0 trong sự kiện khi nháy chuột vào lá cờ của nhân vật Quả Táo.
+ Tạo biến name để lưu trữ tên loại quả Thỏ ăn được.
+ Sử dụng cảm biến chạm trong nhân vật Quả Táo để xác định loại quả Thỏ ăn được và cho điểm tương ứng:
Kiểm tra xem nhân vật Quả Táo có chạm vào nhân vật Thỏ không?
Nếu nhân vật Quả Táo chạm vào nhân vật Thỏ thì kiểm tra lúc đó nhân vật Quả Táo có hình dạng gì?
Để kiểm tra hình dạng của nhân vật Quả Táo ta sử dụng biến hệ thống costume name và mở lại phần hình dạng của nhân vật Quả Táo để xem lại tên của từng hình dạng cho chính xác.
Nếu tên hình dạng là apple thì:
Đặt name = apple
Thay đổi score 1 lượng là 5
Nếu tên hình dạng là Strawberry-a thì:
Đặt name = Strawberry-a
Thay đổi score 1 lượng là 7
+ Sử dụng cảm biến chạm trong nhân vật Thỏ để xác định xem Thỏ có chạm vào Sư Tử không? Nếu chạm thì thay đổi giá trị biến score 1 lượng là -10.
- Với yêu cầu: Nếu Thỏ chạm vào bất kỳ nhân vật nào thì sẽ biến mất và xuất hiện lại ở vị trí mới sẽ có 2 trường hợp:
+ Thỏ chạm vào nhân vật Quả Táo => xóa bản sao đó và tạo lại bản sao khác có hình dạng giống với hình dạng bản sao bị xóa nhưng ở một vị trí ngẫu nhiên trên màn hình.
+ Nếu Thỏ chạm vào Sư Tử => ChoThỏ ẩn đi, đợi 3 giây rồi cho Thỏ xuất hiện lại.
3. Thiết lập thời gian và thắng thua
- Với yêu cầu: Khi điểm lớn hơn 100 thì đưa ra thông báo YOU WIN và trò chơi kết thúc ta thực hiện như sau:
+ Thêm phông nền sân khấu có dòng chữ YOU WIN.
+ Thêm lệnh chuyển phông nền sân khấu về phông nền không có chữ YOU WIN (backdrop1) trong sự kiện khi nhấp vào lá cờ.
+ Nếu score >100 thì phát thông báo WIN
+ Khi các nhân vật nhận được thông báo WIN thì cho các nhân vật ẩn đi.
+ Khi sân khấu nhận được thông báo WIN thì chuyển phông nền sân khấu sang phông nền có chữ YOUWIN đã tạo.
- Với yêu cầu: Em hãy thiết kế trò chơi trong 30 giây, nếu hết thời gian 30 giay mà nhân vật thỏ chưa ăn đủ 100 điểm thì đưa ra thông báo “GAME OVER” và kết thúc trò chơi ta thực hiện như sau:
+ Thêm phông nền sân khấu có dòng chữ GAME OVER.
+ Tạo biến Time, bỏ lệnh thông báo WIN đã tạo lúc trước và thêm các lệnh như hình bên dưới.
+ Khi các nhân vật nhận được thông báo GAMEOVER thì cho các nhân vật ẩn đi.
+ Khi sân khấu nhận được thông báo GAMEOVER thì chuyển phông nền sân khấu sang phông nền có chữ GAME OVER đã tạo.
- Với yêu cầu: Mỗi lần Thỏ ăn dược Táo hoặc Dâu thì tăng kích thước cho nhân vật 1 lượng là 5. Nếu chạm vào nhân vật Sư Tử thì sẽ giảm kích thước cho nhân vật một lượng là 10 ta thực hiện như sau:
+ Khi Thỏ chạm vào Táo hoặc Dâu:
Thêm thông báo EAT trong nhân vật Quả Táo
Khi Thỏ nhận được thông báo EAT: thay đổi kích thước của Thỏ 1 lượng là 5.
+ Khi Thỏ chạm vào Sư Tử: Thêm các lệnh để thay đổi kích thước cho Thỏ như hình bên dưới.