Câu hỏi:
Giúp em bài tập về nhà Tổng hợp lớp 7 câu hỏi như sau: Viết và lập trình code trò chơi rắn săn mồi bằng ngôn ngữ Python và sử dụng thư viện Pygame.
Trả lời 1:
Gia Sư Hoàng Khang gữi câu trả lời dành cho bạn:
Setup môi trường
Để cài đặt pygame, các bạn truy cập vào Command Promt và nhập lệnh :
pip install pygame
Sau khi đã cài đặt xong, ta tiến hành khai báo những thư viện cần dùng:
import pygame import sys import random Khai báo biến
Ta sẽ bắt đầu bằng cách khai báo một số biến cần dùng:
Công việc tiếp theo của ta là vẽ bàn caro lên cửa sổ. Việc đó có thể thực hiện qua hàm sau đây:
Trong đoạn code trên, cứ vị trí ô vuông nào có tổng tọa độ x và y thì là chẵn thì ta sẽ tô một màu, những ô còn lại ta tô màu khác. Vậy là ta đã có một bàn caro để con rắn chạy trên đó.
Giờ ta sẽ tạo ra con rắn của mình. class Snake
Trong object trên, rắn của ta là một mảng lưu vị trí những phần thân của nó. Ta có thể thấy hàm turn để hỗ trợ việc chuyển hướng của con rắn, hàm draw để vẽ những phần thân của rắn, get_head_position để lấy vị trí đầu rắn, reset để bắt đầu lại trò chơi và handle_keys để xử lý thao tác của người chơi.
Hàm move điều khiển cách con rắn của chúng ta di chuyển. Hàm này hoạt động bằng cách tính toán vị trí tiếp theo của đầu rắn, nếu nó không trùng với vị trí của phần thân nào thì sẽ được thêm vào rắn, đồng thời bỏ đi phần thân cuối, còn nếu trùng thì trò chơi sẽ bắt đầu lại.
Tiếp đến ta sẽ tạo thức ăn cho rắn:class Food
Với object Food, ta có hàm randomize_position để những ô đồ ăn xuất hiện ngẫu nhiên trên bàn caro, hàm draw để vẽ ô thức ăn đó.
Vậy là ta đã có đủ thành phần để lắp ghép thành game rắn săn mồi hoàn chỉnh. Thứ tiếp theo ta làm sau đây là vòng lặp game, nơi những quy định của game được cấu hình.
Đây sẽ là vòng lặp chính của game
Ta sẽ quy định game chạy với tốc độ 10 khung hình 1 giây.
clock.tick(10)
Nếu vị trí đầu rắn trùng với vị trí của thức ăn, ta tăng độ dài rắn lên một, đồng thời tạo ô thức ăn mới ngẫu nhiên
Vẽ lại rắn và đồ ăn
Tạo một ô nhỏ để hiển thị điểm số
Vậy là xong! Việc duy nhất ta cần làm là gọi lại hàm main của ta rồi chạy game thôi!
main()
Chuc ban hoc tot