Lời mở đầuTrong thế giới lập trình và game, việc tạo ra các trò chơi đã trở thành một phần không thể thiếu của hành trình khám phá và ứng dụng kiến thức.. Đồ án này tập trung vào việc ph
Trang 1TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN MÔN HỌC
Phan Thanh Thoại 3122560074
Trang 2Lời mở đầu
Trong thế giới lập trình và game, việc tạo ra các trò chơi đã trở thành một phần không thể thiếu của hành trình khám phá và ứng dụng kiến thức Đồ án này tập trung vào việc phát triển một trong những trò chơi kinh điển nhất,
"Rắn săn mồi" - một trò chơi giải đố đơn giản nhưng gây nghiện
Mục tiêu chính của đồ án là tạo ra một phiên bản game "Rắn săn mồi" sử dụng ngôn ngữ lập trình Python Bên cạnh việc giúp người chơi thư giãn và giải trí,
dự án cũng đặt ra mục tiêu phát triển kỹ năng lập trình cũng như hiểu rõ hơn
về cách thức xây dựng một game đơn giản nhưng hấp dẫn.
Trò chơi "Rắn săn mồi" đã từng là một trong những tựa game phổ biến và quen thuộc từ thời điểm đầu của ngành công nghiệp game Với sự kết hợp giữa sự thách thức trong việc điều khiển "rắn" để săn mồi và tăng kích thước của nó, trò chơi này đã thu hút người chơi từ mọi lứa tuổi.
Thông qua đồ án này, chúng ta sẽ tìm hiểu cách xây dựng một game "Rắn săn mồi" đơn giản nhưng vẫn đầy thú vị bằng ngôn ngữ lập trình Python Báo cáo
sẽ trình bày quá trình phát triển, cũng như các kỹ thuật và công nghệ được sử dụng để hoàn thiện sản phẩm.
Hy vọng rằng dự án sẽ không chỉ là cơ hội để áp dụng kiến thức mà còn mang lại trải nghiệm thú vị và bổ ích cho người tham gia.
Trang 3Lời cảm ơn
Trong quá trình thực hiện dự án này, nhóm 17 muốn bày tỏ lòng biết ơn sâu sắc đến những người đã hỗ trợ và cung cấp sự động viên trong suốt quá trình nghiên cứu và phát triển trò chơi "Rắn săn mồi" bằng Python.
Trước hết, nhóm 17 xin gửi lời cảm ơn chân thành tới giảng viên Trương Tấn Khoa dành thời gian và kiến thức để hướng dẫn, chỉ dẫn và hỗ trợ trong quá trình thực hiện dự án này Sự hỗ trợ quý báu của người đã giúp nhóm chúng tôi vượt qua những thách thức và phát triển kỹ năng lập trình.
Chúng tôi cũng muốn cảm ơn sự đóng góp của tất cả các thành viên trong nhóm Sự cống hiến, sự chia sẻ ý tưởng và cống hiến công sức đã giúp chúng tôi vượt qua những thách thức và hoàn thành dự án một cách thành công Bên cạnh đó, lời cảm ơn sâu sắc cũng được gửi đến bạn bè, gia đình và những người thân yêu đã luôn ủng hộ chúng tôi và hiểu rõ sự quan trọng của dự án trong quá trình học tập.
Không thể không nhắc đến cộng đồng lập trình viên trên Internet, nơi nhóm
đã tìm thấy những tài liệu hữu ích, những câu trả lời cho những vấn đề kỹ thuật cụ thể và những gợi ý quý báu từ những người không ngừng chia sẻ kiến thức của mình.
Cuối cùng, chúng tôi muốn gửi lời tri ân đặc biệt đến những người sẽ đọc và đánh giá dự án này Sự quan tâm và thời gian của họ là động lực lớn để chúng tôi hoàn thành dự án này với sự chăm chỉ và cẩn thận.
Những hỗ trợ và động viên từ tất cả mọi người đã giúp chúng tôi hoàn thiện
dự án này Đây là một hành trình không chỉ về việc tạo ra một trò chơi, mà còn về việc học hỏi, trải nghiệm và sẻ chia Một lần nữa, chúng tôi xin gửi lời cảm ơn chân thành tới tất cả mọi người.
Trang 4MỤC LỤC
CHƯƠNG I:TỒNG QUAN 1
I.Mục tiêu và phạm vi 1
1.1 Mục tiêu 1
2.2 Phạm vi 1
II Mô tả về game 1
2.1 Giới thiệu 1
2.2 Gameplay 1
a)Mục tiêu 1
b) Menu chính 1
c) Cách chơi 2
d) Điểm Số 2
e) Kết thúc game 2
2.3 Âm thanh và đồ họa 2
a) Âm thanh 2
b) Đồ họa 2
CHƯƠNG II:GIỚI THIỆU NGÔN NGỮ PYTHON VÀ THƯ VIỆN PYGAME 3
I.Giới thiệu 3
1.1.Ngôn ngữ python 3
a)Python là gì? 3
b)Lịch sử phát triển 3
c)Đặc điểm nổi bật của python 3
1.2.Thư viện pygame 4
a) Giới thiệu chung 4
b)Đặc điểm nổi bật 4
c)Các phần chính của pygame 4
II.Hướng dẫn cài đặt python và thư viện pygame 5
2.1.Cài đặt python 5
2.2.Cài đặt thư viện Pygame 10
CHƯƠNG III:PHÂN TÍCH VÀ THIẾT KẾ 12
I.PHÂN TÍCH VÀ THIẾT KẾ 12
1.1 Phân tích hệ thống 12
1.2 Thiết kế hệ thống 12
1.3 Tổng kết 13
II.Xây dựng game rắn săn mồi 13
Trang 5CHƯƠNG IV: KẾT LUẬN 16
I Các vấn đề đã thực hiện được trong đề tài 16 II.Hướng phát triển 16
Trang 6Danh mục ảnh
Hình : 1 Hộp thoại system properties 5
Hình : 2Hộp thoại Environment Variables 6
Hình : 3Hộp thoại Edit Environment Variables 7
Hình : 4 Hộp thoại Run 8
Hình : 5 Trình biên dịch Python 8
Hình : 6 Cript python bằng Visual Studio Code 9
Hình : 7 Hộp thoại Run mở cmd 10
Hình : 8 Hộp thoại cmd cài đặt pygame 10
Hình : 9 Kiểm tra đã cài đặt thư viện pygame 11
Hình : 10 Flowchart Diagram 13
Hình: 11 Class diagram……… 15
Hình : 12 Giao diện khi vừa khởi chạy game 16
Hình : 13 Giao diện game play 16
Hình : 14 Giao diện game over khi va chạm 17
Hình : 15 Giao diện của Option 18
Trang 7CHƯƠNG I:TỒNG QUAN
I.Mục tiêu và phạm vi.
-Xây dựng game rắn săn mồi:
+Sử dụng thư viện Pygame trong Python lập trình game
"Rắn Săn Mồi" là một trò chơi cổ điển và đơn giản, được thiết kế để giải trí
và thử thách kỹ năng điều khiển của người chơi Trong trò chơi này, bạn sẽ điềukhiển một con rắn đang di chuyển trong một không gian hai chiều, cố gắng ăn mồi
để tăng chiều dài
Gồm 3 chế độ: PLAY, OPTION và QUIT
+Khi chọn chế độ PLAY trò chơi sẽ bắt đầu và màn hình chơi sẽ được hiểnthị
+ Khi chọn chế độ OPTION, người chơi có thể tắt/mở âm thanh và điềuchỉnh độ sáng và âm lượng
+Khi chọn chế độ QUIT, trò chơi sẽ được thoát( tắt )
Trang 8c) Cách chơi.
-Di Chuyển Rắn: Sử dụng các phím mũi để điều khiển hướng di chuyển củarắn
-Ăn Mồi: Khi rắn ăn một mồi, chiều dài của rắn tăng lên
-Tránh Va Chạm: Tránh va chạm vào tường hoặc cơ thể của rắn để duy trì
sự sống
d) Điểm Số.
-Mỗi lần rắn ăn một mồi, người chơi nhận được điểm
-Điểm số tăng theo chiều dài của rắn
e) Kết thúc game.
-Trò chơi kết thúc khi rắn va chạm vào tường hoặc cơ thể của mình
-Hiển thị điểm số cao nhất đạt được bởi người chơi
2.3 Âm thanh và đồ họa.
a) Âm thanh.
Âm thanh nhẹ khi rắn ăn mồi hoặc khi game kết thúc
b) Đồ họa.
-Giao diện đồ họa đơn giản với các hình ảnh rắn và mồi
-Hiển thị điểm số trên màn hình
2 | P a g e
Trang 9CHƯƠNG II:GIỚI THIỆU NGÔN NGỮ PYTHON
VÀ THƯ VIỆN PYGAME
I Giới thiệu.
1.1.Ngôn ngữ python.
a)Python là gì?
Python là một ngôn ngữ lập trình thông dịch, đa mục đích và mã nguồn mở
Nó được thiết kế với ưu tiên đọc dễ hiểu và cú pháp gọn nhẹ, giúp người lập trìnhtập trung vào giải quyết vấn đề thay vì mất thời gian vào cú pháp phức tạp
b)Lịch sử phát triển.
1989-1991: Python được tạo ra bởi Guido van Rossum tại CWI (CentrumWiskunde & Informatica) ở Hà Lan Phiên bản đầu tiên, Python 0.9.0, đượcphát hành vào tháng 2 năm 1991
1994: Python 1.0 ra mắt với nhiều tính năng mới như lambda, map, filter,
Ngày nay: Python đã trở thành một trong những ngôn ngữ lập trình phổbiến nhất thế giới, được sử dụng rộng rãi trong nhiều lĩnh vực như phân tích
dữ liệu, trí tuệ nhân tạo, phát triển web, và hệ thống
c)Đặc điểm nổi bật của python.
Dễ đọc và dễ hiểu: Cú pháp của Python tập trung vào sự đơn giản và rõràng, giúp người lập trình tập trung vào giải quyết vấn đề thay vì cú phápphức tạp
Mã nguồn mở: Python có giấy phép mã nguồn mở, khuyến khích sự hợp tác
và đóng góp từ cộng đồng
Đa mục đích: Python có thể sử dụng cho mọi thứ từ lập trình web, phân tích
dữ liệu, trí tuệ nhân tạo đến lập trình nhúng và đám mây
3 | P a g e
Trang 10 Thư viện và Framework: Python có thư viện phong phú và các frameworknhư Django, Flask, NumPy, và Pandas, giúp tăng cường khả năng pháttriển.
Cộng đồng mạnh mẽ: Cộng đồng Python rất lớn, với hàng ngàn người đónggóp vào sự phát triển, hỗ trợ qua diễn đàn, tài liệu và dự án mã nguồn mở
1.2.Thư viện pygame.
a) Giới thiệu chung.
phát triển trò chơi đồ họa 2D một cách đơngiản và linh hoạt Pygame giúp ngườilập trình tạo ra các trải nghiệm game mà không cần mất nhiều thời gian và côngsức
b)Đặc điểm nổi bật.
Dễ Học và Sử Dụng: Pygame được thiết kế để làm cho việc phát triển trò
chơi đơn giản và dễ tiếp cận cho người mới học lập trình
Đồ Họa 2D: Pygame chủ yếu được sử dụng cho phát triển trò chơi đồ họa
2D, với khả năng xử lý sprite, hình ảnh, và âm thanh
Sử Dụng SDL: SDL là một thư viện đa nền tảng (cross-platform) giúp
tương tác với phần cứng máy tính, điều này làm cho Pygame có khả năngchạy trên nhiều hệ điều hành khác nhau
Thư Viện Mạnh Mẽ: Pygame đi kèm với nhiều thư viện hỗ trợ cho đồ họa,
âm thanh, đầu vào từ bàn phím và chuột, giúp đơn giản hóa việc phát triểngame
Cộng Đồng Hoạt Động: Pygame có một cộng đồng sôi nổi với nhiều tài
nguyên, hướng dẫn và ví dụ trực tuyến giúp người lập trình giải quyết vấn
đề và phát triển kỹ năng
c)Các phần chính của pygame.
o pygame.display: Quản lý cửa sổ hiển thị game.
o pygame.sprite: Hỗ trợ quản lý sprite và collision detection.
o pygame.image: Cho phép làm việc với hình ảnh.
o pygame.mixer: Điều khiển âm thanh và âm nhạc.
o pygame.event: Xử lý sự kiện từ bàn phím, chuột, và các nguồn khác.
o pygame.font: Cho phép vẽ văn bản trực tiếp trên cửa sổ game.
4 | P a g e
Trang 11II.Hướng dẫn cài đặt python và thư viện pygame.
2.1.Cài đặt python.
Để cài đặt Python, bạn vào trang chủ của Python tại https://python.org/ và tải
về phiên bản phù hợp với hệ điều hành đang dùng Ở đây tôi không đi vào chi tiết cáchcài đặt, cá nhân tôi sử dụng phiên bản 3.11 cho Windows 64 bit và cài vào thư mục C:\
Python11, chỉ lưu ý các bạn khi cài đặt nên tích chọn để đưa Python vào biến môi trường (System Path) Nếu không, bạn phải thêm thư mục Python vào System Path
một cách thủ công như sau:
• Bấm chuột phải vào My Computer (hoặc This PC) ngoài Desktop và chọn
Trang 12• Chọn thẻ Advanced rồi chọn nút Environment Variables…
• Trong thẻ System variables, chọn dòng Path và bấm Edit.
• Tiếp tục chọn New và gõ vào đường dẫn đến thư mục cài đặt Python, ở đây,
Trang 13Hình : 3Hộp thoại Edit Environment Variables.
Để kiểm tra đã thêm Python vào System Path chưa, bạn mở1 hộp thoại Run của
Windows và gõ python, sau đó bấm Enter:
7 | P a g e
Hình : 4 Hộp thoại Run.
Trang 14nếu hiện cửa sổ như sau là thành công:
Sau khi cài đặt xong trình biên dịch Python, mặc định sẽ có một trình soạn thảo đi kèm
là IDLE, tuy nhiên trình soạn thảo này khá cơ bản và không hỗ trợ nhiều cho người sử
dụng như gợi ý các từ khóa, quản lý project, gỡ lỗi… nên tôi khuyên bạn nên sử dụng
thêm một trình soạn thảo như Notepad++, Sublime Text, Visual Studio Code,
Pycharm, Eclipse… Có rất nhiều chương trình như vậy, cả miễn phí và trả phí, nhưng
cá nhân tôi thường sử dụng Visual Studio Code của Microsoft, đôi khi cũng sử dụng thêm cả Sublime Text 3.
Nếu mới làm quen với Python, bạn có thể cài đặt Anaconda tại
https://www.continuum.io là một môi trường Python đã bao gồm cả trình dịch Python,
trình soạn thảo với rất nhiều tính năng cao cấp chuyên dụng giành cho Data Science, và được cài sẵn rất nhiều thư viện, đặc biệt là các thư viện cho Machine Learning, Data
Science như numpy, jupyter, matplotlib
8 | P a g e
Hình : 5 Trình biên dịch Python.
Trang 15Ví dụ: chạy 1 chương trình python bằng Visual Studio Code bấm chuột phải vào vùng
soạn thảo và chọn Run Python File in Terminal
2.2.Cài đặt thư viện Pygame.
Để cài đặt Pygame trên máy tính của bạn, bạn có thể sử dụng pip, trình quản lýgói Python
Ở đây chỉ hướng dẫn cách cài thư viện trên hệ điều hành Window
o Đầu tiên , bạn mở hộp thoại Run và gõ lệnh cmd.
9 | P a g e
Hình : 6 Cript python bằng Visual Studio Code.
Hình : 7 Hộp thoại Run mở cmd.
Trang 16o Trong hộp thoại Cmd bạn gõ lệnh pip install pygame, sau đó nhấn enter.
o Sau đó để kiểm tra đã cài đặt pygame chưa, bạn tạo cript và chạy như ảnh
sau là thành công
10 | P a g e
Hình : 8 Hộp thoại cmd cài đặt pygame.
Hình : 9 Kiểm tra đã cài đặt thư viện pygame.
Trang 17CHƯƠNG III:PHÂN TÍCH VÀ THIẾT KẾ
I.PHÂN TÍCH VÀ THIẾT KẾ.
1.1 Phân tích hệ thống.
Hệ thống là một trò chơi rắn săn mồi, trong đó người chơi điều khiển con rắn di chuyểntrên một mặt phẳng và cố gắng ăn mồi để tăng điểm số
Các file chính bao gồm: Menu.py, GamePlay.py,SharedValues.py.
Bên cạnh đó là các thư mục để lưu các tệp hình ảnh, âm thanh và font chữ
File Menu.py là file chính để chạy trò chơi, nó sẽ tạo ra một đối tượng game và gọi
phương thức play để bắt đầu trò chơi, phương thức option để điều chỉnh trò chơi, phươngthức quit để thoát khỏi game
File GamePlay.py chứa các lớp như Snake,Fruit Lớp Snake để quản lý con rắn, bao
gồm các thuộc tính như độ dài, tốc độ, hướng di chuyển Vàcác phương thức để dichuyển, thay đổi hướng và kiểm tra va chạm Lớp Fruit để quản lí quả, tính toán vị trí củacác quả cùng với các pương thức tạo quả và ăn quả Bên cạnh đó có lớp Main để quản lítrò chơi, bao gồm cách tính điểm, các đối tượng con rắn và quả, các phương thức, cáctrạng thái, kiểm tra điều kiện để kết thúc trò chơi
File SharedValues.py để thiết lập và lấy các giá trị.
Các file này sử dụng thư viện Pygame để tạo giao diện đồ họa và xử lý sự kiện
11 | P a g e
Trang 18Dưới đây là mô hình hoạt động sao khi phân tích.
phương thức liên quan
12 | P a g e
Trang 19 init : Khởi tạo đối tượng con rắn.
hướng di chuyển
và đuôi dựa trên hướng di chuyển
3 Lớp Main:
fruit: Đối tượng của class Fruit
init : Khởi tạo trạng thái ban đầu của trò chơi
update: Cập nhật trạng thái của trò chơi, di chuyển con rắn, kiểm tra va chạm và xử lý sự kiện game over
13 | P a g e
Trang 20 check_fail: Kiểm tra điều kiện thất bại của trò chơi bao gồm việc đầu rắn
va vào thân, đuôi hoặc va vào tường
chọn tiếp theo của người chơi
Hình :11 Class diagram.
14 | P a g e
Trang 21Ngoài ra còn có các class khác trong file Menu.py với các thuộc tính và phương thức đểquản lý trạng thái trò chơi như: bắt đầu trò chơi, cập nhật trạng thái và thoát khỏi trò chơi.File Menu.py tạo một giao diện menu game và gọi phương thức start để bắt đầu trò chơi.
Sử dụng Pygame để tạo giao diện đồ họa và xử lý sự kiện, như vẽ các đối tượng lên mànhình, xử lý phím nhấn để thay đổi hướng di chuyển của rắn và kiểm tra va chạm với mồihoặc với chính nó
1.3 Tổng kết.
Hệ thống được thiết kế để tạo ra trò chơi rắn săn mồi bằng Python
Các file chính bao gồm Menu.py, Gameplay.py và Fruit.py, mỗi file đảm nhận vai tròquản lý một phần của trò chơi
Sử dụng mô hình OOP giúp tạo ra các đối tượng có khả năng tái sử dụng và dễ dàng bảotrì
Các lớp Snake, Fruit và Main được tạo ra để quản lý các thành phần chính của trò chơi,bao gồm di chuyển, thay đổi hướng, kiểm tra va chạm và quản lý trạng thái trò chơi
Sử dụng thư viện Pygame để tạo giao diện đồ họa và xử lý sự kiện
Qui trình thực thi code từ các file này giúp quản lý và xử lý dữ liệu một cách có tổ chức
và dễ dàng mở rộng cho các tính năng và chức năng khác trong trò chơi rắn săn mồi
II.Xây dựng game rắn săn mồi.
-Giao diện khi người dùng mở game:
Start: bắt đầu
Option: tùy chọn
15 | P a g e
Trang 22 Quit: thoát game.
-Giao diện khi bắt đầu trò chơi
Hình : 13 Giao diện game play.
-Giao diện game over khi va chạm:
16 | P a g e
Hình : 12 Giao diện khi vừa khởi chạy game.
Trang 23 Game over: thông báo trò chơi kết thúc.
Your score: thông báo điểm
Back: chọn để trở lại giao diện khi mở game
Continue: chọn để chơi lại từ đầu
-Giao diện Option:
Volume: dùng để tăng giảm âm thanh
Brightnes: dùng để tăng giảm độ sáng
Back: dùng để trở về giao diện khi mở game
17 | P a g e
Hình : 14 Giao diện game over khi va chạm.