Python là một trong những ngôn ngữ lập trình phổ biến và dễ học, được ưachuộng trong nhiều lĩnh vực, bao gồm phát triển trò chơi.. Phát triển kỹ năng lập trình: Áp dụng các kiến thức về
Trang 1TRƯỜNG ĐẠI HỌC KIÊN GIANG
KHOA THÔNG TIN & TRUYỀN THÔNG
-XÂY DỰNG TRÒ CHƠI ĐUA XE VƯỢT CHƯỚNG
NGẠI VẬT
BÁO CÁO LẬP TRÌNH PYTHON
Ngành: Công nghệ thông tin
Kiên Giang - năm 2024
Trang 2TRƯỜNG ĐẠI HỌC KIÊN GIANG
KHOA THÔNG TIN & TRUYỀN THÔNG
Kiên Giang - năm 2024
Trang 3LỜI CẢM ƠN
Trước hết, chúng em xin gửi lời cảm ơn chân thành nhất đến toàn
bộ quý thầy cô Trường Đại học Kiên Giang, Quý thầy cô Khoa Thông tin & Truyền thông chuyên ngành Công nghệ thông tin đã dạy dỗ, truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian dài học tập và rèn luyện tại trường Chúng em xin gửi lời cảm ơn sâu sắc đến
giáo viên hướng dẫn - Thầy Võ Hoàng Nhân, người đã bỏ ra tâm huyết
của mình để truyền đạt cho chúng em những kiến thức quý báo trong quá trình học tập và rèn luyện.
Với vốn kiến thức và kinh nghiệm hạn hẹp nên bài báo cáo của chúng em không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được những ý kiến đóng góp, phê bình của quý thầy cô và các bạn tham khảo từ đó chúng em sẽ phát triển bài làm được tốt hơn Đó sẽ là hành trang quý giá để chúng em có thể hoàn thiện mình sau này.
Chúng em xin chân thành cảm ơn!
Kiên Giang, ngày tháng 06 năm 2024
Sinh viên thực hiện
Trang 4NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
Tổng điểm:
, ngày tháng 06 năm 2024
NGƯỜI HƯỚNG DẪN ( ký tên và đóng dấu )
Trang 5M C L C Ụ Ụ
MỤC LỤC 4
DANH MỤC HÌNH ẢNH 6
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 7
1.1 Giới thiệu đề tài 7
1.2 Mục đích đề tài 7
CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THÔNG TIN 8
2.1 Chức năng 8
2.2 Phân tích chức năng 8
2.2.1 Chức năng điều khiển xe 8
2.2.2 Chức năng tạo chướng ngại vật 8
2.2.3 Chức năng tính điểm 8
2.2.4 Chức năng quản lý va chạm 9
2.2.5 Chức năng giao diện người dùng 9
2.2.6 Chức năng âm thanh 9
2.2.7 Chức năng quản lý điểm số 9
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 10
3.1 Cơ sở lý thuyết 10
3.1.1 Khái niệm về lập trình game 10
3.1.2 Thư viện Pygame 11
3.2 Công nghệ được sử dụng 11
3.2.1 Ngôn ngữ lập trình Python 11
3.2.2 Công cụ Visual Studio Code 14
3.2.3 MySQL 16
CHƯƠNG 4: KẾT QUẢ ĐỀ TÀI 18
Trang 64.1 Các mục xử lý 18
4.2 Giao diện 18
4.3.1 Chức năng khởi tạo trò chơi 18
4.3.2 Chức năng hiển thị điểm số 22
4.3.3 Chức năng va chạm và cập nhật trạng thái trò chơi 24
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 30
5.1 Kết quả đạt được 30
5.2 Hướng phát triển đề tài 30
5.3 Kiến nghị 31
Trang 7DANH M C HÌNH Ụ
Hình 1 Tính phổ biến của Top 10 ngôn ngữ lập trình 08/2023 theo PYPL 12
Hình 2 Một số ưu điểm của Python 14
Hình 3 Hình giao diện chờ 18
Hình 4 Hình giao diện đếm ngược bắt đầu 19
Hình 5 Hình giao diện trò chơi và hiển thị điểm số 22
Hình 6 Hình giao diện khi va chạm, kết thúc trò chơi 24
Trang 8CH ƯƠ NG 1: GI I THI U Đ TÀI Ớ Ệ Ề 1.1 Gi i thi u đ tài ớ ệ ề
Trong kỷ nguyên số hóa hiện nay, ngành công nghiệp trò chơi điện tử đangphát triển mạnh mẽ và trở thành một phần quan trọng của nền kinh tế toàn cầu Tròchơi điện tử không chỉ mang lại niềm vui giải trí mà còn thúc đẩy sự sáng tạo, tư duylogic và kỹ năng giải quyết vấn đề cho người chơi Với sự phát triển của công nghệ,việc xây dựng và phát triển các trò chơi điện tử đã trở nên dễ tiếp cận hơn bao giờ hết
Python là một trong những ngôn ngữ lập trình phổ biến và dễ học, được ưachuộng trong nhiều lĩnh vực, bao gồm phát triển trò chơi Với các thư viện mạnh mẽnhư Pygame, Python cung cấp các công cụ cần thiết để xây dựng các trò chơi từ đơngiản đến phức tạp Nhằm ứng dụng những kiến thức đã học và khám phá khả năng củaPython trong việc phát triển trò chơi, nhóm chúng em đã chọn đề tài "Xây dựng tròchơi đua xe vượt chướng ngại vật"
1.2 M c đích đ tài ụ ề
Mục tiêu chính của đề tài là phát triển một trò chơi đua xe vượt chướng ngạivật, giúp người chơi giải trí và nâng cao kỹ năng phản xạ Cụ thể, đề tài sẽ tập trungvào các mục tiêu sau:
1 Xây dựng trò chơi cơ bản: Phát triển một trò chơi đua xe với các chức năng cơ bản như điều khiển xe, tính điểm và quản lý các chướng ngại vật
2 Tối ưu hóa trải nghiệm người chơi: Thiết kế giao diện thân thiện, âm thanh sống động và đồ họa bắt mắt để thu hút người chơi
3 Phát triển kỹ năng lập trình: Áp dụng các kiến thức về lập trình Python và
sử dụng thư viện Pygame để xây dựng trò chơi hoàn chỉnh
Trang 9CH ƯƠ NG 2: KH O SÁT VÀ PHÂN TÍCH THÔNG TIN Ả
2.1 Ch c năng ứ
Các chức năng này được xác định dựa trên mục tiêu của trò chơi, nhu cầu củangười chơi và khả năng thực hiện bằng Python, thư viện Pygame và MySQL để quản
lý điểm số Các chức năng chính bao gồm:
- Chức năng điều khiển xe
- Chức năng tạo chướng ngại vật
- Chức năng quản lý điểm
- Chức năng tính điểm
- Chức năng quản lý va chạm
- Chức năng giao diện người dùng
- Chức năng âm thanh
2.2 Phân tích ch c năng ứ
2.2.1 Ch c năng đi u khi n xe ứ ề ể
Chức năng điều khiển xe là chức năng quan trọng của chương trình Chúng chophép người chơi sử dụng các phím điều khiển trái/phải để di chuyển xe sang trái hoặcphải trên đường đua
2.2.2 Ch c năng t o ch ứ ạ ướ ng ng i v t ạ ậ
Chức năng tạo chướng ngại vật làm cho chướng ngại vật sẽ xuất hiện ngẫunhiên trên đường đua và người chơi phải tránh né chúng Chương trình sẽ tạo chướngngại vật ở các vị trí ngẫu nhiên trên đường đua và chướng ngại vật sẽ di chuyển từtrên xuống dưới màn hình với tốc độ tăng dần theo thời gian
2.2.3 Ch c năng tính đi m ứ ể
Chức năng tính điểm sẽ tính điểm dựa trên khoảng cách người chơi đã dichuyển và số chướng ngại vật đã vượt qua Điểm số sẽ tăng dần theo thời gian vàkhoảng cách di chuyển được Mỗi chướng ngại vật vượt qua sẽ tăng thêm điểm chongười chơi
Trang 102.2.4 Ch c năng qu n lý va ch m ứ ả ạ
Chức năng quản lý va chạm sẽ xác định khi xe đua va chạm với chướng ngạivật và xử lý sự kiện va chạm Chương trình sẽ kiểm tra va chạm giữa xe đua vàchướng ngại vật, nếu có xảy ra va chạm, trò chơi sẽ kết thúc và tổng kết điểm số
2.2.5 Ch c năng giao di n ng ứ ệ ườ i dùng
Chương trình sẽ hiển thị các thông tin cần thiết như điểm số, điểm số cao nhất
ở màn hình giao diện trò chơi
2.2.6 Ch c năng âm thanh ứ
Chức năng âm thanh nhằm thêm các hiệu ứng âm thanh để tăng tính hấp dẫncho trò chơi gồm có âm thanh khi xe di chuyển, khi bắt đầu và khi kết thúc trò chơi
2.2.7 Ch c năng ứ qu n lý ả đi m s ể ố
Chức năng quản lý điểm số sẽ lưu điểm số cao nhất của người chơi vào cơ sở
dữ liệu và hiển thị chúng tại màn hình giao diện của trò chơi
Trang 11CH ƯƠ NG 3: C S LÝ THUY T VÀ CÔNG NGH Ơ Ở Ế Ệ
3.1 C s lý thuy t ơ ở ế
Các cơ sở lý thuyết để xây dựng phần mềm:
- Lập trình Python
- Cơ sở dữ liệu MySQL
- Thư viện Pygame
- Lập trình game
3.1.1 Khái ni m v l ệ ề ậ p trình game
Lập trình game là quá trình tạo ra các trò chơi thông qua việc sử dụng các ngônngữ lập trình và công cụ phát triển phần mềm Tính độc đáo của nó nằm ở cách kếthợp nghệ thuật, khoa học và công nghệ để tạo ra trải nghiệm giải trí độc đáo chongười chơi
90% nội dung độc đáo có thể là việc tập trung vào các phương diện sau:
• Thiết kế trò chơi: Bao gồm việc xây dựng cốt truyện, tạo ra thế giới ảo vàlập kế hoạch cho cơ chế trò chơi Điều này bao gồm cả việc phát triểnnhân vật, định dạng game cũng như cân nhắc về yếu tố giải đố, tháchthức
• Đồ họa và âm thanh: Trò chơi không chỉ thu hút người chơi bằng cáchchơi mà còn thông qua hình ảnh và âm nhạc Lập trình game đòi hỏi sựsáng tạo trong việc thiết kế đồ họa và âm thanh để tạo ra một thế giới sốngđộng, hấp dẫn
• Công nghệ và hiệu suất: Việc tối ưu hóa trò chơi để chạy mượt mà trênnhiều nền tảng và thiết bị là một phần quan trọng của quá trình lập trìnhgame Điều này đòi hỏi kiến thức sâu rộng về lập trình, hiểu biết về cáccông nghệ mới nhất
• Trải nghiệm người dùng: Một trò chơi thành công không chỉ là về cách nóđược phát triển mà còn là về cách người chơi tương tác với game Lập
Trang 12trình game đòi hỏi sự tập trung đến trải nghiệm người dùng, từ giao diệnngười dùng đến cách điều khiển và phản hồi.
3.1.2 Th vi n Pygame ư ệ
Pygame là một thư viện của Python được thiết kế để phát triển trò chơi.Pygame xây dựng trên SDL (Simple DirectMedia Layer), cung cấp các công cụcần thiết để tạo trò chơi và các ứng dụng đa phương tiện Một số thành phần chínhcủa Pygame bao gồm:
• Module hiển thị (Display module): Quản lý cửa sổ trò chơi và bề mặt(surface) để vẽ đồ họa
• Module sự kiện (Event module): Xử lý các sự kiện đầu vào như phím bấm
Trang 13Python hoàn toàn tạo kiểu tự động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy
nó tương tự như Perl, Ruby, Scheme, Smalltalk và Tcl Python là ngôn ngữ có mãnguồn mở, và đang có cộng đồng người dùng lớn Hình 1.1 thể hiện sự phổ biến củaPython só với các ngôn ngữ lập trình khác tính đến 08/2023
Hình 1 Tính phổ biến của Top 10 ngôn ngữ lập trình 08/2023 theo PYPL
2 Đặc điểm
Một số ưu điểm của ngôn ngữ lập trình Python có thể kể đến như sau:
• Cú pháp đơn giản, dễ đọc, dễ học: Python làm cho việc lập trình trở nên đơn giản, đặc biệt là các tác vụ nhập xuất (input và output), cho phép bạn tập trung vào những giải pháp chứ không phải cú pháp của ngôn ngữ lập trình Một cách so sánh trừu tượng, Python tạo điều kiện cho bạn “giao tiếp ngôn ngữ” hơn là việc phải “học ngôn ngữ” một cách truyền thống Mặc dù đôi lúc sự đơn giản này có thể gây ra một số phiền phức trong việc quản lý chương trình.
• Miễn phí, mã nguồn mở: Vì là mã nguồn mở, bạn không những có thể sử dụng các phần mềm, chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của nó Python có cộng đồng rất lớn, không ngừng cải
Trang 14thiện nó mỗi lần cập nhật Rất nhiều mã nguồn mở liên quan đến trí tuệ nhân tạo, máy học đang có sẵn trên Python, để người dùng có thể phát triển những ứng dụng cao cấp cho các mục đích khác nhau thâm chí là thương mại.
• Tương thích đa nền tảng: Các chương trình Python có thể chuyển từ hệ điều hành này sang hệ điều hành khác mà không cần bất kỳ thay đổi nào, chương trình có thể chạy tốt trên các hệ điều hành khác nhau như Windows, MacOS, Linux.
• Tính mở rộng và nhúng: Nếu bạn lập trình một ứng dụng có tính phưc tạp lớn, bạn có thể dễ dàng kết hợp các khối, mã lệnh C, C++, và những ngôn ngữ khác (có thể gọi được từ C) vào một chương trình của Python Điều này cung cấp cho ứng dụng của bạn những tính năng tốt hơn cũng như ngôn ngữ kịch bản mà những ngôn ngữ lập trình khó có thể làm được.
• Ngôn ngữ thông dịch cấp cao: Không giống như C hay C++, với Python bạn không phải lo lắng về những vấn đề như tràn bộ nhớ, quản lý bộ nhớ, dọn dẹp rác hay dữ liệu vô nghĩa khác sau khi chạy chương trình Chương trình dịch của Python sẽ tự động dọn dẹp, giải phóng bộ nhớ giúp chúng ta sau khi hoàn thành chương trình, do đó bạn không cần lo lắng về bất kỳ hoạt động gì ở cấp thấp.
• Thư viện ứng dụng lớn giúp giải quyết các công việc phổ biến: Python có một số lượng lớn thư viện tiêu chuẩn, giúp cho công việc lập trình của bạn trở nên dễ dàng hơn rất nhiều vì bạn không phải tự viết tất cả mã lệnh Những thư viện này đã được kiểm tra kỹ càng và được sử dụng bởi cộng đồng phát triển Do đó bạn có thể yên tâm với chương trình hay ứng dụng của bạn.
• Hướng đối tượng: Python hỗ trợ người dùng phương pháp lập trình hướng đối tượng (Object Oriented Programming – OOP), điều đó giúp lập trình viên giải quyết những công việc phức tạp trong cuộc sống một cách trực
Trang 15quan Hơn nữa, với OOP, bạn có thể quan sát, phân tích những vấn đề phức tạp trong tự nhiên thành những tập nhỏ hơn bằng cách tạo ra các lớp, các đối tượng trong ngôn ngữ lập trình để giải quyết công việc.
Hình 2 Một số ưu điểm của Python
3.2.2 Công cụ Visual Studio Code.
1 Khái niệm
Visual Studio Code được biết đến là một trình biên tập lập trình code miễn phídành cho Windows, Linux và macOS Nó được phát triển bởi Microsoft là sự kếthợp hoàn hảo giữa IDE và Code Editor
Trình biên tập này được hỗ trợ chức năng debug, đi kèm với Git, có syntaxhighlighting, tự hoàn thành mã thông minh, snippets, cùng đó là cải tiến mã nguồn.Ngoài ra, Visual Studio Code còn cho phép người dùng thay đổi theme, phím tắt,
và các tùy chọn khác
2 Tính năng:
• Hỗ trợ nhiều ngôn ngữ lập trình
Trang 16• Là trình biên tập lập trình code cho nên Visual Studio Code được hỗ trợ khánhiều ngôn ngữ lập trình: C/C++, C#, F#, Visual Basic, HTML, CSS, JavaScript,PHP, … Cho nên khi sử dụng, nó dễ dàng phát hiện và đưa ra thông báo nếuchương chương trình xảy ra lỗi.
• Visual Studio Code hỗ trợ đa nền tảng
• Như trên về định nghĩa Visual Studio Code là gì thì chúng ta có thể dễ dàngnhận ra trình biên tập này có thể hỗ trợ tên đa nền tảng: Windows, Linux vàmacOS
• Cung cấp kho tiện ích mở rộng
• Visual Studio Code còn cung cấp kho tiện ích mở rộng khá hữu ích đối với cáclập trình viên Khi họ muốn sử dụng một ngôn ngữ lập trình không nằm trong sốcác ngôn ngữ Visual Studio hỗ trợ, họ có thể tải xuống tiện ích mở rộng mà không
hề làm giảm hiệu năng của phần mềm
• Kho lưu trữ an toàn
• Visual Studio Code được nhận xét là một kho lưu trữ vô cùng an toàn Ngườidùng có thể hoàn toàn yên tâm vì nó dễ dàng kết nối với Git hoặc bất kỳ kho lưutrữ hiện có nào
• Hỗ trợ website
• Visual Studio Code hỗ trợ nhiều ứng dụng website Ngoài ra, nó cũng có mộttrình soạn thảo và thiết kế website không hề khó sử dụng
• Lưu trữ dữ liệu dạng phân cấp
• Visual Studio Code cung cấp các thư mục cho một số tệp đặc biệt quan trọng.Đặc biệt, trình biên tập này còn có khả năng lưu trữ dữ liệu dạng phân cấp
• Hỗ trợ viết Code
• Đây là một tính năng khá hay và hỗ trợ rất nhiều cho các lập trình viên VisualStudio Code sẽ đề xuất cho lập trình viên các tùy chọn thay thế nếu có sự thay đổichút ít
• Hỗ trợ thiết bị đầu cuối
• Visual Studio Code có tích hợp thiết bị đầu cuối, giúp người dùng không cần tabchuyển đổi giữa hai màn hình hoặc trở về thư mục gốc khi thực hiện các thao tác
Trang 17• Người dùng Visual Studio Code có thể mở cùng lúc nhiều tệp tin và thư mụckhông có liên quan đến nhau.
3.2.3 MySQL
1 Khái niệm
MySQL là một hệ thống quản trị về cơ sở dữ liệu với mã nguồn mở (được gọitắt là RDBMS) và đang hoạt động theo mô hình dạng client-server Đối với RDBMS –Relational Database Management System thì MySQL đã được tích hợp apache vàPHP
MySQL là cơ sở dữ có trình giao diện trên Windows hay Linux, cho phépngười sử dụng có thể thao tác các hành động liên quan đến nó Việc tìm hiểu từngcông nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai côngnghệ PHP và MySQL là một công việc cần thiết và rất quan trọng
2 Cơ thế hoạt động
• MySQL đang tạo ra bảng để có thể lưu trữ dữ liệu và định nghĩa về sự liên quangiữa những bảng đó
• Client sẽ trực tiếp gửi yêu cầu SQL bằng 1 lệnh đặc biệt có trên MySQL
• Ứng dụng tại server sẽ tiến hành phản hồi thông tin cũng như trả về những kết quảtrên máy client
3 Ưu điểm
• Nhanh chóng: Nhờ vào việc đưa ra một số những tiêu chuẩn và cho phép
MySQL làm việc hiệu quả cũng như tiết kiệm chi phí, giúp gia tăng tốc độ thựcthi
• Mạnh mẽ và khả năng mở rộng: MySQL hoàn toàn có thể xử lý số lượng lớn dữliệu và đặc biệt hơn thế nữa thì nó còn có thể mở rộng nếu như cần thiết
• Đa tính năng: Ưu điểm MySQL là gì? MySQL hiện đang hỗ trợ nhiều nhữngchức năng SQL rất được mong chờ từ 1 hệ quản trị CSDL quan hệ cả gián tiếpcũng như trực tiếp
• Độ bảo mật cao: MySQL là gì? Hiện tại nó đang rất thích hợp cho những ứngdụng truy cập CSDL thông qua internet khi sở hữu rất nhiều những tính năng vềbảo mật và thậm chí là đang ở cấp cao