1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chuyên Đề học phần ngôn ngữ lập trình python Đề tài xây dựng game flappy bird

30 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Game Flappy Bird
Tác giả Lê Hồng Quang, Lê Thế Việt
Người hướng dẫn Trần Thị Minh Thu
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 3,61 MB

Nội dung

Trong quá trình thực hiện, chúng em sẽ phân tích, thiết kế và lập trình game vớingôn ngữ Python, sử dụng thư viện Pygame để hỗ trợ các yếu tố đồ họa và âmthanh.. Với cú pháp rõ ràng và g

Trang 1

TRƯỜ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

ĐỀ TÀI: XÂY DỰNG GAME FLAPPY BIRD

Sinh viên thực hiện : LÊ HỒNG QUANG

LÊ THẾ VIỆT Giảng viên hướng dẫn : TRẦN THỊ MINH THU

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 6

CHƯƠNG 1: KHẢO SÁT VÀ XÁC LẬP DỰ ÁN 7

1.1 Khảo sát hiện trạng 7

1.1.1 Tổng quan về Flappy Bird 7

1.1.2 Cách thức hoạt động 7

1.2 Xác lập dự án 9

1.2.1 Kế hoạch triển khai dự án 9

1.2.2 Ngôn ngữ lập trình 9

1.2.3 Công cụ phát triển 9

CHƯƠNG 2: GIỚI THIỆU VỀ PYTHON VÀ PHÂN TÍCH BÀI TOÁN 10

2.1 Giới thiệu về Python 10

2.1.1 Lịch sử và sự phát triển của Python 10

2.1.2 Ưu điểm và nhược điểm của Python 12

2.1.3 Ứng dụng của Python 15

2.1.4 Các ứng dụng Python áp dụng vào bài toán 17

2.2 Phân tích bài toán 20

2.2.1 Xác định Actor và UC tổng quát 20

CHƯƠNG 3: TRIỂN KHAI VÀ KẾT QUẢ 23

3.1 Môi trường và công cụ phát triển 23

3.2 Quy trình cài đặt và chạy ứng dụng 23

3.3 Source Code 24

3.4 Giao diện game 28

3.4.1 Giao diện chính 28

3.4.2 Giao diện gameplay 29

KẾT LUẬN 30

TÀI LIỆU THAM KHẢO 31

Trang 4

DANH MỤC HÌNH ẢNH

Hình 2.1: Timeline lịch sử phát triển Python 8

Hình 2.2 Ứng dụng của Python 23

Hình 2.3 Sơ đồ tuần tự game Flappy Bird 23

Hình 2.4 Giao diện Game 23

Hình 2.5 Biểu đồ lớp 24

Hình 3.1 Thiết lập thư viện pygame và các biến cơ bản 24

Hình 3.2 Xác lập các tệp âm thanh và hình ảnh của chim 24

Hình 3.3 Quản lý các thuộc tính và hình ảnh 25

Hình 3.4 Tạo và quản lý ống trò chơi 25

Hình 3.5 Tạo và quản lý nền trò chơi 26

Hình 3.6 Điều khiển vòng lặp 26

Hình 3.7 Duy trì hoạt động 27

Hình 3.8 Xử lý việc tính điểm 28

Trang 5

LỜI NÓI ĐẦU

Trong thời đại phát triển mạnh mẽ của công nghệ thông tin, lập trình không chỉ làmột kỹ năng cần thiết mà còn là công cụ mạnh mẽ giúp con người hiện thực hóa ýtưởng và sáng tạo Các trò chơi điện tử là một ví dụ rõ ràng về ứng dụng của lậptrình, không chỉ mang lại niềm vui giải trí mà còn tạo nên những trải nghiệm đầythách thức và tương tác Với mong muốn tiếp cận sâu hơn với lập trình game,nhóm chúng em đã lựa chọn đề tài "Xây dựng game Flappy Bird" làm đồ án chomôn Lập trình Python

Flappy Bird là một trò chơi nổi tiếng với cơ chế đơn giản nhưng gây nghiện, yêucầu người chơi phải khéo léo điều khiển nhân vật vượt qua các chướng ngại vật

Dù có vẻ đơn giản, nhưng việc phát triển một trò chơi như Flappy Bird đòi hỏi sựkết hợp của nhiều kiến thức từ đồ họa, vật lý, và logic lập trình Đồ án này sẽ giúpchúng em ứng dụng kiến thức đã học vào một sản phẩm thực tế, đồng thời hiểu rõhơn về các nguyên tắc cơ bản trong phát triển trò chơi

Trong quá trình thực hiện, chúng em sẽ phân tích, thiết kế và lập trình game vớingôn ngữ Python, sử dụng thư viện Pygame để hỗ trợ các yếu tố đồ họa và âmthanh Qua đó, đồ án không chỉ giúp củng cố kỹ năng lập trình mà còn mở rộnghiểu biết về cách một trò chơi được xây dựng từ ý tưởng cho đến khi hoàn thiện

Hy vọng báo cáo này sẽ không chỉ giúp nâng cao kỹ năng lập trình mà còn gópphần khơi dậy đam mê sáng tạo và phát triển các ứng dụng giải trí trong tương lai

Trang 6

CHƯƠNG 1: KHẢO SÁT VÀ XÁC LẬP DỰ ÁN

1.1 Khảo sát hiện trạng

1.1.1 Tổng quan về Flappy Bird

Flappy Bird là một trò chơi đơn giản nhưng gây nghiện, được phát triển bởiNguyễn Hà Đông, một lập trình viên người Việt Nam Trò chơi được phát hành lầnđầu vào năm 2013 và nhanh chóng trở nên nổi tiếng toàn cầu nhờ lối chơi dễ hiểunhưng khó thành thạo

1.1.2 Cách thức hoạt động

Game Flappy Bird là một trò chơi rất đơn giản nhưng đầy thách thức Ngườichơi điều khiển một chú chim nhỏ bay qua các chướng ngại vật bằng cách nhấphoặc chạm vào màn hình Mỗi lần nhấp, chú chim sẽ "vỗ cánh" để bay lên, và nếungười chơi không tiếp tục nhấp, chim sẽ rơi xuống do lực hấp dẫn Mục tiêu là đưachú chim vượt qua các cột liên tiếp mà không va chạm

Ưu điểm

1 Gameplay đơn giản, dễ hiểu:

Flappy Bird có lối chơi đơn giản, chỉ cần một thao tác chạm để điều khiển.

Điều này làm cho game dễ tiếp cận với mọi lứa tuổi, không yêu cầu người chơiphải học nhiều quy tắc phức tạp

2 Thời gian chơi ngắn:

Người chơi có thể chơi game trong khoảng thời gian ngắn, thích hợp để giải trínhẹ nhàng Đặc biệt, khi thua, người chơi có thể bắt đầu lại ngay lập tức mà khôngmất nhiều thời gian

Trang 7

3 Thiết kế đơn giản và hiệu quả:

Game có đồ họa tối giản nhưng rất dễ nhận biết, khiến nó thu hút mà không cầndùng các hiệu ứng đồ họa phức tạp Điều này cũng giúp game nhẹ, có thể chạy tốttrên hầu hết các thiết bị di động

4 Hiệu ứng xã hội:

Flappy Bird từng tạo ra một làn sóng thách thức và chia sẻ điểm số trên mạng

xã hội, giúp game trở thành hiện tượng nhờ tính cạnh tranh giữa bạn bè và cộngđồng

Nhược điểm

1 Độ khó cao, dễ gây nản lòng:

Mặc dù tính thử thách là một điểm hấp dẫn, nhưng game có độ khó cao và dễkhiến người chơi thất vọng, nản lòng khi liên tục thua mà không đạt được điểmcao

2 Thiếu chiều sâu trong nội dung:

Lối chơi của Flappy Bird rất lặp đi lặp lại và không có thêm nội dung hoặc cấp

độ mới, khiến game dễ gây nhàm chán sau một thời gian dài chơi

3 Thiếu tính năng đa dạng:

Game không có các tính năng nâng cấp, nhiệm vụ hay phần thưởng, dẫn đếnviệc người chơi không có động lực hoặc mục tiêu dài hạn ngoài việc đạt điểm cao

4 Không phù hợp với mọi người chơi:

Do độ khó cao và tính đơn giản của trò chơi, Flappy Bird có thể không hấp dẫnđối với những người chơi thích game có cốt truyện hoặc tính năng phức tạp hơn

Trang 8

1 Môi trường phát triển (IDE):

Visual Studio Code: Nhẹ, phổ biến, tích hợp tốt với Python.

PyCharm (Community Edition): Tính năng mạnh mẽ, hỗ trợ kiểm tra lỗi,

gợi ý mã

2 Thư viện:

Pygame: Xử lý đồ họa 2D, sự kiện, âm thanh và hiệu ứng.

Random: Tạo độ cao và khoảng cách ngẫu nhiên cho cột.

Sys: Quản lý thoát chương trình.

3 Công cụ hỗ trợ thiết kế:

Canva hoặc Figma: Tạo nền và các hình ảnh minh họa đơn giản

GIMP hoặc Photoshop: Chỉnh sửa hình ảnh (nếu cần)

Bfxr hoặc Audacity: Tạo âm thanh hiệu ứng (nếu không sử dụng âm thanh

có sẵn)

Trang 9

CHƯƠNG 2: GIỚI THIỆU VỀ PYTHON VÀ PHÂN TÍCH BÀI

TOÁN2.1 Giới thiệu về Python

Python là một ngôn ngữ lập trình cấp cao, được thiết kế với triết lý đơn giản, dễhiểu, và dễ học Với cú pháp rõ ràng và gần gũi với ngôn ngữ tự nhiên, Python là một lựachọn lý tưởng cho những người mới bắt đầu lập trình cũng như các chuyên gia muốn xâydựng các ứng dụng phức tạp Được đánh giá cao nhờ tính linh hoạt, Python hỗ trợ pháttriển ứng dụng trong nhiều lĩnh vực, từ phát triển phần mềm, khoa học dữ liệu, trí tuệnhân tạo (AI), học máy (Machine Learning), tự động hóa, đến phát triển ứng dụng web.Một trong những điểm nổi bật của Python là hệ sinh thái phong phú với hàng nghìnthư viện mã nguồn mở, giúp lập trình viên giải quyết các bài toán từ đơn giản đến phứctạp một cách nhanh chóng Những thư viện nổi tiếng như NumPy, Pandas, TensorFlow,hay Django đã củng cố vị thế của Python trong các lĩnh vực như phân tích dữ liệu, trí tuệnhân tạo, và phát triển ứng dụng web

Python không chỉ là một ngôn ngữ lập trình; nó còn là công cụ mạnh mẽ giúp các tổchức, nhà nghiên cứu, và doanh nghiệp tiết kiệm thời gian và chi phí nhờ khả năng tối ưuhóa quy trình làm việc

2.1.1 Lịch sử và sự phát triển của Python

Python được Guido van Rossum, một lập trình viên người Hà Lan, phát triển lầnđầu tiên vào cuối những năm 1980 Lúc bấy giờ, ông đang làm việc tại Trung tâm Nghiêncứu Quốc gia về Công nghệ Thông tin (CWI) ở Hà Lan Mục tiêu của Guido là tạo ra mộtngôn ngữ lập trình mới đơn giản, dễ sử dụng nhưng vẫn đủ mạnh để giải quyết các vấn đềphức tạp

Nguồn gốc tên gọi: Tên gọi Python không xuất phát từ loài rắn, mà từ chương trình

hài kịch nổi tiếng "Monty Python's Flying Circus" Guido chọn tên này vì ông muốn ngônngữ mới của mình mang tính giải trí và không quá nghiêm túc

Python chính thức được ra mắt vào năm 1991 với phiên bản Python 1.0, bao gồm nhữngtính năng cơ bản như:

 Hỗ trợ lập trình hướng đối tượng (OOP)

Trang 10

 Quản lý bộ nhớ tự động với cơ chế thu gom rác (garbage collection).

 Hệ thống xử lý lỗi hiệu quả

Những cột mốc phát triển quan trọng của Python:

1994: Python 1.0

Phiên bản đầu tiên của Python được phát hành Dù còn nhiều hạn chế, Python đãgiới thiệu những ý tưởng đột phá như cú pháp dễ đọc và khả năng tích hợp mạnhmẽ

2000: Python 2.x

Đây là giai đoạn Python bắt đầu được sử dụng rộng rãi trong các dự án phầnmềm Python 2.x mang đến nhiều cải tiến như:

+ Hỗ trợ Unicode, cho phép xử lý tốt hơn các ngôn ngữ khác nhau

+ Hệ thống quản lý bộ nhớ được tối ưu hóa

+ Xuất hiện các framework web như Django, giúp Python khẳng định vai tròtrong phát triển ứng dụng web Tuy nhiên, Python 2 cũng tồn tại nhiều hạnchế, đặc biệt là những bất đồng trong cú pháp và khả năng tương thích vớicác phiên bản mới hơn

+ Tối ưu cú pháp, giúp mã nguồn trở nên rõ ràng và ngắn gọn hơn

+ Hiệu suất được cải thiện đáng kể, đặc biệt trong các ứng dụng tính toán phứctạp Python 3 nhanh chóng trở thành chuẩn mực trong cộng đồng lập trình,đặc biệt sau khi Python 2 chính thức ngừng hỗ trợ vào năm 2020

Trang 11

Hình 2 1: Timeline lịch sử phát triển Python

2.1.2 Ưu điểm và nhược điểm của Python

Python, một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, nổi bật nhờtính linh hoạt, dễ học, và khả năng ứng dụng trong nhiều lĩnh vực Tuy nhiên, như bất kỳcông cụ nào khác, Python cũng có những hạn chế cần lưu ý Dưới đây là phân tích chi tiết

về ưu điểm và nhược điểm của Python

Ưu điểm của Python

Thư viện phong phú và mạnh mẽ

+ Một trong những yếu tố làm nên sức mạnh của Python là hệ sinh thái thưviện phong phú, hỗ trợ lập trình viên trong hầu hết các lĩnh vực:

Trang 12

 Khoa học dữ liệu: NumPy, Pandas, Matplotlib giúp phân tích và trựcquan hóa dữ liệu.

 Học máy và AI: TensorFlow, Keras, và Scikit-learn cung cấp các công

cụ xây dựng mô hình trí tuệ nhân tạo và học máy mạnh mẽ

 Phát triển web: Django, Flask, FastAPI là các framework nổi tiếng giúpxây dựng website và API hiệu quả

 Xử lý hình ảnh: OpenCV và Pillow hỗ trợ các tác vụ như nhận diệnkhuôn mặt, xử lý ảnh, và tạo hiệu ứng

 Tự động hóa: Các thư viện như Selenium, PyAutoGUI cho phép tự độnghóa các tác vụ thường ngày

+ Hệ sinh thái thư viện đa dạng giúp Python có thể được sử dụng linh hoạttrong nhiều dự án, từ nhỏ đến lớn

Tính di động cao

+ Python là một ngôn ngữ đa nền tảng, có thể chạy trên nhiều hệ điều hànhphổ biến như Windows, macOS, Linux, và thậm chí trên các thiết bị nhúngthông qua các phiên bản như MicroPython hoặc CircuitPython

+ Mã nguồn Python không cần thay đổi khi chuyển đổi giữa các nền tảng, giúptiết kiệm thời gian và công sức khi phát triển phần mềm đa nền tảng

Hỗ trợ tốt cho khoa học dữ liệu và AI

+ Python hiện là ngôn ngữ hàng đầu trong lĩnh vực khoa học dữ liệu, trí tuệnhân tạo (AI), và học máy (ML) nhờ vào:

 Khả năng xử lý dữ liệu mạnh mẽ

 Hệ thống thư viện chuyên dụng

 Cộng đồng lập trình viên đông đảo sẵn sàng chia sẻ tài liệu và hỗ trợ.+ Các công ty lớn như Google, Facebook, và Netflix đều sử dụng Python đểtriển khai các giải pháp AI và xử lý dữ liệu lớn

Cộng đồng lớn và hỗ trợ mạnh mẽ

Trang 13

+ Python có một cộng đồng toàn cầu đông đảo, cung cấp hàng loạt tài liệu,khóa học, và diễn đàn trực tuyến như Stack Overflow, Reddit, vàPython.org.

+ Người dùng có thể dễ dàng tìm thấy câu trả lời hoặc giải pháp cho các vấn

đề khi lập trình với Python

Nhược điểm của Python:

Hiệu suất không cao

+ Python là một ngôn ngữ thông dịch (interpreted language), nghĩa là mã Python được thực thi bởi trình thông dịch thay vì được biên dịch thành mã máy Điều này dẫn đến:

 Tốc độ chậm hơn so với các ngôn ngữ biên dịch như C++ hay Java

 Python không phù hợp cho các ứng dụng yêu cầu hiệu suất cao, chẳng hạn như xử lý đồ họa hoặc game thời gian thực

+ Tuy nhiên, hạn chế này có thể được khắc phục bằng cách sử dụng các công

cụ như Cython hoặc tích hợp với mã C++

Không hỗ trợ đa luồng thực sự

+ Python sử dụng cơ chế GIL (Global Interpreter Lock), giới hạn việc thực thi đồng thời các luồng (threads) trong chương trình Điều này gây trở ngại cho các ứng dụng yêu cầu xử lý song song cao, như máy chủ đa luồng hoặc hệ thống thời gian thực

+ Dù vậy, Python vẫn hỗ trợ xử lý song song qua multiprocessing, nhưng cáchtiếp cận này phức tạp hơn so với việc sử dụng đa luồng thực sự

Không tối ưu cho phát triển ứng dụng di động

+ Python không phổ biến trong lập trình ứng dụng di động so với các ngôn ngữ như Swift (cho iOS) hay Kotlin (cho Android)

+ Dù có các framework như Kivy hoặc BeeWar , nhưng chúng không mang e

lại trải nghiệm người dùng và hiệu suất tốt bằng các công cụ chuyên biệt

Hạn chế trong lập trình nhúng và hệ thống

Trang 14

+ Python không được thiết kế để hoạt động ở cấp độ phần cứng hoặc các tác

vụ hệ thống thấp, vốn là thế mạnh của các ngôn ngữ như C hoặc C++.+ Trong các ứng dụng nhúng, Python thường chỉ được sử dụng khi hiệu suất không phải là ưu tiên hàng đầu

2.1.3 Ứng dụng của Python

Python, nhờ vào tính linh hoạt, cú pháp dễ học và hệ sinh thái thư viện phong phú,

đã trở thành một ngôn ngữ lập trình được sử dụng rộng rãi trong nhiều lĩnh vực Dưới đây

là phân tích chi tiết về các ứng dụng phổ biến của Python

Phát triển ứng dụng web: Python là một lựa chọn mạnh mẽ cho phát triển ứng

dụng web nhờ các framework đa dạng và hiệu quả như:

+ Django: Một framework cấp cao, cung cấp sẵn các công cụ để phát triển

nhanh chóng các ứng dụng web phức tạp Django được biết đến với khảnăng bảo mật tốt, dễ mở rộng, và hỗ trợ phát triển API nhanh chóng

+ Flask: Một framework nhỏ gọn, linh hoạt, phù hợp với các dự án cần tùy

chỉnh nhiều hoặc có quy mô nhỏ hơn Flask thường được sử dụng cho cácdịch vụ API và các ứng dụng tối giản

+ FastAPI: Một framework hiện đại được thiết kế để xây dựng API nhanh

chóng và hiệu quả, đặc biệt trong các ứng dụng yêu cầu tốc độ và hiệu suấtcao

Khoa học dữ liệu và phân tích dữ liệu: Trong lĩnh vực khoa học dữ liệu,

Python là ngôn ngữ không thể thiếu, đặc biệt khi xử lý và phân tích dữ liệu lớn Các thư viện mạnh mẽ như:

+ Pandas: Hỗ trợ phân tích và xử lý dữ liệu dạng bảng.

+ NumPy: Cung cấp các công cụ tính toán số học hiệu quả, đặc biệt cho xử lý

Trang 15

Học máy và trí tuệ nhân tạo (AI): Python được xem là ngôn ngữ chủ đạo trong

lĩnh vực học máy và AI Các thư viện và framework chuyên dụng đã giúp Python thống trị lĩnh vực này, bao gồm:

+ TensorFlow: Một nền tảng học máy cấp cao, được phát triển bởi Google,

cho phép xây dựng các mô hình học sâu phức tạp

+ Keras: Một thư viện giao diện dễ sử dụng, xây dựng trên TensorFlow, giúp

triển khai các mô hình AI nhanh chóng

+ PyTorch: Được phát triển bởi Facebook, PyTorch đặc biệt hữu ích trong

nghiên cứu và phát triển mô hình AI nhờ tính năng linh hoạt và dễ dàngdebug

+ NLTK và spaCy: Các thư viện xử lý ngôn ngữ tự nhiên, hỗ trợ các ứng

dụng như phân tích văn bản, dịch thuật, và chatbot

Tự động hóa và DevOps: Python là công cụ hữu ích trong việc tự động hóa các

tác vụ lặp đi lặp lại, giúp tiết kiệm thời gian và nâng cao hiệu quả làm việc Một

số ứng dụng trong tự động hóa và DevOps bao gồm:

+ Quản lý hệ thống: Sử dụng các thư viện như Fabric hoặc Ansible để quản

lý và triển khai phần mềm trên nhiều máy chủ

+ Kiểm tra tự động (Automation Testing): Sử dụng Python với Selenium để

tự động hóa việc kiểm tra các trang web

+ Viết script tự động hóa: Python có thể được sử dụng để viết các script nhỏ

gọn, tự động thực hiện các tác vụ như tải dữ liệu, gửi email hàng loạt, hoặcsao lưu dữ liệu

Ứng dụng desktop: Python cũng có thể được sử dụng để phát triển ứng dụng

desktop thông qua các thư viện như:

+ Tkinter: Một thư viện cơ bản để xây dựng giao diện đồ họa (GUI) với các

widget đơn giản

+ PyQt và wxPython: Cung cấp các công cụ để xây dựng ứng dụng GUI phức

tạp hơn, chuyên nghiệp hơn

Ngày đăng: 22/01/2025, 14:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN