1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo chuyên đề học phần lập trình python đề ti xây dựng trò chơi rắn săn mồi bằng python

17 19 0

Đ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 rắn săn mồi bằng python
Tác giả Nguyễn Đức Chiến
Người hướng dẫn Lê Mạnh Hùng
Trường học Trường đại học Điện lực
Chuyên ngành Khoa Công nghệ Thông Tin
Thể loại Báo cáo chuyên đề học phần
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 1,5 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khái niệm về ngôn ngữ python Python là ngôn ngữ lập trình được sử dụng rất phổ biến ngày nay để phát triển nhiều loại ứng dụng phần mềm khác nhau như các chương trình chạy trên desktop,

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

LẬP TRÌNH PYTHON

ĐỀ TI:

XÂY DỰNG TRÒ CHƠI RẮN SĂN MỒI BẰNG PYTHON

Giảng viên hướng dẫn : LÊ MẠNH HÙNG

Hà Nội, tháng 12 năm 2022

Trang 2

PHIẾU CHẤM ĐIỂM Sinh viên thực hiện:

Nguyễn Đức Chiến

Giảng viên chấm điểm:

Giảng viên chấm 1:

Giảng viên chấm 2:

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ PYTHON 2

1.1 Khái niệm về ngôn ngữ python 2

1.2 Ứng dụng của ngôn ngữ python 3

CHƯƠNG 2: TỔNG QUAN VỀ ĐỀ TÀI 6

2.1 Giới thiệu 6

2.2 Mô tả về trò chơi 6

CHƯƠNG 3: XÂY DỰNG TRÒ CHƠI RẮN SĂN MỒI 7

3.1 Thiết lập chương trình 7

3.1.1 Tạo cửa sổ game 7

3.1.2 Khởi tạo 8

3.1.3 Xây dựng hàm 8

3.1.4 Xử lý di chuyển 9

3.1.5 Cơ chế săn mồi 10

3.1.6 Hiển thị ra cửa sổ 10

3.2 Kết quả 11

TỔNG KẾT 12

Trang 4

LỜI CẢM ƠN

Em xin chân thành cảm ơn các thầy, cô giáo trong Khoa Công nghệ thông tin, trường Đại học Điện Lực, đã tạo điều kiện cho em thực hiện đề tài này

Để có thể hoàn thành báo cáo đề tài “Xây dựng trò chơi rắn săn mồi bằng python”, em xin gửi lời cảm ơn chân thành nhất tới thầy Lê Mạnh Hùng, đã truyền đạt, giảng dạy cho chúng em những kiến thức, những kinh nghiệm quý báu trong thời gian học tập và rèn luyện, tận tình hướng dẫn em trong quá trình làm báo cáo này

Em cũng gửi lời cảm ơn tới bạn bè đã đóng góp những ý kiến quý bàu để em

có thể hoàn thành báo cáo tốt hơn Tuy nhiên, do thời gian và trình độ có hạn nên báo cáo này chắc chắn không tránh khỏi những thiếu sót, em rất mong được

sự đóng góp ý kiến của các thầy và toàn thể các bạn

Một lần nữa, em xin chân thành cảm ơn và luôn mong nhận được sự đóng góp của tất cả mọi người

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ PYTHON

1.1 Khái niệm về ngôn ngữ python

Python là ngôn ngữ lập trình được sử dụng rất phổ biến ngày nay để phát triển nhiều loại ứng dụng phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web Ngoài ra Python cũng là ngôn ngữ

ưa thích trong ngành khoa học về dữ liệu (data science) cũng như là ngôn ngữ phổ biến để xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning

 Tại sao ngôn ngữ python phổ biến ?

Tính dễ sử dụng: Đối với những người mới lập trình, Python là một bước khởi đầu tuyệt vời Nó tương đối dễ học, giúp dễ dàng nắm bắt các kiến thức lập trình và nhanh chóng xây dựng ứng dụng cho mình

Cú pháp đơn giản: Python tương đối dễ đọc và dễ hiểu, vì cú pháp của nó giống tiếng Anh Bố cục đơn giản cho phép chúng ta hiểu được những gì mỗi dòng mã sẽ thực thi

Cộng đồng phát triển mạnh: Vì là ngôn ngữ mã nguồn mở nên bất kỳ ai cũng

có thể sử dụng Python để lập trình Hơn thế nữa, Python có cộng đồng hỗ trợ và phát triển hệ sinh thái, không ngừng góp sức thêm các thư viện của riêng họ vào cộng đồng chung

Tính linh hoạt: Khi tìm hiểu sâu hơn, có thể sử dụng Python cho nhiều mục đích khác nhau Cho dù quan tâm đến trực quan hóa dữ liệu (data visualization), trí tuệ nhân tạo (AI) hay phát triển web, đều có thể sử dụng ngôn ngữ này

 Tại sao nên học python ?

Nhu cầu nhân lực cho ngành kỹ sư phần mềm Python (Python developers) đang cao: Nếu đang muốn bắt đầu hoặc thay đổi nghề nghiệp của mình, Python

có thể là một kỹ năng quan trọng nên có

Trang 6

Là bước đệm dẫn tới những nghề có thu nhập cao: Dữ liệu cho thấy mức lương trung bình hàng năm cho những người có kỹ năng Python là khoảng

£65,000 ở Anh

Nhiều cơ hội việc làm: Do Python có thể được sử dụng trong nhiều công nghệ mới nổi, chẳng hạn như AI, máy học và phân tích dữ liệu, và đây là các kỹ năng cần thiết và không bị lỗi thời Học Python ngay bây giờ có thể mang lại lợi ích trong suốt sự nghiệp của mình

1.2 Ứng dụng của ngôn ngữ python

1 AI và máy học:

Vì Python là một ngôn ngữ lập trình ổn định, linh hoạt và đơn giản, nên Python là lựa chọn hoàn hảo cho nhiều dự án máy học (ML) và trí tuệ nhân tạo (AI) khác nhau Trên thực tế, Python là một trong những ngôn ngữ được ưa chuộng của các nhà khoa học dữ liệu, có rất nhiều thư viện và Packages máy học

và AI của Python được xây dựng sẵn, giúp việc thực thi các thuật toán AI và máy học được dễ dàng và thuận tiện hơn

2 Phân tích dữ liệu

Giống như AI và máy học, lập trình Python được sử dụng khá phổ biến trong phân tích dữ liệu, một lĩnh vực đang phát triển nhanh chóng Như một nhu cầu tất yếu của việc ứng dụng tin học hóa và thời đại công nghệ số là chúng ta đang

có nhiều dữ liệu hơn bao giờ hết, nên rất cần có những nhân sự có thể thu thập,

xử lý và tổ chức thông tin

Python là sự lựa chọn hợp lý cho khoa học dữ liệu và phân tích dữ liệu Ngôn ngữ này dễ học, linh hoạt và được hỗ trợ nhiều thư viện cho phép thực hiện các thao tác xử lý, phân tích dữ liệu một cách nhanh chóng Đặc biệt khi làm việc với một lượng lớn dữ liệu, Python càng phát huy hiệu quả hơn

3 Trực quan hóa dữ liệu (Data visualization)

Data visualization là một lĩnh vực phổ biến và đang phát triển, Python cung cấp nhiều thư viện vẽ đồ thị với đầy đủ các tính năng Cho dù đang tìm cách biểu diễn đồ họa đơn giản hay một biểu đồ có tính tương tác, đều có thể tìm thấy trên Python một thư viện phù hợp với nhu cầu của mình Python có nhiều thư viện trực quan như Pandas, Matplotlib, Seaborn và Plotly cho phép dễ dàng chuyển đổi dữ liệu thành hình ảnh trực quan

Trang 7

Recommandé pour toi

A Handbook OF Present-DAY English

Lingua Inglese 1 (Lingua E Fonologia)(A) 100% (9)

CH 2 - The Pronunciation of English - A Handbook of Present-Day English

A handbook of present-day english

Prokaryote vs Eukaryote Worksheeet

Suite du document ci-dessous

27

29

10

3

Trang 8

4 Lập trình ứng dụng

Có thể lập trình tất cả các loại ứng dụng bằng Python Python là ngôn ngữ đa năng có thể được sử dụng để đọc và tạo thư mục tệp, tạo GUI và API, v.v Dù đó

có là ứng dụng blockchain, ứng dụng âm thanh và hình ảnh hay ứng dụng máy học, đều có thể xây dựng tất cả các phần mềm đó bằng Python

5 Phát triển web

Python là một lựa chọn tuyệt vời để phát triển web nhờ trên Python có nhiều framework web, chẳng hạn như Django, Pyramid và Flask Các framework này

đã được sử dụng để tạo các trang web và dịch vụ như Spotify, Reddit và Mozilla Ngoài ra, còn có các thư viện và mô-đun mở rộng đi kèm với các framework Python, nhờ vậy các chức năng truy cập cơ sở dữ liệu, quản lý nội dung và data authorisation đều có thể thực hiện được và dễ dàng Với tính linh hoạt của Python, không có gì ngạc nhiên khi Python ngày được sử dụng rộng rãi trong phát triển web

6 Phát triển game

Mặc dù vẫn chưa có thể tham gia vào mảng công nghệ game thật sự, nhưng Python thực sự có những đóng góp trong lập trình game Có thể tạo các trò chơi đơn giản bằng ngôn ngữ lập trình Python

Trên Python, có thể phát triển nhanh chóng một prototype (sản phẩm thử nghiệm) Tương tự, một số chức năng nhất định (chẳng hạn như tạo dialoge tree)

có thể thực hiện được trong Python

7 Phát triển ngôn ngữ lập trình

Với thiết kế đơn giản, tinh tế và cú pháp dễ đọc – dễ hiểu, Python đã truyền cảm hứng cho việc tạo ra các ngôn ngữ lập trình mới Các ngôn ngữ như Cobra, CoffeeScript và Go đều sử dụng cú pháp tương tự như Python

Điều đó có nghĩa là Python là một ngôn ngữ khởi đầu hữu ích Vì vậy, nếu mới bắt đầu học lập trình, việc hiểu Python có thể giúp mở rộng sang các lĩnh vực khác dễ dàng hơn

8 Tài chính

Python ngày càng được sử dụng nhiều hơn trong thế giới tài chính, thường là trong các lĩnh vực như phân tích định lượng và định tính Có thể xem Python là

Trang 9

một công cụ hữu ích trong việc xác định xu hướng và dự đoán giá tài sản, cũng như trong việc tự động hóa quy trình công việc trên các nguồn dữ liệu khác nhau Python còn là một công cụ lý tưởng để làm việc với dữ liệu lớn và có rất nhiều thư viện có sẵn để giúp biên dịch và xử lý thông tin Do đó, nó là một trong những ngôn ngữ ưa thích trong ngành tài chính

9 Ứng dụng thiết kế

Python còn có thể được sử dụng để phát triển các ứng dụng thiết kế đồ họa Đáng ngạc nhiên, ngôn ngữ này được sử dụng trên một loạt các phần mềm hình ảnh 2D, chẳng hạn như Paint Shop Pro và Gimp Python thậm chí còn được sử dụng trong các phần mềm hoạt hình 3D như Lightwave, Blender và Cinema 4D

Trang 10

CHƯƠNG 2: TỔNG QUAN VỀ ĐỀ TI 2.1 Giới thiệu

Rắn săn mồi (Snake) vốn dĩ là 1 tựa game mobile, chơi trên thiết bị di động với

nhiệm vụ của người chơi là điều khiển con rắn ăn các khối nhỏ hơn để cơ thể dài ra

và tránh va chạm vào tường/vật cản hoặc chính thân thể mình Đây là 1 trò chơi được ghi nhận thành tích qua số điểm và ai đạt điểm càng cao thì sẽ có thứ hạng càng cao

Game Rắn săn mồi lần đầu xuất hiện vào năm 1997 trên chiếc điện thoại di động Nokia 6110 Ở phiên bản này khi đó, trò chơi vẫn được hoạt động trên 1 màn hình đen trắng Tạo hình con rắn và các vật phẩm trong game đều ở dạng các khối vuông 8 bit

2.2 Mô tả về trò chơi

- Game cấu hình nhẹ, đơn giản, giải trí lành mạnh

- Cách chơi:

 Người chơi dùng các phím mũi tên lên, xuống, trái, phải để điều khiển con rắn sao cho ăn được mồi

 Điều kiện qua màn: Tích lũy số điểm theo đúng yêu cầu trò chơi quy định sẽ qua màn khác Mỗi lần ăn mồi sẽ được cộng điểm

 Điều kiện thất bại (GameOver): Con rắn đụng vào vật cản trên đường

đi hoặc tự đâm vào chính mình thì sẽ kết thúc game

Trang 11

CHƯƠNG 3: XÂY DỰNG TRÒ CHƠI RẮN SĂN MỒI 3.1 Thiết lập chương trình

3.1.1 Tạo cửa sổ game

 Cài đặt thư viện cần thiết cho trò chơi:

#import

import pygame

import random

import time

import sys

pygame init ()

 Tạo cửa sổ

# t o c a s ạ ử ổ

gameSurface = pygame.display set_mode (( 735 , 475 ))

pygame.display set_caption ( 'R n Gi m Cân!' ắ ả )

# vòng l p chính ặ

while True :

pygame.time delay ( 200 ) # t c đ ch i ố ộ ơ

for event in pygame.event get ():

if event type == pygame QUIT :

pygame quit ()

 Kết quả đạt được:

Trang 12

3.1.2 Khởi tạo

 Khởi tạo hình ảnh

 Khởi tạo màu sắc

 # màu s c ắ

 red = pygame.Color( 255 , , )

 blue = pygame.Color( 65 , 105 , 255 )

 black = pygame.Color( , , )

 white = pygame.Color( 255 255 , , 255 )

 gray = pygame.Color( 128 , 128 , 128 )

 Khởi tạo biến

# khai báo bi n ế

snakepos = [ 100 , 60 ]

snakebody = [[ 100 , 60 ],[ 80 60 , ],[ 60 60 , ]] foodx = random randrange ( , 1 71 ) foody = random randrange ( , 1 45 )

Trang 13

if foody % 2 != 0 : foody += 1

foodpos = [ foodx * 10 , foody * 10 ]

foodflat = True

direction = 'RIGHT'

changeto = direction

score = 0

3.1.3 Xây dựng hàm

 Hàm Game_Over

 # hàm gameover

 def game_over ():

 gfont = pygame.font SysFont ( 'consolas' , 40 )

 gsurf = gfont render ( 'Game over!' , True , red )

 grect = gsurf get_rect ()

 grect midtop = ( 360 150 , )

 gameSurface blit ( gsurf grect , )

 show_score ( )

 pygame.display flip ()

 time sleep ( ) #time wait to exit

 pygame quit ()

 sys exit ()

 Hàm Show_Score

# hàm show_score

def show_score ( choice = 1 ):

sfont = pygame.font SysFont ( 'consolas' , 20 )

ssurf = sfont render ( 'Score: {0}' format ( score ), True , black ) srect = ssurf get_rect ()

if choice == 1

srect midtop = ( 70 20 , )

else :

srect midtop = ( 360 230 , )

gameSurface blit ( ssurf srect , )

3.1.4 Xử lý di chuyển

 Xử lý phím

# x lý phím ử

if event type == pygame KEYDOWN :

if event key == pygame K_RIGHT :

changeto = 'RIGHT'

if event key == pygame K_LEFT :

changeto = 'LEFT'

if event key == pygame K_UP :

Trang 14

if event key == pygame K_DOWN :

changeto = 'DOWN'

if event key == pygame K_ESCAPE :

pygame.event post (pygame.evet.Event(pygame QUIT ))

 Hướng đi

# h ướ ng đi

if changeto == 'RIGHT' and not direction == 'LEFT' :

direction = 'RIGHT'

if changeto == 'LEFT' and not direction == 'RIGHT' :

direction = 'LEFT'

if changeto == 'UP' and not direction == 'DOWN' :

direction = 'UP'

if changeto == 'DOWN' and not direction == 'UP' :

direction = 'DOWN'

 Cập nhật vị trí mới

# c p nh t v trí m i ậ ậ ị ớ

if direction == 'RIGHT' :

snakepos [ ] += m

if direction == 'LEFT' :

snakepos [ ] -= m

if direction == 'UP' :

snakepos [ ] -= m

if direction == 'DOWN' :

snakepos [ ] += m

 Xử lý khi đụng phải 4 cạnh biên

# x lý di chuy n đ ng 4 c nh biên ử ể ụ ạ

if snakepos [ 0 ] > 710 or snakepos [ 0 ] < 10 :

game_over ()

if snakepos [ 1 ] > 450 or snakepos [ 1 ] < 10 :

game_over ()

3.1.5 Cơ chế săn mồi

 Tăng chiều dài của rắn

#c ch thêm khúc dài ra ơ ế

snakebody insert ( , 0 list ( snakepos ))

if snakepos [ 0 ] == foodpos [ 0 ] and snakepos [ ] == foodpos [ ]:

Trang 15

foodflat = False

else :

snakebody pop ()

 Cơ chế tự ăn chính mình

# x lý t ăn chính mình ử ự

for b in snakebody [ 1 :]:

if snakepos [ 0 ] == b [ 0 ] and snakepos [ 1 ] == b [ 1 ]:

game_over ()

 Sản sinh mồi

# s n sinh m i ả ồ

if foodflat == False :

foodx = random randrange ( , 1 71 )

foody = random randrange ( , 1 45 )

if foodx % 2 != 0 : foodx += 1

if foody % 2 != 0 : foody += 1

foodpos = [ foodx * 10 , foody * 10 ]

foodflat = True

3.1.6 Hiển thị ra cửa sổ

 Cập nhật trên cửa sổ

# c p nh t lên c a s ậ ậ ưử ổử

gameSurface fill ( white )

for pos in snakebody :

gameSurface blit ( Imgbody ,pygame.Rect( pos [ ], pos [ 1 ], m m , ))

gameSurface blit ( Imghead ,pygame.Rect( snakebody [ ][ 0 ], snakebody [ 0 ][ 1 ], m m , )) gameSurface blit ( Imgfood ,pygame.Rect( foodpos [ ], foodpos [ 1 ], m m , ))

 Đường viền

# đ ườ ng vi n ềề

pygame.draw rect ( gameSurface , gray ,( 10 10 715 , , , 455 ), 2

show_score ()

pygame.display flip ()

3.2 Kết quả

Trang 16

TỔNG KẾT

Qua việc thực hiện đề tài “Xây dựng trò chơi rắn săn mồi bằng Python”, em

đã được biết thêm rất nhiều kiến thức về python cũng như bước đầu nắm bắt được python

Do kiến thức của em còn hạn hẹp và thời gian không cho phép nên em chưa thể thực hiện python phức tạp hơn Tuy nhiên em đã cố gắng để làm những trường hợp mà mình có thể nghĩ đến để đạt được kết quả tốt nhất để đưa tới Thầy/Cô Trong quá trình thực hiện em khó tránh khỏi những sai xót còn tồn tại

Vì vậy em rất mong được nhận lời góp ý và chỉnh sửa từ Thầy/Cô để có thể hoàn thành kiểm thử chương trình một cách hoàn chỉnh nhất

Em một lần nữa xin cảm ơn thầy Lê Mạnh Hùng đã tận tình giảng dạy cũng như hướng dẫn em làm sản phẩm kết thúc học phần trong môn học Ngôn ngữ Python, thầy đã giúp đỡ em trong quá trình thực hiện đề tài và chia sẻ những tài liệu hay cũng như các kỹ năng cần thiết

Ngày đăng: 09/06/2023, 15:43

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w