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

Báo cáo tiểu luận học phần lập trình python Đ ti xây dựng trò chơi minesweepers

34 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 Trò Chơi Minesweepers
Tác giả Nguyễn Đức Quang, Phạm Hoàng Trung Sơn
Người hướng dẫn Ts. Lê Mạnh Hùng
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 tiểu luận
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 5,81 MB

Nội dung

Ngôn ngữ lập trình Python được dùng vào các mục đích: • Phát triển web trên máy chủ • Phát triển phần mềm 17 • Tính toán một cách khoa học • Lên kịch bản cho hệ thống 1.2 Các tính năng c

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO TIỂU LUẬN HỌC PHẦN

LẬP TRÌNH PYTHON

Đ TI: Xây dựng trò chơi Minesweepers

Sinh viên thực hiện : NGUYỄN ĐỨC QUANG

PHẠM HONG TRUNG SƠN Giảng viên hướng dẫn : Ts LÊ MẠNH HÙNG

Hà Nội, ……… năm 2022/

Trang 2

PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện:

Trang 3

LỜI MỞ ĐẦU

Hiện nay, ngành công nghệ thông tin đã trở thành một phần không thể thiếutrong cuộc sống, công nghệ thông tin đã và đang đóng vai trò quan trọngtrọng các ngành khoa học, kĩ thuật, kinh tế, xã hội tại các nước trên thế giới

Nó mang lại giá trị về kinh tế, giáo dục và đặc biệt là mang tính giải trí cao.Như chúng ta đã thấy trong những năm gần đây sự phát triển vượt bậc vềcông nghệ đồ họa đã mang lại cho con người chúng ta vô vàn sự tiện nghi,những trải nghiệm mới mẻ, chân thực

Sự ra đời của Internet, các trò chơi dần xuất hiện và nhanh chóng gây đượcsức hút to lớn Hiện nay các trò chơi cũng đang tiếp tục phát triển mạnh mẽ.Nắm bắt được xu thế của người dùng, nhóm chúng em đã lên ý tưởng và xây

dựng ứng dựng trò chơi giải trí “Xây dựng trò chơi Minesweepers” Trong

quá trình học tập, nhờ có sự hướng dẫn tận tình của thầy Lê Mạnh Hùng,chúng em đã hoàn thành được đề tài này Từ đó chúng em có thể nắm vữngđược cách thức thiết kế một đề tài cụ thể

Trong quá trình làm đề tài dù đã cố gắng tìm hiểu nhưng vẫn không tránhkhỏi sai sót Tuy nhiên về cơ bản các chức năng chính của một hệ thống đãđược em hoàn thiện một cách tốt nhất Chúng em mong rằng sẽ nhận được

sự đóng góp ý kiến của các thầy cô để phần mềm cũng như kiến thức củachúng em được hoàn thiện hơn

Trang 4

CHƯƠNG 1: GIỚI THIỆU V PYTHON

1.1 Giới thiệu

Lịch sử hình thành

Python đã được hình thành vào cuối những năm 1980 và được bắt đầu thựchiện vào tháng 12/1989 bởi Guido van Rossum tại CWI tại Hà Lan như làngười kế thừa của ngôn ngữ ABC (tự lấy cảm hứng từ SETL) có khả năng

xử lý ngoại lệ và giao tiếp với hệ điều hành Amoeba Van Rossum là tác giảchính của Python, và vai trò trung tâm của ông tiếp tục trong việc quyết địnhhướng phát triển của Python được phản ánh trong tiêu đề mà cộng đồngPython dành cho ông “Độc tài nhân từ cho cuộc sống” (benevolent dictatorfor life) (BDFL)

Python 2.0 được phát hành vào ngày 16/10/2000, với nhiều tính năng chínhmới bao gồm một bộ dọn rác đầy đủ và hỗ trợ Unicode Với phiên bản này,quá trình phát triển đã được thay đổi và trở thành minh bạch hơn và đượccộng đồng ủng hộ

Python 3.0 (còn được gọi là Python 3000 hoặc Py3k), một bản phát hànhlớn, không tương thích ngược, được phát hành vào ngày 03/12/2008 sau mộtthời gian dài thử nghiệm Nhiều trong số các tính năng chính của nó đã đượcđiều chỉnh để tương thích ngược với Python 2.6 và 2.7 Các tính năng và

Trang 5

triết lý phát triển Python là 1 ngôn ngữ lập trình đa hình: lập trình hướng đốitượng và hướng cấu trúc được hỗ trợ đầy đủ, và có 1 số tính năng của ngônngữ hỗ trợ lập trình theo chức năng và lập trình hướng khía cạnh (Aspect-oriented programming) Nhiều mô hình khác được hỗ trợ bằng việc sử dụngcác phần mở rộng, bao gồm thiết kế theo hợp đồng (design by contract) vàlập trình luận lý.

Các trang như Mozilla, Reddit, Instagram và PBS đều được viết bằngPython Ngôn ngữ lập trình Python được dùng vào các mục đích:

• Phát triển web (trên máy chủ)

• Phát triển phần mềm 17

• Tính toán một cách khoa học

• Lên kịch bản cho hệ thống

1.2 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 quan trọ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 tích dữ liệu, chúng ta có thể đạt được mục đích này Bạn sẽ thích thúkhi biết rằng ngôn ngữ lập trình Python là động lực đằng sau việc thu thập,

tổ chức và thao tá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ạo ra cá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ập trì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 đượcthực hiệ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óa quy trình Nó giúp tiết kiệm thời gian, tài nguyên và công sức thủcông

Trang 6

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 độngnày có thể được giảm xuống mức tối thiểu, do đó cho phép bạn tập trungvào những gì cần thiết

1.3 Tại sao lại là Python?

Tại sao bạn nên sử dụng mã Python khi chúng ta có nhiều ngôn ngữ lậptrình phổ biến khác? Đây là những lý do:

Dễ học

Python rất đơn giản và dễ học Cú pháp rõ ràng và sự phụ thuộc vào ngônngữ tiếng Anh khiến nó trở nên dễ hiểu Do đó, việc áp dụng nó để thực hiệncác tác vụ khác nhau như phát triển phần mềm trở nên tương đối đơn giảnhơn

Cung cấp hỗ trợ cộng đồng tích cực

Không giống như các ngôn ngữ khác, bạn có thể tìm thấy cộng đồng hỗ trợtích cực cho ngôn ngữ Python Vì vậy, trong quá trình phát triển phần mềmcủa giai đoạn tự động hóa, nếu bạn phát hiện ra một số vấn đề, bạn có thểlên diễn đàn và tìm kiếm sự trợ giúp chuyên nghiệp Sự hiện diện của mộtcộng đồng như vậy đảm bảo bạn tìm thấy câu hỏi cho tất cả các vấn đề củamình liên quan đến Python

Cung cấp môi trường linh hoạt

Với mã Python, bạn không phải giới hạn bản thân trong một trường cụ thể

Nó được mô tả là một trong những ngôn ngữ lập trình có mục đích chung

có thể được sử dụng trong phát triển web, phát triển phần mềm hoặc giảipháp tự động, bất kể mức độ phức tạp hoặc miền

Nhiều thư viện và khung có sẵn

Theo thời gian, Python Software Foundation đã phát triển nhiều thư viện vàkhung, bao gồm nhưng không giới hạn ở NumPy và SciPy, Django Với sựtrợ giúp của các thư viện ngôn ngữ lập trình này, bạn không cần phải bắt đầuquá trình viết mã từ đầu để phát triển phần mềm, do đó cho phép bạn tiếtkiệm thời gian

Trang 7

Nền tảng phần mềm Python giúp ích trong các công nghệ phức tạp

Sau khi học mã Python, bạn có thể mong đợi các công nghệ phức tạp trởnên dễ dàng hơn một chút Có thể dễ dàng quản lý các nhiệm vụ như tự độnghóa đòi hỏi nhiều thời gian và kiến thức chuyên môn thông qua một trongnhững ngôn ngữ lập trình Python tốt nhất

Cú pháp mã Python và ngữ nghĩa

Cú pháp Python đề cập đến các quy tắc lập trình dựa trên đó ngôn ngữ sẽđược viết và giải thích, trong khi ngữ nghĩa là ý nghĩa của các câu lệnh đượcviết Đối với Python, các quy định và hàm ý đơn giản hơn so với các ngônngữ lập trình phổ biến khác

Sử dụng ngôn ngữ có thể đọc được trong cú pháp cho phép các nhà pháttriển hiểu nó rõ ràng và đảm bảo rằng những người mới bắt đầu có thể diễngiải ngôn ngữ lập trình và mã dễ dàng hơn Bên cạnh đó, sự hiện diện củakhoảng trắng trong phần thụt đầu dòng của ngữ nghĩa Python và hạn chế chỉcung cấp một cách duy nhất để thực hiện một tác vụ cụ thể giúp giảm khảnăng nhầm lẫn Vì nền tảng phần mềm Python là một trong những ngôn ngữlập trình có mục đích chung, các nhà phát triển đã giữ cho nó toàn diện vàđơn giản để mọi người sử dụng

Môi trường phát triển phần mềm tích hợp Python

Các nền tảng ngôn ngữ lập trình hoặc môi trường phát triển phần mềm nàycho phép các lập trình viên có các công cụ toàn diện để phát triển các phầnmềm và ứng dụng khác nhau Khung Python cơ bản đã được thiết lập giúpcác nhà phát triển và những người không phải là nhà phát triển dễ dàng tùychỉnh hoặc tạo một ứng dụng, dịch vụ hoặc sản phẩm kỹ thuật số mới

Trang 9

CHƯƠNG 2: TỔNG QUAN V BI TOÁN2.1 Giới thiệu về thư viện Pygame

2.1.1 Tổng quan về thư viện Pygame

Giới thiệu

Pygame là một thư viện của ngôn ngữ lập trình Python và là một tập hợpcác mô-đun Python được thiết kế riêng để lập trình trò chơi Pygame đượcviết bởi Pete Shinners thay thế cho chương trình PySDL sau khi quá trìnhphát triển dự án này bị đình trệ Chính thức phát hành từ năm 2000, Pygameđược phát hành theo phần mềm miễn phí GNU Lesser General PublicLicense

Pygame có thể chạy trên nhiều nền tảng và hệ điều hành khác nhau Vớithư viện pygame trong Python, các nhà phát triển có thể sử dụng công cụ vàchức năng mở rộng để tạo ra các trò chơi nhập vai ấn tượng Bởi vậy,Pygame đang ngày càng phổ biến với nhà phát triển vì tính đơn giản, linhhoạt, dễ sử dụng

Đặc điểm

Pygame sử dụng Simple DirectMedia Layer (SDL), một thư việnphát triển đa nền tảng cho phép các nhà phát triển có thể truy cập vàophần cứng máy tính như đồ họa, âm thanh và thiết bị đầu vào

Xây dựng các trò chơi trên nhiều nền tảng khác nhau như Windows,Mac, Linux thậm chí là cả các thiết bị di động

Nhà phát triển có thể quản lý tất cả các yếu tố trong quá trình pháttriển trò chơi Đó có thể là các chức năng như xuất đồ họa, xử lý sựkiện, hoạt ảnh, hiệu ứng âm thanh và phát lại nhạc

Cung cấp nhiều chức năng mở rộng hỗ trợ nhà phát triển tập trungphát triển trò chơi

API trực quan và dễ hiểu, hỗ trợ người mới sử dụng hay cả nhữngnhà phát triển có kinh nghiệm đều có thể truy cập được

Nguồn tài nguyên và tài liệu phong phú, các nhà phát triển có thể sửdụng các mã nguồn mở miễn phí để phát triển dự án của mình

Trang 10

Tính đa phương tiện giúp nhà phát triển có thể ứng dụng để xử líhình ảnh hay video, mô phỏng, công cụ giáo dục….

Cấu trúc

Một chương trình Pygame sẽ bao gồm các phần sau:

Import pygame, sys: Gọi thư viện pygame và thư viện sys

Pygame.init: Khởi tạo một chương trình pygame

Screen = pygame.display.set_mode ((400,300)): Khởi tạo kích thước màn hình game có ngang là 400, chiều dọc là 300

pygame.display.set_caption('Hello World!'): Tiêu đề của chương trình Pygame

while True: Vòng lặp vô hạn

for event in pygame.event.get(): Vòng lặp bắt các sự kiện của chương trình pygame

if event.type == pygame.QUIT: sự kiện ấn thoát game

pygame.quit(): Thoát khỏi chương trình pygame

sys.exit(): Thoát khỏi hệ thống

Hệ tọa độ trong Pygame bao gồm:

O: Gốc tọa độ nằm ở góc trên bên trái của màn hình game

Trang 11

X: Trục X là trục ngang Hướng từ gốc O sang phải có tọa độ dương, hướng từ gốc O sang trái tọa độ âm

Y: Trục Y là trục dọc Hướng từ gốc O trên xuống dưới có tọa độ dương, hướng từ gốc O lên trên có tọa độ âm

Cách cài đặt thư viện Pygame

Để cài đặt thư viện Pygame trong Python bạn thực hiện theo các bướcdưới đây:

Bước 1: Trước khi cài đặt thư viện Pygame trong Python, hãy đảm

bảo rằng bạn đã cài Python trên máy tính của mình Sau đó truy cậpPython.org và tải xuống phiên bản tương thích với hệ điều hành củamình

Bước 2: Chạy file “Python-version” trong terminal

Bước 3: Để cài đặt lập trình Pygame, bạn cần sử dụng trình quản lý

gói pip (thường đi xem với các bản cài đặt Python) Chạy thiết bị đầucuối và thực hiện lệnh “pip install pygame” Lệnh sẽ tải xuống và càiđặt phiên bản Pygame mới nhất từ Python Package Index (PyPI)

Bước 4: Tạo một file mới bằng Python và nhập mô-đun Pygame bằng

cách thêm dòng “Nhập pygame”, lưu tập có đuôi “.py” và bắt đầu trảinghiệm thư viện Pygame

Các thành phần cấu tạo nên Pygame

Trang 12

Mô-đun Pygame: Là khối xây dựng cơ bản giúp phát triển trò chơi,

quản lý cửa sổ, xử lý sự kiện và hiển thị đồ họa

Bề mặt hiển thị: Nơi hiển thị các đối tượng và hình ảnh trong trò

chơi, cho phép tùy chỉnh kích thước và thuộc tính

Nhân vật (Sprites): Đại diện cho thực thể trong trò chơi, Pygame

hỗ trợ quản lý và phát hiện xung đột giữa các nhân vật và môi trường

Bề mặt (Surface): Dùng để hiển thị các đồ họa như hình ảnh và văn

bản, cho phép tải lên các hình ảnh khác nhau

Xử lý sự kiện: Giúp phát hiện và đáp ứng tương tác của người dùng

như nhấn phím và nhấp chuột, tạo ra trò chơi tương tác

Âm thanh và Âm nhạc: Pygame cho phép tạo và quản lý âm

thanh, giúp trò chơi trở nên sống động hơn với hiệu ứng âm thanh vànhạc nền

Phát hiện va chạm: Cung cấp cơ chế phát hiện va chạm giữa các

đối tượng, giúp điều chỉnh cơ chế chơi và tương tác trong trò chơi

Trang 13

Ưu điểm

Thân thiện với người dùng: Pygame dễ học và sử dụng, phù hợp

cho cả người mới bắt đầu và lập trình viên chuyên nghiệp Có nhiều tàinguyên, mã nguồn mẫu, và tài liệu sẵn có trên cộng đồng PyPI, giúpnhà phát triển học hỏi và phát triển nhanh chóng

Mã nguồn mở và miễn phí: Pygame hoàn toàn miễn phí và được

cấp phép mã nguồn mở, cho phép người dùng tùy chỉnh và sử dụng màkhông phải trả phí

Đa nền tảng: Chạy trên nhiều hệ điều hành như Windows, macOS,

và Linux, giúp các trò chơi phát triển dễ dàng tiếp cận người chơi trênnhiều nền tảng

Kiểm soát linh hoạt: Nhà phát triển có quyền kiểm soát hoàn toàn

đối với đồ họa, âm thanh, và xử lý nhập liệu, giúp tạo ra trò chơi vớitính năng độc đáo

Cộng đồng lớn: Có một cộng đồng sôi động gồm các nhà phát triển

chia sẻ ý tưởng, hỗ trợ kỹ thuật, và cung cấp tài nguyên học tập

Phù hợp cho giáo dục: Pygame là công cụ tuyệt vời để dạy lập

trình và phát triển trò chơi, đặc biệt cho trẻ em và người học Python

Nhược điểm

Giới hạn về hiệu suất: Pygame không được tối ưu hóa cho các trò

chơi 3D hoặc đồ họa phức tạp Nó phù hợp hơn với trò chơi 2D hoặctrò chơi nhỏ

Không có GUI tích hợp hiện đại: Pygame thiếu các công cụ giao

diện người dùng (GUI) tiên tiến, khiến việc phát triển giao diện phứctạp khó khăn hơn

Không cập nhật thường xuyên: Thư viện Pygame không

nhận được cập nhật tính năng mới thường xuyên, dẫn đến hạnchế trong việc hỗ trợ công nghệ hiện đại

Trang 14

Thiếu công cụ phát triển toàn diện: Không có môi trường phát

triển tích hợp (IDE) hoặc công cụ dựng trò chơi sẵn như các công cụkhác (Unity, Unreal Engine), khiến việc phát triển các trò chơi phứctạp mất nhiều thời gian hơn

Hiệu suất thấp so với các công cụ chuyên dụng: Đối với các dự

án thương mại lớn hoặc yêu cầu hiệu suất cao, Pygame không thể cạnhtranh với các engine chuyên nghiệp như Unity hay Godot

Một số trò chơi sử dụng Pygame

Frest on Fire

Trang 15

Super Potato Bruh

Solar Woft

Trang 16

2.1 Giới thiệu về trò chơi Minesweepers

Lịch sử trò chơi dò mìn

Dò mìn hay gỡ bom (tiếng Anh: Minesweeper) là một trò chơi giải đố trênmáy tính dành cho một người chơi Trò chơi bao gồm một "bãi mìn" lànhững ô vuông có thể chứa "mìn", và người chơi cần phải dựa vào nhữngcon số thể hiện số mìn xung quanh để mở hết tất cả những ô vuông trống

mà không kích nổ quả mìn nào Trò chơi được xây dựng như một chươngtrình giải trí cài đặt trên hệ điều hành Microsoft Windows NgoàiWindows, trò chơi còn có trong Linux (như KMines (giao diện KDE) vàgnomine (giao diện GNOME) Nhờ quy luật đơn giản, nhiều biến thể củatrò chơi cũng được phát hành như Dò mìn 3D, Minesweeper X, vàCrossmines

Mặc dù đã có nhiều phiên bản đầu tiên gần giống với Minesweeper, nhưngtrò chơi này không được phát hành chính thức cho đến năm 1990.Minesweeper là một phần của gói Giải trí của Microsoft Tuy nhiên, sau sựphổ biến rộng rãi của Minesweeper, Windows đã quyết định vào năm 1992rằng nó sẽ được cài đặt tự động khi người dùng tải xuống bản cập nhật 3.1,thay thế Reversi làm trò chơi gia đình trên máy tính Microsoft

Trong nhiều năm, chỉ có một số trò chơi được cài đặt tự động trên máytính, nhiều trò chơi trong số đó đã trở thành những cái tên quen thuộc trongngành công nghiệp trò chơi trong nhiều năm tới Những trò chơi này baogồm Cờ vua , Lật ngược và Solitaire để kể tên một số trò chơi lớn.Minesweeper sẽ vẫn còn trên mọi bản cập nhật Windows, cho đếnMicrosoft 8.0 khi nó bị loại khỏi danh sách sau khoảng hai thập kỷ hoạtđộng Mặc dù trò chơi có thể không được cài đặt như một phần của giaodiện Microsoft nữa, nhưng lịch sử của Minesweeper vẫn tiếp tục qua nhiềunăm

Trang 17

Một số lợi ích của trò chơi dò mìn:

Phát triển Tư Duy Logic: Trò chơi Dò Mìn đòi hỏi người chơi phải suy

luận và áp dụng logic để tìm ra vị trí của các quả bom Việc phải suy nghĩmột cách chi tiết và logic giúp cải thiện khả năng tư duy và giải quyết vấn

đề của người chơi

Nâng Cao Kỹ Năng Quan Sát: Người chơi phải cẩn thận quan sát mỗi ô

trên lưới để phát hiện và tránh các quả bom Việc này giúp cải thiện khảnăng quan sát và tăng cường sự chú ý đối với chi tiết

Phát Triển Khả Năng Ra Quyết Định: Trò chơi Dò Mìn thúc đẩy

người chơi phải ra quyết định nhanh chóng và chính xác trong việc chọn ô

để mở Điều này củng cố khả năng ra quyết định của họ trong một thời gianngắn

Giải Trí và Giảm Stress: Mặc dù trò chơi có thể đòi hỏi sự tập trung

cao, nhưng nó cũng mang lại trải nghiệm giải trí và thư giãn Việc tìm kiếm

và loại bỏ bom có thể là một thách thức thú vị và giúp giảm căng thẳng

Khích Lệ Sự Kiên Nhẫn và Kiên Định: Trò chơi này đòi hỏi sự kiên

nhẫn và kiên định để giải quyết các bài toán phức tạp và tránh bom mộtcách an toàn Việc vượt qua các thử thách trong trò chơi có thể giúp ngườichơi phát triển sự kiên nhẫn và kiên định trong cuộc sống hàng ngày

Ngày đăng: 22/01/2025, 15:08

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

TÀI LIỆU LIÊN QUAN