You are on page 1of 9

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ THÀNH PHỐ HỒ CHÍ MINH

BÁO CÁO ĐỒ ÁN MÔN HỌC


LẬP TRÌNH PYTHON

Giảng viên hướng dẫn: NGUYỄN THỊ TUYẾT HẢI


Sinh viên thực hiện: HUỲNH NGỌC ÁNH – N20DCCN003

---o0o---
LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến cô Nguyễn Thị Tuyết Hải – giảng viên bộ môn “Lập trình
Python” - Khoa Công nghệ thông tin 2 đã trang bị cho em những kiến thức, kỹ năng cơ bản cần có
để hoàn thành đồ án này.
Tuy nhiên trong quá trình thực hiện đồ án, do kiến thức chuyên ngành còn hạn chế nên em vẫn
còn nhiều thiếu sót khi tìm hiểu, đánh giá và trình bày về đồ án.
Rất mong nhận được sự quan tâm, góp ý của cô để đồ án của em được đầy đủ và hoàn thiện hơn.
Em xin chân thành cảm ơn cô!
Huỳnh Ngọc Ánh
Chương 1: Giới thiệu đề tài: Trò chơi Pacman
1. Giới thiệu chung: PacMan là một trò chơi arcade được phát triển bởi Namco và phát
hành lần đầu tiên tại Nhật Bản vào năm 1980. Trở nên nổi tiếng và được ưa thích ngay từ
khi được phát hành cho tới nay.

2. Mô tả đề tài:
- Người chơi điều khiển Pac-Man trong một mê cung và ăn các chấm pacgum (chấm nhỏ).
Có 4 đối thủ là những con ma tên Blinky, Pinky, Inky và Clyde đi rong tự do trong mê
cung và cố gắng bắt Pac-Man. Mỗi con ma sẽ có những trạng thái và chiến lược mục tiêu
khác nhau. Nếu để bị bắt, Pac-Man sẽ bị mất mạng. Gần 4 góc của mê cung có 4 chấm tròn
to và phát sáng có tên là "viên sức mạnh" superpacgum, nếu Pac-Man ăn được các chấm
này sẽ giúp Pac-Man có khả năng ăn các kẻ địch trong một thời gian ngắn. Khi đó kẻ địch
sẽ chuyển sang màu lam và di chuyển đến những vị trí ngẫu nhiên. Khi một kẻ địch bị ăn,
đôi mắt của chúng sẽ di chuyển về hình chữ nhật trung tâm và sẽ trở lại màu như cũ. Kẻ
địch sẽ phát sáng màu trắng khi chuẩn bị trở lại nguyên hình nguy hiểm ban đầu.
• Blinky: Đỏ
• Pinky: Hồng
• Inky: Lục lam
• Clyde: Da cam

- Người chơi điều khiển các nút Right, Up, Left, Down để điều khiển nhân vật pacman, nếu
đụng tường thì Pacman sẽ đứng yên.

3. Link GitHub: https://github.com/ahuynh359/PacmanPython

Chương 2: Cơ sở lý thuyết
1. Pygame:
- Là một mô-đun Python đa nền tảng, được thiết kế để viết trò chơi điện tử. Thư viện này
bao gồm đồ họa máy tính và thư viện âm thanh được thiết kế để sử dụng với ngôn ngữ
lập trình Python.
- Trong đồ án này, nhóm sử dụng thư viện Pygame để khởi tạo và đóng cửa sổ trò chơi.
Tải dữ liệu từ bộ nhớ ngoài bao gồm hình ảnh, Font chữ, âm thanh và thay đổi kích
thước hình ảnh cho phù hợp. Thao tác với âm thanh như phát nhạc và tạm dừng. Bắt
các sự kiện thao tác từ bàn phím và chuột, cài đặt các sự kiện diễn ra trong trò chơi.
Cài đặt đối tượng theo dõi thời gian và thay đổi tốc độ khung hình. Vẽ, diễn tả và cập
nhật các hình ảnh và sự kiện lên màn hình theo thời gian và tốc độ khung hình được
cài đặt trong chương trình.

2. Math:
- Mô-đun thực hiện các hàm tính toán số học.
- Trong chương trình này, em sử dụng math.sqrt() và math.pow() ứng dụng trong việc
tính toán khoảng cách giữa 2 đối tượng trên màn hình hiển thị, math.cos() và math.sin()
để tính khoảng cách giữa 2 điểm, math.atan2() để trả về góc giữa trục x và đường thẳng
từ cặp tọa độ gốc (0;0) đến cặp tọa độ được chỉ định tính bằng radian.
3. Random:
- Mô-đun Random thực hiện việc tạo ra các số ngẫu nhiên.
- Trong chương trình này, em sử dụng mô-đun random để khởi tạo các giá trị về hướng
đi cho PacMan và các con Ghost.

4. CSV:
- Mô-đun CSV dùng để cung cấp các lớp để đọc và ghi thông tin dạng bảng ở định dạng
tệp CSV.
- Trong chương trình này, em sử dụng mô-đun csv để load các mê cung vô trong game.

Chương 3: Thực nghiệm


- Màn hình bắt đầu khi vừa mở trò chơi: Có 3 mạng PacMan và Điểm (Score) của người
chơi ở phía dưới cùng màn hình.
- Khi PacMan ăn các viên Pacgum, chúng sẽ biến mất.
- PacMan sau khi va chạm Ghost thì mất một mạng, màn hình sẽ hiển thị mất đi một con
PacMan ở phía dưới bên phải.
- Khi PacMan ăn được viên Super Pacgum, các con Ghost sẽ biến thành màu xanh và di
chuyển chậm lại, và PacMan có thể ăn các con Ghost bằng cách chạm vào chúng. Khi
ấy con mắt của những con Ghost sẽ quay trở lại lồng.
- Màn hình thua cuộc khi người chơi mất hết 3 mạng
- Màn hình thông báo chiến thắng khi người chơi đã ăn hết các Pacgum và Superpacgum

Tài liệu tham khảo


- Sách: Making Games with Python and Pygame.pdf
- Thư viện Pygame: Pygame Front Page — pygame v2.1.1

You might also like