Để đáp ứng nhu cầu ngày một gia tăng về các tựa game 2D,nhóm chúng em đã lên ý tưởng và xây dựng ứng dựng trò chơi giải trí “Gameđua xe” dựa trên ngôn ngữ lập trình python... CHƯƠNG 1: T
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
NGÔN NGỮ LẬP TRÌNH PYTHON
XÂY DỰNG GAME ĐUA XE
Giảng viên hướng dẫn : Th.S TRẦN THỊ MINH THU Sinh viên thực hiện : LƯƠNG THỊ XUÂN MAI
: LÊ THỊ QUỲNH HOA Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Khóa : 2021-2026
Hà Nội, tháng 11 năm 2024
Trang 2PHIẾU CHẤM ĐIỂM STT Họ và tên
Trang 3MỤC LỤC
Trang 4DANH MỤC HÌNH ẢNH
Trang 5LỜI MỞ ĐẦU
Trong cuộc sống hiện đại ngày nay, khi nền kinh tế ngày càng phát triểnngành công nghệ thông tin là một trợ thủ đắc lực cho hầu hết các ngành nghề
Sự góp mặt của các chương trình ứng dụng đã mang lại nhiều lợi ích thiết thực
và làm cho cách thức vận hành và hoạt động của các liên ngành khác trở lên linhhoạt và mang lại hiệu quả cao Đặc biệt, trong thời đại công nghệ 4.0 chúng tagần như không thể thiếu được những khái niệm liên quan đến công nghệ thôngtin, từ các phương tiện truyền thông, xã hội, văn hóa, giải trí, khoa học kỹ thuậtcho đến lĩnh vực kinh doanh, quản lý, y tế, giáo dục…Một trong những lĩnh vựcđược nhiều người quan tâm là lĩnh vực giải trí Thị trường game đã chứng kiến
sự bùng nổ của các tựa game 2D Với sự phổ biến ngày càng tăng của các thiết
bị di động như điện thoại thông minh và máy tính bảng, game 2D đang trở thànhmột thể loại rất hot Để đáp ứng nhu cầu ngày một gia tăng về các tựa game 2D,nhóm chúng em đã lên ý tưởng và xây dựng ứng dựng trò chơi giải trí “Gameđua xe” dựa trên ngôn ngữ lập trình python
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ PYTHON
1.1.Giới thiệu ngôn ngữ lập trình python
Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứngdụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhàphát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nềntảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất
cả các loại hệ thống và tăng tốc độ phát triển
Lịch sử phát triển python
Guido Van Rossum, một lập trình viên máy tính ở Hà Lan, đã tạo raPython Ông bắt đầu phát triển ngôn ngữ này vào năm 1989 tại CentrumWiskunde & Informatica (CWI), ban đầu chỉ là một dự án tiêu khiển để giúpông giết thời gian trong dịp Giáng sinh Tên gọi của ngôn ngữ này được lấy cảmhứng từ chương trình truyền hình Monty Python's Flying Circus của đài BBC vìGuido Van Rossum là một “fan cứng” của chương trình này
Lịch sử các phiên bản Python
Guido Van Rossum cho ra mắt phiên bản đầu tiên của ngôn ngữ Python(phiên bản 0.9.0) vào năm 1991 Ngôn ngữ này đã bao gồm các tính nănghữu ích như một số kiểu dữ liệu và hàm để xử lý lỗi
Python 1.0 đã được ra mắt vào năm 1994 với các hàm mới để dễ dàng xử
lý danh sách dữ liệu, chẳng hạn như ánh xạ, lọc và lược bỏ
Python 2.0 đã được ra mắt vào ngày 16 tháng 10 năm 2000, với các tínhnăng hữu ích mới cho lập trình viên, chẳng hạn như hỗ trợ ký tự Unicode
và cách xử lý chi tiết một danh sách nhanh chóng hơn
Python 3.0 đã được ra mắt vào ngày 3 tháng 12 năm 2008 Phiên bản nàybao gồm các tính năng như hàm in và hỗ trợ nhiều hơn cho việc phân chia
số và xử lý lỗi
Các tính năng của python
- Phân tích dữ liệu và học máy với mã Python
Với lượng dữ liệu ngày càng tăng mà chúng ta có ngày nay, điều quantrọng
là phải sử dụng nó trong quá trình ra quyết định Với công nghệ máy học vàphân
1
Trang 7tích dữ liệu, chúng ta có thể đạt được mục đích này Bạn sẽ thích thú khi biếtrằng
ngôn ngữ lập trình Python là động lực đằng sau việc thu thập, tổ chức và thaotác
dữ liệu này
- Phát triển web và phát triển phần mềm
Ngôn ngữ Python cũng giúp phát triển web và phát triển phần mềm Nó hỗtrợ nhiều khung như Pyramid, Django và Flask Các khung này đã góp phần tạoracác trang web nổi tiếng như Spotify, Reddit và Mozilla Với quản lý nội dung,
ủy quyền và truy cập cơ sở dữ liệu, các phiên bản khác nhau của ngôn ngữ lậptrình Python là ngôn ngữ hàng đầu để phát triển web
- Tự động hóa hoặc viết kịch bản bằng mã Python
Tạo mã để hoàn thành các tác vụ tự động được gọi là viết kịch bản Bạn cóthể sử dụng Python cho mục đích này Việc sử dụng kịch bản thường được thựchiện trong các công việc lặp đi lặp lại Mã Python có thể giúp bạn tự động hóaquy trình Nó giúp tiết kiệm thời gian, tài nguyên và công sức thủ công
- Kiểm thử phần mềm và tạo nguyên mẫu
Theo dõi lỗi, kiểm soát tòa nhà, phát triển web, phát triển phần mềm vàkiểm
tra phần mềm là những khía cạnh quan trọng mà Python có thể xử lý Với mãPython để giải cứu bạn, thời gian cần thiết cho tất cả các hoạt động này có thểđược giảm xuống mức tối thiểu, do đó cho phép bạn tập trung vào những gì cầnthiết
Đặc điểm của python
- Dễ học và sử dụng: Python được thiết kế để đơn giản và dễ hiểu, đặc biệt là
đối với những người mới bắt đầu với lập trình Cú pháp của Python rất đơngiản và dễ đọc, giúp cho việc phát triển ứng dụng nhanh chóng và hiệu quảhơn
- Đa nền tảng: Python có thể chạy trên nhiều nền tảng khác nhau, bao gồm
Windows, macOS và Linux Điều này giúp cho việc phát triển ứng dụng trởnên linh hoạt hơn
2
Trang 8- Mã nguồn mở: Python là một ngôn ngữ mã nguồn mở, điều này cho phép lập
trình viên truy cập vào mã nguồn của Python và tùy chỉnh nó để phù hợp vớinhu cầu của riêng mình
- Hỗ trợ đa dạng: Python cung cấp cho người dùng một số lượng lớn các thư
viện và module tiện ích để giúp cho việc phát triển ứng dụng trở nên đơngiản và nhanh chóng hơn
- Hỗ trợ đa mô hình: Python hỗ trợ nhiều mô hình lập trình khác nhau, bao
gồm lập trình hướng đối tượng, lập trình hàm và lập trình thủ tục Điều nàygiúp cho lập trình viên có thể lựa chọn mô hình phù hợp với ứng dụng củamình
Với các đặc điểm trên, Python đã trở thành một trong những ngôn ngữ lậptrình phổ biến nhất trên thế giới, được sử dụng rộng rãi trong nhiều lĩnh vựckhác nhau như khoa học dữ liệu, phát triển web, trí tuệ nhân tạo, viễn thông,game, v.v
3
Trang 9CHƯƠNG 2: MÔ TẢ BÀI TOÁN 2.1 Bài toán đua ô tô vượt chướng ngại vật
Lập trình phần mềm trò chơi đua ô tô với các yêu cầu:
- Sử dụng kỹ thuật lập trình hướng đối tượng
- Có các xe đối thủ cạnh tranh trên đường đua
- Có chướng ngại vật
- Khi người chơi đạt tới điểm số quy định sẽ tự động nâng mức khó của trò
chơi
- Cho phép người chơi ghi lại số điểm đạt được
Mô tả bài toán
Game đua xe ô tô trên máy tính cũng cần phải có:
- Khởi tạo trò chơi: là một Frame cho phép người chơi biết một số thông tin
cần thiết, cách thức điều khiển trò chơi
- Người điểu khiển xe đua: người chơi sử dụng máy tính để điều khiển xe
- Đường đua: nơi các xe tham gia đua Trên đường đua gồm có xe của
người chơi, các chướng ngại vật mà những người tham gia đua xe cầnphải vượt qua
- Vỉa hè: là những rào cản bên ngoài, nó có nhiệm vụ giưới hạn các xe chỉ
được phép đi trên vị trí lòng đường đã quy định, không được phép vượt rangoài phạm vi này
- Chướng ngại vật: một điều không thể thiếu khi nói đến trò chơi đua xe ô
tô Ngoài xe của người chơi còn có xe của những đối thủ cùng tham giatrò chơi, các chướng ngại vật trên đường, nếu những xe tham gia giaothông gặp nhau sẽ gây ra va chạm và xe của người chơi không thể đithẳng tiếp
4
Trang 10- Mức độ khó của trò chơi: với bài toán này, do có yêu cầu tự động nâng
mức độ khó của trò chơi nên bối cảnh của đường đua xe thay đổi tuỳ theocác mức độ khó của trò chơi
2.2 Thư viện pygame
Thư viện Pygame là một bộ công cụ mã nguồn mở cho phép lập trình viêntạo ra các ứng dụng trò chơi và đa phương tiện cho các nền tảng máy tính khácnhau, bao gồm Windows, macOS và Linux Pygame được phát triển bằng ngônngữ lập trình Python, và được xây dựng trên thư viện SDL (Simple DirectMediaLayer), một thư viện đa nền tảng hỗ trợ đa phương tiện
Pygame cung cấp các chức năng cơ bản cho phép lập trình viên tạo ra cácđối tượng đồ họa, âm thanh và điều khiển hoạt động của chúng Điều này chophép lập trình viên tạo ra các trò chơi và ứng dụng trực quan, động đa chiều, và
có khả năng tương tác với người sử dụng
Một số tính năng của thư viện Pygame bao gồm:
- Hỗ trợ đa nền tảng: Pygame hỗ trợ các nền tảng máy tính đa dạng, bao
gồm Windows, macOS và Linux
- Đồ họa và âm thanh: Pygame cho phép lập trình viên tạo ra các đối tượng
đồ họa như hình ảnh, văn bản, và các hiệu ứng đặc biệt Ngoài ra, Pygamecòn cung cấp các chức năng để tạo ra các hiệu ứng âm thanh và lấy âmthanh từ người dùng
- Điều khiển và tương tác: Pygame cho phép lập trình viên điều khiển hoạt
động của các đối tượng đồ họa, và tương tác với người dùng thông quabàn phím, chuột và màn hình cảm ứng
Sử dụng thư viện Pygame, lập trình viên có thể tạo ra các trò chơi và ứngdụng đa phương tiện phong phú, với những tính năng độc đáo và tương tác caovới người dùng
2.3 Ngôn ngữ sử dụng
Python là một ngôn ngữ lập trình thông dịch, đa mục đích và mã nguồn
mở được phát triển bởi Guido van Rossum vào năm 1989 Python là một trongnhững ngôn ngữ lập trình phổ biến nhất trên thế giới, được sử dụng cho nhiềumục đích khác nhau, từ phát triển web đến khoa học dữ liệu và trí tuệ nhân tạo.Các đặc điểm của Python bao gồm:
- Dễ học và sử dụng: Python được thiết kế để đơn giản và dễ hiểu, đặc biệt
là đối với những người mới bắt đầu với lập trình Cú pháp của Python rất
5
Trang 11đơn giản và dễ đọc, giúp cho việc phát triển ứng dụng nhanh chóng vàhiệu quả hơn.
- Đa nền tảng: Python có thể chạy trên nhiều nền tảng khác nhau, bao gồm
Windows, macOS và Linux Điều này giúp cho việc phát triển ứng dụngtrở nên linh hoạt hơn
- Mã nguồn mở: Python là một ngôn ngữ mã nguồn mở, điều này cho phép
lập trình viên truy cập vào mã nguồn của Python và tùy chỉnh nó để phùhợp với nhu cầu của riêng mình
- Hỗ trợ đa dạng: Python cung cấp cho người dùng một số lượng lớn các
thư viện và module tiện ích để giúp cho việc phát triển ứng dụng trở nênđơn giản và nhanh chóng hơn
- Hỗ trợ đa mô hình: Python hỗ trợ nhiều mô hình lập trình khác nhau, bao
gồm lập trình hướng đối tượng, lập trình hàm và lập trình thủ tục Điềunày giúp cho lập trình viên có thể lựa chọn mô hình phù hợp với ứng dụngcủa mình
Với các đặc điểm trên, Python đã trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới, được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như khoa học dữ liệu, phát triển web, trí tuệ nhân tạo, viễn thông, game, v.v
* Cài đặt Python:
Cài đặt bộ thư viện: pip install pygame
Cài đặt ngôn ngữ lập trình Python: Python 3.10
(https://www.python.org/downloads/windows/)
Môi trường lập trình Python: Python
(https://www.python.com/)
6
Trang 12CHƯƠNG 3: CÀI ĐẶT 3.1 Giao diện ban đầu
7
Trang 13Hình 3 1 Giao diện ban đầu
Code set kích thước cửa sổ game
Xét các kích thước, vị trí cho đường chính, đường biên và các vạch kẻtrên đường
Vẽ nền cỏ, đường đua, đường biên và các vạch kẻ trên đường, đồng thờitạo chuyển động cho vạch kẻ trên đường dọc theo trục Oy
8
Trang 153.2 Thêm các phương tiện giao thông
Hình 3 2 Giao diện game khi có phương tiện giao thông
10
Trang 16 Lớp đối tượng phương tiện
Lớp đối tượng phương tiện người chơi
Tạo nhóm xe
Vẽ phương tiện xe người chơi và xe lưu thông
11
Trang 17 Cho xe lưu thông di chuyển
Điều khiển xe người chơi
12
Trang 18 Kiểm tra va chạm khi xe người chơi di chuyển
Kiểm tra va chạm khi xe người chơi đứng yên
Hiển thị điểm số
13
Trang 193.3 Giao diện kết thúc
Hình 3 3 Giao diện kết thúc
14
Trang 20 Hiển thị khung thông báo trò chơi kết thúc cùng tùy chọn chơi lại hay không
Xử lý các tùy chọn của người chơi khi game kết thúc
15
Trang 21- Có thể thiết kế một game 2D đơn giản.
Xong do kỹ năng lập trình còn kém nên giao diện chưa thực sự thân thiệnvới người dùng và chỉ đáp ứng được một số yêu cầu của bài toán Trong thờigian tới em sẽ tiếp tục hoàn thiện các chức năng và bổ sung các chức năng mới
để mang lại sự tiện dụng cho người sử dụng Trong tương lai em sẽ hoàn thiện
đề tài và cố gắng đáp ứng đầy đủ nhất các yêu cầu hệ thống thực đòi hỏi
Vì vậy kính mong quý thầy cô có thể chỉ bảo để em có thể hoàn thành đềtài này tốt hơn
Em xin chân thành cảm ơn!
16
Trang 22TÀI LIỆU THAM KHẢO
17